aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-core/dropbear
diff options
context:
space:
mode:
authorKoen Kooi <koen@dominion.thruhere.net>2011-06-18 16:14:51 +0200
committerKoen Kooi <koen@dominion.thruhere.net>2011-06-19 20:41:26 +0200
commitc5d9f7055288a56ebe68c3ab022f40c8932b215f (patch)
treeba83b3251fe7f0d9dd8870b58c5c9da094d1a645 /meta-oe/recipes-core/dropbear
parent790355db870872419a19f12bfdd0df0d52f8ae7b (diff)
downloadmeta-openembedded-c5d9f7055288a56ebe68c3ab022f40c8932b215f.tar.gz
dropbear-systemd: config files for socket-based activation of dropbear
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Diffstat (limited to 'meta-oe/recipes-core/dropbear')
-rw-r--r--meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear.socket10
-rw-r--r--meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear@.service9
-rw-r--r--meta-oe/recipes-core/dropbear/dropbear-systemd/dropbearkey.service10
-rw-r--r--meta-oe/recipes-core/dropbear/dropbear-systemd_v1.bb40
4 files changed, 69 insertions, 0 deletions
diff --git a/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear.socket b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear.socket
new file mode 100644
index 0000000000..e5c61b755e
--- /dev/null
+++ b/meta-oe/recipes-core/dropbear/dropbear-systemd/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-oe/recipes-core/dropbear/dropbear-systemd/dropbear@.service b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear@.service
new file mode 100644
index 0000000000..4fba3f05c8
--- /dev/null
+++ b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbear@.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=SSH Per-Connection Server
+Requires=dropbearkey.service
+After=syslog.target dropbearkey.service
+
+[Service]
+ExecStart=-/usr/sbin/dropbear -i -r /etc/dropbear/dropbear_rsa_host_key -p 22
+ExecReload=/bin/kill -HUP $MAINPID
+StandardInput=socket
diff --git a/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbearkey.service b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbearkey.service
new file mode 100644
index 0000000000..7f03000ebc
--- /dev/null
+++ b/meta-oe/recipes-core/dropbear/dropbear-systemd/dropbearkey.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=SSH Key Generation
+ConditionPathExists=|!/etc/dropbear/dropbear_rsa_host_key
+
+[Service]
+ExecStart=/usr/sbin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-core/dropbear/dropbear-systemd_v1.bb b/meta-oe/recipes-core/dropbear/dropbear-systemd_v1.bb
new file mode 100644
index 0000000000..b46c0e2a4a
--- /dev/null
+++ b/meta-oe/recipes-core/dropbear/dropbear-systemd_v1.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "Socket based activation for dropbear ssh server"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
+
+inherit allarch
+
+SRC_URI = "file://dropbearkey.service \
+ file://dropbear@.service \
+ file://dropbear.socket \
+ "
+
+do_configure() {
+ :
+}
+
+do_compile() {
+ :
+}
+
+do_install() {
+ install -d ${D}${base_libdir}/systemd/system
+ install -m 0644 ${WORKDIR}/dropbear*.* ${D}${base_libdir}/systemd/system/
+}
+
+pkg_postinst_${PN} () {
+if test "x$D" != "x"; then
+ exit 1
+fi
+systemctl enable dropbear.socket
+ln -sf /dev/null ${base_libdir}/systemd/system/dropbear.service
+}
+
+pkg_postrm_${PN} () {
+systemctl disable dropbear.socket
+rm -f ${base_libdir}/systemd/system/dropbear.service
+}
+
+RDEPENDS_${PN} = "systemd dropbear"
+FILES_${PN} = "${base_libdir}/systemd/system"
+