dropbear: Add back scp
[termux-packages] / packages / openssh / build.sh
index 90002ac..be47bd0 100755 (executable)
@@ -1,29 +1,68 @@
-TERMUX_PKG_HOMEPAGE=http://www.openssh.com/
+TERMUX_PKG_HOMEPAGE=https://www.openssh.com/
 TERMUX_PKG_DESCRIPTION="Secure shell for logging into a remote machine"
-TERMUX_PKG_VERSION=7.3p1
-TERMUX_PKG_SRCURL=http://mirrors.mit.edu/pub/OpenBSD/OpenSSH/portable/openssh-${TERMUX_PKG_VERSION}.tar.gz
-TERMUX_PKG_SHA256=3ffb989a6dcaa69594c3b550d4855a5a2e1718ccdde7f5e36387b424220fbecc
-TERMUX_PKG_DEPENDS="libandroid-support, ldns, openssl"
+TERMUX_PKG_VERSION=7.7p1
+TERMUX_PKG_REVISION=1
+TERMUX_PKG_SHA256=d73be7e684e99efcd024be15a30bffcbe41b012b2f7b3c9084aed621775e6b8f
+TERMUX_PKG_SRCURL=https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${TERMUX_PKG_VERSION}.tar.gz
+TERMUX_PKG_DEPENDS="libandroid-support, ldns, openssl, libedit, libutil"
+TERMUX_PKG_CONFLICTS="dropbear"
 # --disable-strip to prevent host "install" command to use "-s", which won't work for target binaries:
-TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--with-cflags=-Dfd_mask=int --with-ldns --disable-etc-default-login --disable-lastlog --disable-utmp --disable-utmpx --disable-wtmp --disable-wtmpx --disable-libutil --disable-pututline --disable-pututxline --without-stackprotect --with-pid-dir=$TERMUX_PREFIX/var/run --disable-strip --sysconfdir=$TERMUX_PREFIX/etc/ssh --without-ssh1"
-TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_header_sys_un_h=yes ac_cv_func_strnvis=no ac_cv_func_readpassphrase=no ac_cv_search_getrrsetbyname=no ac_cv_func_getlastlogxbyname=no ac_cv_func_fmt_scaled=no ac_cv_func_endgrent=yes"
-TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --disable-libutil ac_cv_search_openpty=no --with-privsep-path=$TERMUX_PREFIX/var/empty"
+TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
+--disable-etc-default-login
+--disable-lastlog
+--disable-libutil
+--disable-pututline
+--disable-pututxline
+--disable-strip
+--disable-utmp
+--disable-utmpx
+--disable-wtmp
+--disable-wtmpx
+--sysconfdir=$TERMUX_PREFIX/etc/ssh
+--with-cflags=-Dfd_mask=int
+--with-ldns
+--with-libedit
+--with-mantype=man
+--without-ssh1
+--without-stackprotect
+--with-pid-dir=$TERMUX_PREFIX/var/run
+--with-privsep-path=$TERMUX_PREFIX/var/empty
+--with-xauth=$TERMUX_PREFIX/bin/xauth
+ac_cv_func_endgrent=yes
+ac_cv_func_fmt_scaled=no
+ac_cv_func_getlastlogxbyname=no
+ac_cv_func_readpassphrase=no
+ac_cv_func_strnvis=no
+ac_cv_header_sys_un_h=yes
+ac_cv_search_getrrsetbyname=no
+ac_cv_func_bzero=yes
+"
 TERMUX_PKG_MAKE_INSTALL_TARGET="install-nokeys"
 TERMUX_PKG_RM_AFTER_INSTALL="bin/slogin share/man/man1/slogin.1"
 
-export LD=$CC # Needed to link the binaries
-export LDFLAGS="$LDFLAGS -llog" # liblog for android logging in syslog hack
+termux_step_pre_configure() {
+       autoreconf
 
-termux_step_pre_make () {
+    ## Configure script require this variable to set
+    ## prefixed path to program 'passwd'
+    export PATH_PASSWD_PROG="${TERMUX_PREFIX}/bin/passwd"
+
+       CPPFLAGS+=" -DHAVE_ATTRIBUTE__SENTINEL__=1"
+       LD=$CC # Needed to link the binaries
+       LDFLAGS+=" -llog" # liblog for android logging in syslog hack
+}
+
+termux_step_post_configure() {
        # We need to remove this file before installing, since otherwise the
        # install leaves it alone which means no updated timestamps.
        rm -Rf $TERMUX_PREFIX/etc/moduli
 }
 
 termux_step_post_make_install () {
+       # "PrintMotd no" is due to our login program already showing it.
        # OpenSSH 7.0 disabled ssh-dss by default, keep it for a while in Termux:
-        echo -e "PasswordAuthentication no\nUsePrivilegeSeparation no\nPubkeyAcceptedKeyTypes +ssh-dss\nSubsystem sftp $TERMUX_PREFIX/libexec/sftp-server" > $TERMUX_PREFIX/etc/ssh/sshd_config
-        echo "PubkeyAcceptedKeyTypes +ssh-dss" > $TERMUX_PREFIX/etc/ssh/ssh_config
+       echo -e "PrintMotd no\nPasswordAuthentication no\nPubkeyAcceptedKeyTypes +ssh-dss\nSubsystem sftp $TERMUX_PREFIX/libexec/sftp-server" > $TERMUX_PREFIX/etc/ssh/sshd_config
+       echo "PubkeyAcceptedKeyTypes +ssh-dss" > $TERMUX_PREFIX/etc/ssh/ssh_config
        cp $TERMUX_PKG_BUILDER_DIR/source-ssh-agent.sh $TERMUX_PREFIX/bin/source-ssh-agent
        cp $TERMUX_PKG_BUILDER_DIR/ssh-with-agent.sh $TERMUX_PREFIX/bin/ssha
 
@@ -39,8 +78,22 @@ termux_step_post_make_install () {
        cp $TERMUX_PKG_SRCDIR/moduli $TERMUX_PREFIX/etc/ssh/moduli
 }
 
+termux_step_post_massage () {
+       # Verify that we have man pages packaged (#1538).
+       local manpage
+       for manpage in ssh-keyscan.1 ssh-add.1 scp.1 ssh-agent.1 ssh.1; do
+               if [ ! -f share/man/man1/$manpage ]; then
+                       termux_error_exit "Missing man page $manpage"
+               fi
+       done
+}
+
 termux_step_create_debscripts () {
-       echo "mkdir -p \$HOME/.ssh" > postinst
+       echo "#!$TERMUX_PREFIX/bin/sh" > postinst
+       echo "mkdir -p \$HOME/.ssh" >> postinst
+       echo "touch \$HOME/.ssh/authorized_keys" >> postinst
+       echo "chmod 700 \$HOME/.ssh" >> postinst
+       echo "chmod 600 \$HOME/.ssh/authorized_keys" >> postinst
        echo "" >> postinst
         echo "for a in rsa dsa ecdsa ed25519; do" >> postinst
         echo "    KEYFILE=$TERMUX_PREFIX/etc/ssh/ssh_host_\${a}_key" >> postinst