diff options
author | Muhammad Shakeel <muhammad_shakeel@mentor.com> | 2013-09-04 11:04:59 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-09-10 23:13:18 +0100 |
commit | 6e6445d487c033913a29763f8e3a7a339d5b612d (patch) | |
tree | d4791546bb483195d7a07d1cd6cd12e77773d4e2 | |
parent | 013cc8b6397c29e8f0d7adf63d8e06caab778da2 (diff) | |
download | openembedded-core-6e6445d487c033913a29763f8e3a7a339d5b612d.tar.gz openembedded-core-6e6445d487c033913a29763f8e3a7a339d5b612d.tar.bz2 openembedded-core-6e6445d487c033913a29763f8e3a7a339d5b612d.zip |
openssh: Add systemd support
-Remove dependency on meta-systemd
Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
4 files changed, 47 insertions, 2 deletions
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" |