--- /dev/null
+#!/bin/sh
+# dropbear init script
+# Version 0.4
+
+PREFIX=/var
+
+check_inst() {
+ #Check if dir ~/.ssh exist with 700
+ if [ ! -d /var/.ssh ]; then
+ mkdir /var/.ssh
+ chmod 700 /var/.ssh
+ fi
+ test ! -L /.ssh -a ! -d /.ssh && ln -s /var/.ssh /.ssh
+ DEST=/var/bin/dropbearmulti
+ [ ! -L "$PREFIX"/bin/dbclient ] && ln -sf ${DEST} "$PREFIX"/bin/dbclient
+ [ ! -L "$PREFIX"/bin/dropbearkey ] && ln -sf ${DEST} "$PREFIX"/bin/dropbearkey
+ [ ! -L "$PREFIX"/bin/dropbearconvert ] && ln -sf ${DEST} "$PREFIX"/bin/dropbearconvert
+ [ ! -L "$PREFIX"/bin/scp ] && ln -sf ${DEST} "$PREFIX"/bin/scp
+ [ ! -L "$PREFIX"/sbin/dropbear ] && ln -sf ${DEST} "$PREFIX"/sbin/dropbear
+}
+
+gen_keys() {
+ BIN="$PREFIX"/bin
+ ETC=/var/etc/dropbear
+ mkdir -p ${ETC}
+ test ! -L /etc/dropbear && ln -s ${ETC} /etc/dropbear
+ for keytype in dss rsa; do
+ keyfile=${ETC}/dropbear_${keytype}_host_key
+ test -e $keyfile && continue
+ echo "Generating ${keytype}-key..."
+ ${BIN}/dropbearkey -t $keytype -f $keyfile
+ done
+}
+
+fixperms() {
+ A_KEYS=/var/.ssh/authorized_keys
+ if [ -e ${A_KEYS} ]; then
+ test $(ls -ld ${A_KEYS} | awk '{print $1}') != "-rw-------" && chmod 0600 ${A_KEYS}
+ fi
+ # /root must be owned by root and must not world writable.
+ # fresh from the buildsystem it belongs to the building user...
+ test -L /root -o ! -d /root && return # not a directory
+ chown 0:0 /root
+ chmod go-w /root
+}
+
+case $1 in
+ start)
+ if [ -e /var/etc/.dropbear ]; then
+ check_inst
+ gen_keys
+ fixperms
+ dropbear -B
+ fi
+ ;;
+ stop)
+ if [ -e /var/run/dropbear.pid ]; then
+ trap "" INT TERM
+ kill -TERM $( cat /var/run/dropbear.pid )
+ fi
+ ;;
+esac
+
+exit 0
$(D)/dropbear: $(D)/zlib $(ARCHIVE)/dropbear-$(DROPBEAR_VER).tar.bz2 | $(BUILD_TMP)/extras
$(START_BUILD)
+ $(REMOVE)/dropbear-$(DROPBEAR_VER)
$(UNTAR)/dropbear-$(DROPBEAR_VER).tar.bz2
pushd $(BUILD_TMP)/dropbear-$(DROPBEAR_VER); \
ac_cv_lib_z_deflate=yes; \
echo '#define DROPBEAR_SVR_PASSWORD_AUTH 0' >> localoptions.h && \
echo '#endif' >> localoptions.h && \
# disable SMALL_CODE define && \
- sed -i 's|^\(#define DROPBEAR_SMALL_CODE\).*|\1 0|' default_options.h && \
+ echo '#define DROPBEAR_SMALL_CODE 0' >> localoptions.h && \
# fix PATH define && \
- sed -i 's|^\(#define DEFAULT_PATH\).*|\1 "/sbin:/bin:/var/bin"|' default_options.h && \
- # remove /usr prefix && \
- sed -i 's|/usr/|/|g' default_options.h && \
+ echo '#define DEFAULT_PATH "/sbin:/bin:/var/bin:/var/sbin"' >> localoptions.h && \
+ echo '#define DEFAULT_ROOT_PATH "/var/sbin:/var/bin"' >> localoptions.h && \
$(BUILDENV) \
./configure $(CONFIGURE_OPTS) \
--prefix=/var \
+ --sysconfdir=/var/etc \
--mandir=/.remove \
- --disable-pututxline \
+ --disable-lastlog \
--disable-wtmp \
--disable-wtmpx \
--disable-loginfunc \
$(MAKE) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 && \
$(MAKE) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 install DESTDIR=$(BUILD_TMP)/extras
$(TARGET)-strip $(BUILD_TMP)/extras/var/bin/dropbearmulti
- install -m 755 $(PATCHES)/dropbear/dropbear.init $(TARGETPREFIX)/etc/init.d/dropbear
- pushd $(TARGETPREFIX)/etc/init.d
- ln -sf dropbear $(TARGETPREFIX)/etc/init.d/S60dropbear
- ln -sf dropbear $(TARGETPREFIX)/etc/init.d/K60dropbear
+ install -m 755 $(PATCHES)/dropbear/dropbear.init $(TARGETPREFIX)/var/etc/init.d/dropbear
+ pushd $(TARGETPREFIX)/var/etc/init.d
+ ln -sf dropbear $(TARGETPREFIX)/var/etc/init.d/S60dropbear
+ ln -sf dropbear $(TARGETPREFIX)/var/etc/init.d/K60dropbear
$(REMOVE)/extras/.remove
-# $(REMOVE)/dropbear-$(DROPBEAR_VER)
+ $(REMOVE)/dropbear-$(DROPBEAR_VER)
# $(TOUCH)
$(D)/libneon: $(D)/expat $(D)/openssl $(ARCHIVE)/neon-$(NEON_VER).tar.gz | $(TARGETPREFIX)