Here is a proposed patch that adds a package selection for sftp support
under dropbear, by building/installing a single statically linked
sftp-server binary from the openssh/openssl packages.
This option builds just the necessary prerequisite parts of
openssh/openssl to achieve the static link, primarily from the existing
tarballs/patches in the GPP, but does so within its own package
directory. Thus it does not require the configuration to depend on
openssh/openssl at large, and the resultant binary rpm adds just one
executable (sftp-server) to the target image.
Index: config/userspace/packages.lkc
===================================================================
RCS file: /sources/ltib/ltib/config/userspace/packages.lkc,v
retrieving revision 1.49
diff -u -a -r1.49 packages.lkc
--- config/userspace/packages.lkc 4 Mar 2012 18:24:30 -0000 1.49
+++ config/userspace/packages.lkc 9 Mar 2012 07:17:31 -0000
@@ -657,6 +667,16 @@
* TCP forwarding support
* Features can easily be disabled when compiling to save space
+config PKG_SFTP_SERVER
+ depends CAP_HAS_MMU
+ depends PKG_DROPBEAR
+ bool "add sftp-server from openssh package"
+ help
+ Build/install just the sftp-server binary from the openssh
+ package. This provides sftp server capability under the
+ dropbear ssh server without building/installing all of
+ openssh/openssl.
+
config PKG_DROPBEAR_WANT_URANDOM_DEV
depends CAP_HAS_MMU
depends PKG_DROPBEAR
Index: config/userspace/pkg_map
===================================================================
RCS file: /sources/ltib/ltib/config/userspace/pkg_map,v
retrieving revision 1.32
diff -u -a -r1.32 pkg_map
--- config/userspace/pkg_map 4 Mar 2012 17:41:54 -0000 1.32
+++ config/userspace/pkg_map 9 Mar 2012 07:17:31 -0000
@@ -97,6 +97,7 @@
PKG_DROPBEAR = dropbear
PKG_OPENSSL = openssl
PKG_OPENSSH = openssh
+PKG_SFTP_SERVER = sftp-server
PKG_IPSEC_TOOLS = ipsec-tools
PKG_IPSECADM = ipsecadm
PKG_IPTABLES = iptables
%define pfx /opt/freescale/rootfs/%{_target_cpu}
Summary : Just the sftp-server executable from OpenSSH
Name : sftp-server
Version : 4.3p2
Release : 1
License : BSD
Vendor : Avid Technology
Packager : Fritz Mueller
Group : Applications/Internet
Source : openssh-4.3p2.tar.gz
Source1 : openssl-0.9.8g.tar.gz
Patch0 : openssl-md4_size_t.patch
Patch1 : openssl-md5_size_t.patch
Patch2 : openssl-sha_size_t.patch
Patch3 : openssl-0.9.8g-lib64.patch
Patch4 : openssl-0.9.8g-ripemd_size_t.patch
Patch5 : openssl-0.9.8g-sec.patch
Patch6 : openssl-0.9.8g-cryptodev.patch
Patch7 : openssh-4.3p2-static-sftp-server.patch
BuildRoot : %{_tmppath}/%{name}
Prefix : %{pfx}
%Description
%{summary}
%Prep
%setup -T -c
%setup -T -D -a 0
%setup -T -D -a 1
%patch7 -p1
cd openssl-0.9.8g
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%Build
cd $RPM_BUILD_DIR/$RPM_PACKAGE_NAME-$RPM_PACKAGE_VERSION/openssl-0.9.8g
case $ENDIAN in
big)
XTRA_OPTS="-DB_ENDIAN"
;;
little)
XTRA_OPTS="-DL_ENDIAN"
;;
*)
echo "Please set the ENDIAN environment variable to big|little"
;;
esac
case "$LINTARCH" in
arm|m68k*)
OSSL_ARCH="linux-generic32"
;;
powerpc*)
OSSL_ARCH="linux-ppc"
;;
*)
OSSL_ARCH="linux-$LINTARCH"
;;
esac
./Configure $OSSL_ARCH --prefix=%{_prefix} shared no-asm $XTRA_OPTS --with-cryptodev
make -j1 build_crypto
cd $RPM_BUILD_DIR/$RPM_PACKAGE_NAME-$RPM_PACKAGE_VERSION/openssh-4.3p2
LD=gcc ./configure --prefix=%{_prefix} --host=$CFGHOST --build=%{_build} --with-zlib=$DEV_IMAGE/usr --with-ssl-dir=$RPM_BUILD_DIR/$RPM_PACKAGE_NAME-$RPM_PACKAGE_VERSION/openssl-0.9.8g --with-ldflags="-L$RPM_BUILD_DIR/$RPM_PACKAGE_NAME-$RPM_PACKAGE_VERSION/openssl-0.9.8g" --config-cache
make -j1 sysconfdir=%{_sysconfdir}/ssh sftp-server
%Install
rm -rf $RPM_BUILD_ROOT
cd $RPM_BUILD_DIR/$RPM_PACKAGE_NAME-$RPM_PACKAGE_VERSION/openssh-4.3p2
make -j1 install-sftp-server sysconfdir=%{_sysconfdir}/ssh DESTDIR=$RPM_BUILD_ROOT/%{pfx}
%Clean
rm -rf $RPM_BUILD_ROOT
%Files
%defattr(-,root,root)
%{pfx}/*
diff --exclude CVS --exclude .git -uNr sftp-server-4.3p2/openssh-4.3p2/Makefile.in sftp-server-4.3p2.modified/openssh-4.3p2/Makefile.in
--- sftp-server-4.3p2/openssh-4.3p2/Makefile.in 2006-01-01 00:47:05.000000000 -0800
+++ sftp-server-4.3p2.modified/openssh-4.3p2/Makefile.in 2012-03-08 17:28:28.610248331 -0800
@@ -157,7 +157,7 @@
$(LD) -o $@ ssh-keyscan.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS)
sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a sftp.o sftp-common.o sftp-server.o
- $(LD) -o $@ sftp-server.o sftp-common.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
+ $(LD) -o $@ sftp-server.o sftp-common.o $(LDFLAGS) -Wl,-Bstatic -lssh -lopenbsd-compat -lcrypto -Wl,-Bdynamic
sftp$(EXEEXT): $(LIBCOMPAT) libssh.a sftp.o sftp-client.o sftp-common.o sftp-glob.o progressmeter.o
$(LD) -o $@ progressmeter.o sftp.o sftp-client.o sftp-common.o sftp-glob.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(LIBEDIT)
@@ -234,6 +234,10 @@
install-nokeys: $(CONFIGFILES) ssh_prng_cmds.out $(MANPAGES) $(TARGETS) install-files install-sysconf
install-nosysconf: $(CONFIGFILES) ssh_prng_cmds.out $(MANPAGES) $(TARGETS) install-files
+install-sftp-server:
+ $(srcdir)/mkinstalldirs $(DESTDIR)$(libexecdir)
+ $(INSTALL) -m 0755 $(STRIP_OPT) sftp-server $(DESTDIR)$(SFTP_SERVER)
+
check-config:
-$(DESTDIR)$(sbindir)/sshd -t -f $(DESTDIR)$(sysconfdir)/sshd_config
2805b8417dcdd2be19a5c9ddc1646ae4 openssh-4.3p2-static-sftp-server.patch
_______________________________________________
LTIB home page: http://ltib.org
Ltib mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/ltib