From 6e6445d487c033913a29763f8e3a7a339d5b612d Mon Sep 17 00:00:00 2001 From: Muhammad Shakeel Date: Wed, 4 Sep 2013 11:04:59 +0000 Subject: openssh: Add systemd support -Remove dependency on meta-systemd Signed-off-by: Muhammad Shakeel Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- .../openssh/openssh-6.2p2/sshd.socket | 11 +++++++++++ .../openssh/openssh-6.2p2/sshd@.service | 9 +++++++++ .../openssh/openssh-6.2p2/sshdgenkeys.service | 10 ++++++++++ meta/recipes-connectivity/openssh/openssh_6.2p2.bb | 19 +++++++++++++++++-- 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-connectivity/openssh/openssh-6.2p2/sshd.socket create mode 100644 meta/recipes-connectivity/openssh/openssh-6.2p2/sshd@.service create mode 100644 meta/recipes-connectivity/openssh/openssh-6.2p2/sshdgenkeys.service diff --git a/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd.socket b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd.socket new file mode 100644 index 0000000000..d19ab2ac43 --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd.socket @@ -0,0 +1,11 @@ +[Unit] +Conflicts=sshd.service + +[Socket] +ExecStartPre=@BASE_BINDIR@/mkdir -p /var/run/sshd +ListenStream=22 +Accept=yes + +[Install] +WantedBy=sockets.target +Also=sshdgenkeys.service diff --git a/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd@.service b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd@.service new file mode 100644 index 0000000000..64e009ff00 --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshd@.service @@ -0,0 +1,9 @@ +[Unit] +Description=OpenSSH Per-Connection Daemon +After=sshdgenkeys.service + +[Service] +ExecStart=-@SBINDIR@/sshd -i +ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID +StandardInput=socket +StandardError=syslog diff --git a/meta/recipes-connectivity/openssh/openssh-6.2p2/sshdgenkeys.service b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshdgenkeys.service new file mode 100644 index 0000000000..2fd8a9aaf2 --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.2p2/sshdgenkeys.service @@ -0,0 +1,10 @@ +[Unit] +Description=SSH Key Generation + +[Service] +ExecStart=@BINDIR@/ssh-keygen -A +Type=oneshot +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/meta/recipes-connectivity/openssh/openssh_6.2p2.bb b/meta/recipes-connectivity/openssh/openssh_6.2p2.bb index c76f9ac7ee..3a7f50d5fb 100644 --- a/meta/recipes-connectivity/openssh/openssh_6.2p2.bb +++ b/meta/recipes-connectivity/openssh/openssh_6.2p2.bb @@ -26,14 +26,17 @@ SRC_URI = "ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar. file://init \ file://openssh-CVE-2011-4327.patch \ file://mac.patch \ - ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}" + ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ + file://sshd.socket \ + file://sshd@.service \ + file://sshdgenkeys.service " PAM_SRC_URI = "file://sshd" SRC_URI[md5sum] = "be46174dcbb77ebb4ea88ef140685de1" SRC_URI[sha256sum] = "7f29b9d2ad672ae0f9e1dcbff871fc5c2e60a194e90c766432e32161b842313b" -inherit useradd update-rc.d update-alternatives +inherit useradd update-rc.d update-alternatives systemd USERADD_PACKAGES = "${PN}-sshd" USERADD_PARAM_${PN}-sshd = "--system --no-create-home --home-dir /var/run/sshd --shell /bin/false --user-group sshd" @@ -41,6 +44,9 @@ INITSCRIPT_PACKAGES = "${PN}-sshd" INITSCRIPT_NAME_${PN}-sshd = "sshd" INITSCRIPT_PARAMS_${PN}-sshd = "defaults 9" +SYSTEMD_PACKAGES = "${PN}-sshd" +SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket sshd@.service sshdgenkeys.service" + PACKAGECONFIG ??= "tcp-wrappers" PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,,tcp-wrappers" @@ -93,6 +99,15 @@ do_install_append () { echo "HostKey /var/run/ssh/ssh_host_rsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly echo "HostKey /var/run/ssh/ssh_host_dsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly echo "HostKey /var/run/ssh/ssh_host_ecdsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly + + install -d ${D}${systemd_unitdir}/system + install -c -m 0644 ${WORKDIR}/sshd.socket ${D}${systemd_unitdir}/system + install -c -m 0644 ${WORKDIR}/sshd@.service ${D}${systemd_unitdir}/system + install -c -m 0644 ${WORKDIR}/sshdgenkeys.service ${D}${systemd_unitdir}/system + sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@BINDIR@,${bindir},g' \ + ${D}${systemd_unitdir}/system/sshd.socket ${D}${systemd_unitdir}/system/*.service } ALLOW_EMPTY_${PN} = "1" -- cgit v1.2.3