--- /dev/null
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=openssh
+PKG_VERSION:=4.2p1
+PKG_RELEASE:=2
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
+ ftp://openbsd.wiretapped.net/pub/OpenBSD/OpenSSH/portable/ \
+ ftp://ftp.belnet.be/packages/openbsd/OpenSSH/portable/ \
+ ftp://ftp.de.openbsd.org/pub/unix/OpenBSD/OpenSSH/portable/
+PKG_MD5SUM:=df899194a340c933944b193477c628fa
+PKG_CAT:=zcat
+
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+PKG_BUILDDEP:=openssl
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/openssh-client
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+libopenssl +zlib
+ TITLE:=OpenSSH client
+ DESCRIPTION:=OpenSSH client.
+ URL:=http://www.openssh.com/
+endef
+
+define Package/openssh-client/conffiles
+/etc/ssh/ssh_config
+endef
+
+define Package/openssh-client-utils
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=openssh-client
+ TITLE:=OpenSSH client utilities
+ DESCRIPTION:=OpenSSH client utilities.
+ URL:=http://www.openssh.com/
+endef
+
+define Package/openssh-server
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+libopenssl +zlib
+ TITLE:=OpenSSH server
+ DESCRIPTION:=OpenSSH server.
+ URL:=http://www.openssh.com/
+endef
+
+define Package/openssh-server/conffiles
+/etc/ssh/sshd_config
+endef
+
+define Package/openssh-sftp-client
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+libopenssl +zlib
+ TITLE:=OpenSSH SFTP client
+ DESCRIPTION:=OpenSSH SFTP client.
+ URL:=http://www.openssh.com/
+endef
+
+define Package/openssh-sftp-server
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+libopenssl +zlib
+ TITLE:=OpenSSH SFTP server
+ DESCRIPTION:=OpenSSH SFTP server.
+ URL:=http://www.openssh.com/
+endef
+
+define Build/Configure
+ (cd $(PKG_BUILD_DIR); rm -f config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ CPPFLAGS="-I$(STAGING_DIR)/usr/include" \
+ LD="$(TARGET_CC)" \
+ LDFLAGS="-L$(STAGING_DIR)/usr/lib" \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --program-prefix="" \
+ --program-suffix="" \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --datadir=/usr/share \
+ --includedir=/usr/include \
+ --infodir=/usr/share/info \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --sbindir=/usr/sbin \
+ --sysconfdir=/etc/ssh \
+ $(DISABLE_LARGEFILE) \
+ $(DISABLE_NLS) \
+ --enable-shared \
+ --disable-static \
+ --disable-debug \
+ --disable-strip \
+ --disable-etc-default-login \
+ --disable-lastlog \
+ --disable-utmp \
+ --disable-utmpx \
+ --disable-wtmp \
+ --disable-wtmpx \
+ --without-bsd-auth \
+ --without-kerberos5 \
+ --without-pam \
+ --without-x \
+ );
+endef
+
+define Build/Compile
+ rm -rf $(PKG_INSTALL_DIR)
+ mkdir -p $(PKG_INSTALL_DIR)
+ $(MAKE) -C $(PKG_BUILD_DIR) \
+ DESTDIR="$(PKG_INSTALL_DIR)" \
+ all install
+endef
+
+define Package/openssh-client/install
+ install -m0755 -d $(1)/etc/ssh
+ chmod 0700 $(1)/etc/ssh
+ $(CP) $(PKG_INSTALL_DIR)/etc/ssh/ssh_config $(1)/etc/ssh/
+ install -m0755 -d $(1)/usr/bin
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/ssh $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/scp $(1)/usr/bin/
+endef
+
+define Package/openssh-client-utils/install
+ install -m0755 -d $(1)/usr/bin
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/ssh-add $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/ssh-agent $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/ssh-keyscan $(1)/usr/bin/
+endef
+
+define Package/openssh-server/install
+ install -m0755 -d $(1)/etc/ssh
+ chmod 0700 $(1)/etc/ssh
+ $(CP) $(PKG_INSTALL_DIR)/etc/ssh/sshd_config $(1)/etc/ssh/
+ install -m0755 -d $(1)/etc/init.d
+ install -m0755 ./files/S50sshd $(1)/etc/init.d/
+ install -m0755 -d $(1)/usr/bin
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/ssh-keygen $(1)/usr/bin/
+ install -m0755 -d $(1)/usr/sbin
+ $(CP) $(PKG_INSTALL_DIR)/usr/sbin/sshd $(1)/usr/sbin/
+endef
+
+define Package/openssh-sftp-client/install
+ install -m0755 -d $(1)/usr/bin
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/sftp $(1)/usr/bin/
+endef
+
+define Package/openssh-sftp-server/install
+ install -m0755 -d $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/sftp-server $(1)/usr/lib/
+ install -m0755 -d $(1)/usr/libexec
+ ln -sf ../lib/sftp-server $(1)/usr/libexec/sftp-server
+endef
+
+$(eval $(call BuildPackage,openssh-client))
+$(eval $(call BuildPackage,openssh-client-utils))
+$(eval $(call BuildPackage,openssh-server))
+$(eval $(call BuildPackage,openssh-sftp-client))
+$(eval $(call BuildPackage,openssh-sftp-server))
--- /dev/null
+diff -Nur openssh-4.2p1/cipher.c openssh-4.2p1.patched/cipher.c
+--- openssh-4.2p1/cipher.c 2005-07-17 09:02:10.000000000 +0200
++++ openssh-4.2p1.patched/cipher.c 2006-03-26 12:43:41.000000000 +0200
+@@ -67,7 +67,6 @@
+
+ { "3des-cbc", SSH_CIPHER_SSH2, 8, 24, 0, EVP_des_ede3_cbc },
+ { "blowfish-cbc", SSH_CIPHER_SSH2, 8, 16, 0, EVP_bf_cbc },
+- { "cast128-cbc", SSH_CIPHER_SSH2, 8, 16, 0, EVP_cast5_cbc },
+ { "arcfour", SSH_CIPHER_SSH2, 8, 16, 0, EVP_rc4 },
+ { "arcfour128", SSH_CIPHER_SSH2, 8, 16, 1536, EVP_rc4 },
+ { "arcfour256", SSH_CIPHER_SSH2, 8, 32, 1536, EVP_rc4 },
--- /dev/null
+diff -Nur openssh-4.0p1/configure openssh-4.0p1.patched/configure
+--- openssh-4.0p1/configure 2005-03-09 05:54:16.000000000 +0100
++++ openssh-4.0p1.patched/configure 2005-06-02 13:35:06.000000000 +0200
+@@ -5524,7 +5524,7 @@
+ *-*-linux*)
+ no_dev_ptmx=1
+ check_for_libcrypt_later=1
+- check_for_openpty_ctty_bug=1
++ check_for_openpty_ctty_bug=0
+ cat >>confdefs.h <<\_ACEOF
+ #define DONT_TRY_OTHER_AF 1
+ _ACEOF
+@@ -12810,90 +12810,6 @@
+ fi
+ fi
+
+-if test ! -z "$check_for_openpty_ctty_bug"; then
+- echo "$as_me:$LINENO: checking if openpty correctly handles controlling tty" >&5
+-echo $ECHO_N "checking if openpty correctly handles controlling tty... $ECHO_C" >&6
+- if test "$cross_compiling" = yes; then
+- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot run test program while cross compiling
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-#include <stdio.h>
+-#include <sys/fcntl.h>
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-
+-int
+-main()
+-{
+- pid_t pid;
+- int fd, ptyfd, ttyfd, status;
+-
+- pid = fork();
+- if (pid < 0) { /* failed */
+- exit(1);
+- } else if (pid > 0) { /* parent */
+- waitpid(pid, &status, 0);
+- if (WIFEXITED(status))
+- exit(WEXITSTATUS(status));
+- else
+- exit(2);
+- } else { /* child */
+- close(0); close(1); close(2);
+- setsid();
+- openpty(&ptyfd, &ttyfd, NULL, NULL, NULL);
+- fd = open("/dev/tty", O_RDWR | O_NOCTTY);
+- if (fd >= 0)
+- exit(3); /* Acquired ctty: broken */
+- else
+- exit(0); /* Did not acquire ctty: OK */
+- }
+-}
+-
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+-
+- echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-
+-else
+- echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-( exit $ac_status )
+-
+- echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+- cat >>confdefs.h <<\_ACEOF
+-#define SSHD_ACQUIRES_CTTY 1
+-_ACEOF
+-
+-
+-
+-fi
+-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
+-fi
+
+ if test "x$ac_cv_func_getaddrinfo" = "xyes" -a "x$check_for_hpux_broken_getaddrinfo" = "x1"; then
+ echo "$as_me:$LINENO: checking if getaddrinfo seems to work" >&5