From 5d90c5ebdb899b2951c97a94ff57867c1e491c15 Mon Sep 17 00:00:00 2001 From: Chen Qi Date: Thu, 16 Jan 2014 04:24:53 -0500 Subject: dropbear: add systemd unit files This patch mainly comes from meta-systemd with a few modifications. The purpose is to get rid of the LSB init scripts in systemd images. [YOCTO #4420] Signed-off-by: Chen Qi Signed-off-by: Saul Wold --- meta/recipes-core/dropbear/dropbear.inc | 17 ++++++++++++++++- meta/recipes-core/dropbear/dropbear/dropbear.socket | 10 ++++++++++ meta/recipes-core/dropbear/dropbear/dropbear@.service | 11 +++++++++++ meta/recipes-core/dropbear/dropbear/dropbearkey.service | 8 ++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-core/dropbear/dropbear/dropbear.socket create mode 100644 meta/recipes-core/dropbear/dropbear/dropbear@.service create mode 100644 meta/recipes-core/dropbear/dropbear/dropbearkey.service (limited to 'meta') diff --git a/meta/recipes-core/dropbear/dropbear.inc b/meta/recipes-core/dropbear/dropbear.inc index e85a9e6678..d5fceec687 100644 --- a/meta/recipes-core/dropbear/dropbear.inc +++ b/meta/recipes-core/dropbear/dropbear.inc @@ -19,17 +19,22 @@ SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.bz2 \ file://0004-fix-2kb-keys.patch \ file://0007-dropbear-fix-for-x32-abi.patch \ file://init \ + file://dropbearkey.service \ + file://dropbear@.service \ + file://dropbear.socket \ ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} " PAM_SRC_URI = "file://0005-dropbear-enable-pam.patch \ file://0006-dropbear-configuration-file.patch \ file://dropbear" -inherit autotools update-rc.d +inherit autotools update-rc.d systemd INITSCRIPT_NAME = "dropbear" INITSCRIPT_PARAMS = "defaults 10" +SYSTEMD_SERVICE_${PN} = "dropbear.socket" + CFLAGS_prepend = " -I. " LD = "${CC}" @@ -66,6 +71,16 @@ do_install() { install -d ${D}${sysconfdir}/pam.d install -m 0644 ${WORKDIR}/dropbear ${D}${sysconfdir}/pam.d/ fi + + # deal with systemd unit files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/dropbearkey.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/dropbear@.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/dropbear.socket ${D}${systemd_unitdir}/system + sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ + -e 's,@BINDIR@,${bindir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + ${D}${systemd_unitdir}/system/dropbear.socket ${D}${systemd_unitdir}/system/*.service } inherit update-alternatives diff --git a/meta/recipes-core/dropbear/dropbear/dropbear.socket b/meta/recipes-core/dropbear/dropbear/dropbear.socket new file mode 100644 index 0000000000..e5c61b755e --- /dev/null +++ b/meta/recipes-core/dropbear/dropbear/dropbear.socket @@ -0,0 +1,10 @@ +[Unit] +Conflicts=dropbear.service + +[Socket] +ListenStream=22 +Accept=yes + +[Install] +WantedBy=sockets.target +Also=dropbearkey.service diff --git a/meta/recipes-core/dropbear/dropbear/dropbear@.service b/meta/recipes-core/dropbear/dropbear/dropbear@.service new file mode 100644 index 0000000000..6fe9942090 --- /dev/null +++ b/meta/recipes-core/dropbear/dropbear/dropbear@.service @@ -0,0 +1,11 @@ +[Unit] +Description=SSH Per-Connection Server +Wants=dropbearkey.service +After=syslog.target dropbearkey.service + +[Service] +EnvironmentFile=-/etc/default/dropbear +ExecStart=-@SBINDIR@/dropbear -i -r /etc/dropbear/dropbear_rsa_host_key $DROPBEAR_EXTRA_ARGS +ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID +StandardInput=socket +KillMode=process diff --git a/meta/recipes-core/dropbear/dropbear/dropbearkey.service b/meta/recipes-core/dropbear/dropbear/dropbearkey.service new file mode 100644 index 0000000000..ccc21d5cca --- /dev/null +++ b/meta/recipes-core/dropbear/dropbear/dropbearkey.service @@ -0,0 +1,8 @@ +[Unit] +Description=SSH Key Generation +ConditionPathExists=|!/etc/dropbear/dropbear_rsa_host_key + +[Service] +Type=oneshot +ExecStart=@SBINDIR@/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key +RemainAfterExit=yes -- cgit v1.2.3