summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/dropbear
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-core/dropbear
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadpoky-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-core/dropbear')
-rw-r--r--meta/recipes-core/dropbear/dropbear-0.52/configure.patch27
-rw-r--r--meta/recipes-core/dropbear/dropbear.inc80
-rw-r--r--meta/recipes-core/dropbear/dropbear/allow-nopw.patch38
-rw-r--r--meta/recipes-core/dropbear/dropbear/fix-2kb-keys.patch11
-rwxr-xr-xmeta/recipes-core/dropbear/dropbear/init106
-rw-r--r--meta/recipes-core/dropbear/dropbear/urandom-xauth-changes-to-options.h.patch12
-rw-r--r--meta/recipes-core/dropbear/dropbear_0.52.bb3
7 files changed, 277 insertions, 0 deletions
diff --git a/meta/recipes-core/dropbear/dropbear-0.52/configure.patch b/meta/recipes-core/dropbear/dropbear-0.52/configure.patch
new file mode 100644
index 0000000000..8d11b23f14
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear-0.52/configure.patch
@@ -0,0 +1,27 @@
1Index: dropbear-0.49/configure.in
2===================================================================
3--- dropbear-0.49.orig/configure.in
4+++ dropbear-0.49/configure.in
5@@ -164,14 +164,20 @@ AC_ARG_ENABLE(openpty,
6 AC_MSG_NOTICE(Not using openpty)
7 else
8 AC_MSG_NOTICE(Using openpty if available)
9- AC_SEARCH_LIBS(openpty, util, [AC_DEFINE(HAVE_OPENPTY,,Have openpty() function)])
10+ AC_SEARCH_LIBS(openpty, util, [dropbear_cv_func_have_openpty=yes])
11 fi
12 ],
13 [
14 AC_MSG_NOTICE(Using openpty if available)
15- AC_SEARCH_LIBS(openpty, util, [AC_DEFINE(HAVE_OPENPTY)])
16+ AC_SEARCH_LIBS(openpty, util, [dropbear_cv_func_have_openpty=yes])
17 ]
18 )
19+
20+if test "x$dropbear_cv_func_have_openpty" = "xyes"; then
21+ AC_DEFINE(HAVE_OPENPTY,,Have openpty() function)
22+ no_ptc_check=yes
23+ no_ptmx_check=yes
24+fi
25
26
27 AC_ARG_ENABLE(syslog,
diff --git a/meta/recipes-core/dropbear/dropbear.inc b/meta/recipes-core/dropbear/dropbear.inc
new file mode 100644
index 0000000000..1d78d5c59b
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear.inc
@@ -0,0 +1,80 @@
1DESCRIPTION = "Dropbear is a lightweight SSH and SCP Implementation"
2HOMEPAGE = "http://matt.ucc.asn.au/dropbear/dropbear.html"
3SECTION = "console/network"
4
5# some files are from other projects and have others license terms:
6# public domain, OpenSSH 3.5p1, OpenSSH3.6.1p2, PuTTY
7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=3a5b0c2f0d0c49dfde9558ae2036683c"
9
10DEPENDS = "zlib"
11PROVIDES = "ssh sshd"
12RPROVIDES = "ssh sshd"
13
14SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.gz \
15 file://urandom-xauth-changes-to-options.h.patch \
16 file://configure.patch \
17 file://fix-2kb-keys.patch \
18 file://allow-nopw.patch;apply=no \
19 file://init"
20
21inherit autotools update-rc.d
22
23INITSCRIPT_NAME = "dropbear"
24INITSCRIPT_PARAMS = "defaults 10"
25
26CFLAGS_prepend = " -I. "
27LD = "${CC}"
28
29SBINCOMMANDS = "dropbear dropbearkey dropbearconvert"
30BINCOMMANDS = "dbclient ssh scp"
31EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"'
32
33DISTRO_TYPE = "${@base_contains("IMAGE_FEATURES", "debug-tweaks", "debug", "",d)}"
34
35do_configure_prepend() {
36 if [ "x${DISTRO}" != "xfamiliar" -a "${DISTRO_TYPE}" = "debug" ]; then
37 oenote "WARNING: applying allow-nopw.patch which allows password-less logins!"
38 patch -p1 < ${WORKDIR}/allow-nopw.patch
39 fi
40}
41
42do_install() {
43 install -d ${D}${sysconfdir} \
44 ${D}${sysconfdir}/init.d \
45 ${D}${sysconfdir}/default \
46 ${D}${sysconfdir}/dropbear \
47 ${D}${bindir} \
48 ${D}${sbindir} \
49 ${D}${localstatedir}
50
51 install -m 0755 dropbearmulti ${D}${sbindir}/
52 ln -s ${sbindir}/dropbearmulti ${D}${bindir}/dbclient
53
54 for i in ${SBINCOMMANDS}
55 do
56 ln -s ./dropbearmulti ${D}${sbindir}/$i
57 done
58 cat ${WORKDIR}/init | sed -e 's,/etc,${sysconfdir},g' \
59 -e 's,/usr/sbin,${sbindir},g' \
60 -e 's,/var,${localstatedir},g' \
61 -e 's,/usr/bin,${bindir},g' \
62 -e 's,/usr,${prefix},g' > ${D}${sysconfdir}/init.d/dropbear
63 chmod 755 ${D}${sysconfdir}/init.d/dropbear
64}
65
66pkg_postinst () {
67 update-alternatives --install ${bindir}/scp scp ${sbindir}/dropbearmulti 20
68 update-alternatives --install ${bindir}/ssh ssh ${sbindir}/dropbearmulti 20
69}
70
71pkg_postrm_append () {
72 if [ -f "${sysconfdir}/dropbear/dropbear_rsa_host_key" ]; then
73 rm ${sysconfdir}/dropbear/dropbear_rsa_host_key
74 fi
75 if [ -f "${sysconfdir}/dropbear/dropbear_dss_host_key" ]; then
76 rm ${sysconfdir}/dropbear/dropbear_dss_host_key
77 fi
78 update-alternatives --remove ssh ${bindir}/dropbearmulti
79 update-alternatives --remove scp ${bindir}/dropbearmulti
80}
diff --git a/meta/recipes-core/dropbear/dropbear/allow-nopw.patch b/meta/recipes-core/dropbear/dropbear/allow-nopw.patch
new file mode 100644
index 0000000000..2ae361c63e
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/allow-nopw.patch
@@ -0,0 +1,38 @@
1diff --git a/svr-auth.c b/svr-auth.c
2index 5da0aa7..4de4964 100644
3--- a/svr-auth.c
4+++ b/svr-auth.c
5@@ -249,6 +249,7 @@ static int checkusername(unsigned char *username, unsigned int userlen) {
6 }
7
8 /* check for an empty password */
9+#ifdef DISALLOW_EMPTY_PW
10 if (ses.authstate.pw_passwd[0] == '\0') {
11 TRACE(("leave checkusername: empty pword"))
12 dropbear_log(LOG_WARNING, "user '%s' has blank password, rejected",
13@@ -256,6 +257,7 @@ static int checkusername(unsigned char *username, unsigned int userlen) {
14 send_msg_userauth_failure(0, 1);
15 return DROPBEAR_FAILURE;
16 }
17+#endif
18
19 TRACE(("shell is %s", ses.authstate.pw_shell))
20
21diff --git a/svr-authpasswd.c b/svr-authpasswd.c
22index 53550a2..7b896bd 100644
23--- a/svr-authpasswd.c
24+++ b/svr-authpasswd.c
25@@ -64,9 +64,13 @@ void svr_auth_password() {
26 * since the shadow password may differ to that tested
27 * in auth.c */
28 if (passwdcrypt[0] == '\0') {
29+#ifdef DISALLOW_EMPTY_PASSWD
30 dropbear_log(LOG_WARNING, "user '%s' has blank password, rejected",
31 ses.authstate.pw_name);
32 send_msg_userauth_failure(0, 1);
33+#else
34+ send_msg_userauth_success();
35+#endif
36 return;
37 }
38
diff --git a/meta/recipes-core/dropbear/dropbear/fix-2kb-keys.patch b/meta/recipes-core/dropbear/dropbear/fix-2kb-keys.patch
new file mode 100644
index 0000000000..ba2b19d44a
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/fix-2kb-keys.patch
@@ -0,0 +1,11 @@
1diff -Nurd dropbear-0.45/kex.h dropbear-0.45.patched/kex.h
2--- dropbear-0.45/kex.h 2005-03-06 20:27:02.000000000 -0800
3+++ dropbear-0.45.patched/kex.h 2005-03-08 15:22:44.064583279 -0800
4@@ -64,6 +64,6 @@
5
6 };
7
8-#define MAX_KEXHASHBUF 2000
9+#define MAX_KEXHASHBUF 3000
10
11 #endif /* _KEX_H_ */
diff --git a/meta/recipes-core/dropbear/dropbear/init b/meta/recipes-core/dropbear/dropbear/init
new file mode 100755
index 0000000000..e882bae689
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/init
@@ -0,0 +1,106 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: sshd
4# Required-Start: $remote_fs $syslog $networking
5# Required-Stop: $remote_fs $syslog
6# Default-Start: 2 3 4 5
7# Default-Stop: 1
8# Short-Description: Dropbear Secure Shell server
9### END INIT INFO
10#
11# Do not configure this file. Edit /etc/default/dropbear instead!
12#
13
14PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
15DAEMON=/usr/sbin/dropbear
16NAME=dropbear
17DESC="Dropbear SSH server"
18
19DROPBEAR_PORT=22
20DROPBEAR_EXTRA_ARGS=
21NO_START=0
22
23set -e
24
25test ! -r /etc/default/dropbear || . /etc/default/dropbear
26test "$NO_START" = "0" || exit 0
27test -x "$DAEMON" || exit 0
28test ! -h /var/service/dropbear || exit 0
29
30readonly_rootfs=0
31for flag in `awk '{ if ($2 == "/") { split($4,FLAGS,",") } }; END { for (f in FLAGS) print FLAGS[f] }' </proc/mounts`; do
32 case $flag in
33 ro)
34 readonly_rootfs=1
35 ;;
36 esac
37done
38
39if [ $readonly_rootfs = "1" ]; then
40 mkdir -p /var/lib/dropbear
41 DROPBEAR_RSAKEY_DEFAULT="/var/lib/dropbear/dropbear_rsa_host_key"
42 DROPBEAR_DSSKEY_DEFAULT="/var/lib/dropbear/dropbear_dss_host_key"
43else
44 DROPBEAR_RSAKEY_DEFAULT="/etc/dropbear/dropbear_rsa_host_key"
45 DROPBEAR_DSSKEY_DEFAULT="/etc/dropbear/dropbear_dss_host_key"
46fi
47
48test -z "$DROPBEAR_BANNER" || \
49 DROPBEAR_EXTRA_ARGS="$DROPBEAR_EXTRA_ARGS -b $DROPBEAR_BANNER"
50test -n "$DROPBEAR_RSAKEY" || \
51 DROPBEAR_RSAKEY=$DROPBEAR_RSAKEY_DEFAULT
52test -n "$DROPBEAR_DSSKEY" || \
53 DROPBEAR_DSSKEY=$DROPBEAR_DSSKEY_DEFAULT
54test -n "$DROPBEAR_KEYTYPES" || \
55 DROPBEAR_KEYTYPES="rsa"
56
57gen_keys() {
58for t in $DROPBEAR_KEYTYPES; do
59 case $t in
60 rsa)
61 test -f $DROPBEAR_RSAKEY || dropbearkey -t rsa -f $DROPBEAR_RSAKEY
62 ;;
63 dsa)
64 test -f $DROPBEAR_DSSKEY || dropbearkey -t dss -f $DROPBEAR_DSSKEY
65 ;;
66 esac
67done
68}
69
70case "$1" in
71 start)
72 echo -n "Starting $DESC: "
73 gen_keys
74 KEY_ARGS=""
75 test -f $DROPBEAR_DSSKEY && KEY_ARGS="$KEY_ARGS -d $DROPBEAR_DSSKEY"
76 test -f $DROPBEAR_RSAKEY && KEY_ARGS="$KEY_ARGS -r $DROPBEAR_RSAKEY"
77 start-stop-daemon -S \
78 -x "$DAEMON" -- $KEY_ARGS \
79 -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS
80 echo "$NAME."
81 ;;
82 stop)
83 echo -n "Stopping $DESC: "
84 start-stop-daemon -K -x "$DAEMON"
85 echo "$NAME."
86 ;;
87 restart|force-reload)
88 echo -n "Restarting $DESC: "
89 start-stop-daemon -K -x "$DAEMON"
90 sleep 1
91 KEY_ARGS=""
92 test -f $DROPBEAR_DSSKEY && KEY_ARGS="$KEY_ARGS -d $DROPBEAR_DSSKEY"
93 test -f $DROPBEAR_RSAKEY && KEY_ARGS="$KEY_ARGS -r $DROPBEAR_RSAKEY"
94 start-stop-daemon -S \
95 -x "$DAEMON" -- $KEY_ARGS \
96 -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS
97 echo "$NAME."
98 ;;
99 *)
100 N=/etc/init.d/$NAME
101 echo "Usage: $N {start|stop|restart|force-reload}" >&2
102 exit 1
103 ;;
104esac
105
106exit 0
diff --git a/meta/recipes-core/dropbear/dropbear/urandom-xauth-changes-to-options.h.patch b/meta/recipes-core/dropbear/dropbear/urandom-xauth-changes-to-options.h.patch
new file mode 100644
index 0000000000..75ba306565
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/urandom-xauth-changes-to-options.h.patch
@@ -0,0 +1,12 @@
1diff -Nurd dropbear-0.45/options.h dropbear-0.45.patched/options.h
2--- dropbear-0.45/options.h 2005-03-06 20:27:02.000000000 -0800
3+++ dropbear-0.45.patched/options.h 2005-03-08 15:25:09.368742090 -0800
4@@ -167,7 +167,7 @@
5 /* The command to invoke for xauth when using X11 forwarding.
6 * "-q" for quiet */
7 #ifndef XAUTH_COMMAND
8-#define XAUTH_COMMAND "/usr/X11R6/bin/xauth -q"
9+#define XAUTH_COMMAND "xauth -q"
10 #endif
11
12 /* if you want to enable running an sftp server (such as the one included with
diff --git a/meta/recipes-core/dropbear/dropbear_0.52.bb b/meta/recipes-core/dropbear/dropbear_0.52.bb
new file mode 100644
index 0000000000..51217ea39d
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear_0.52.bb
@@ -0,0 +1,3 @@
1require dropbear.inc
2
3PR="r0"