| 1 | TERMUX_PKG_HOMEPAGE=https://www.openssh.com/ |
| 2 | TERMUX_PKG_DESCRIPTION="Secure shell for logging into a remote machine" |
| 3 | TERMUX_PKG_VERSION=7.6p1 |
| 4 | TERMUX_PKG_SRCURL=https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${TERMUX_PKG_VERSION}.tar.gz |
| 5 | TERMUX_PKG_SHA256=a323caeeddfe145baaa0db16e98d784b1fbc7dd436a6bf1f479dfd5cd1d21723 |
| 6 | TERMUX_PKG_DEPENDS="libandroid-support, ldns, openssl, libedit, libutil" |
| 7 | # --disable-strip to prevent host "install" command to use "-s", which won't work for target binaries: |
| 8 | TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" |
| 9 | --disable-etc-default-login |
| 10 | --disable-lastlog |
| 11 | --disable-libutil |
| 12 | --disable-pututline |
| 13 | --disable-pututxline |
| 14 | --disable-strip |
| 15 | --disable-utmp |
| 16 | --disable-utmpx |
| 17 | --disable-wtmp |
| 18 | --disable-wtmpx |
| 19 | --sysconfdir=$TERMUX_PREFIX/etc/ssh |
| 20 | --with-cflags=-Dfd_mask=int |
| 21 | --with-ldns |
| 22 | --with-libedit |
| 23 | --with-mantype=man |
| 24 | --without-ssh1 |
| 25 | --without-stackprotect |
| 26 | --with-pid-dir=$TERMUX_PREFIX/var/run |
| 27 | --with-privsep-path=$TERMUX_PREFIX/var/empty |
| 28 | --with-xauth=$TERMUX_PREFIX/bin/xauth |
| 29 | ac_cv_func_endgrent=yes |
| 30 | ac_cv_func_fmt_scaled=no |
| 31 | ac_cv_func_getlastlogxbyname=no |
| 32 | ac_cv_func_readpassphrase=no |
| 33 | ac_cv_func_strnvis=no |
| 34 | ac_cv_header_sys_un_h=yes |
| 35 | ac_cv_search_getrrsetbyname=no |
| 36 | " |
| 37 | TERMUX_PKG_MAKE_INSTALL_TARGET="install-nokeys" |
| 38 | TERMUX_PKG_RM_AFTER_INSTALL="bin/slogin share/man/man1/slogin.1" |
| 39 | |
| 40 | termux_step_pre_configure() { |
| 41 | autoreconf |
| 42 | |
| 43 | ## Configure script require this variable to set |
| 44 | ## prefixed path to program 'passwd' |
| 45 | export PATH_PASSWD_PROG="${TERMUX_PREFIX}/bin/passwd" |
| 46 | |
| 47 | CPPFLAGS+=" -DHAVE_ATTRIBUTE__SENTINEL__=1" |
| 48 | LD=$CC # Needed to link the binaries |
| 49 | LDFLAGS+=" -llog" # liblog for android logging in syslog hack |
| 50 | } |
| 51 | |
| 52 | termux_step_post_configure() { |
| 53 | # We need to remove this file before installing, since otherwise the |
| 54 | # install leaves it alone which means no updated timestamps. |
| 55 | rm -Rf $TERMUX_PREFIX/etc/moduli |
| 56 | } |
| 57 | |
| 58 | termux_step_post_make_install () { |
| 59 | # "PrintMotd no" is due to our login program already showing it. |
| 60 | # OpenSSH 7.0 disabled ssh-dss by default, keep it for a while in Termux: |
| 61 | echo -e "PrintMotd no\nPasswordAuthentication no\nPubkeyAcceptedKeyTypes +ssh-dss\nSubsystem sftp $TERMUX_PREFIX/libexec/sftp-server" > $TERMUX_PREFIX/etc/ssh/sshd_config |
| 62 | echo "PubkeyAcceptedKeyTypes +ssh-dss" > $TERMUX_PREFIX/etc/ssh/ssh_config |
| 63 | cp $TERMUX_PKG_BUILDER_DIR/source-ssh-agent.sh $TERMUX_PREFIX/bin/source-ssh-agent |
| 64 | cp $TERMUX_PKG_BUILDER_DIR/ssh-with-agent.sh $TERMUX_PREFIX/bin/ssha |
| 65 | |
| 66 | # Install ssh-copy-id: |
| 67 | cp $TERMUX_PKG_SRCDIR/contrib/ssh-copy-id.1 $TERMUX_PREFIX/share/man/man1/ |
| 68 | cp $TERMUX_PKG_SRCDIR/contrib/ssh-copy-id $TERMUX_PREFIX/bin/ |
| 69 | chmod +x $TERMUX_PREFIX/bin/ssh-copy-id |
| 70 | |
| 71 | mkdir -p $TERMUX_PREFIX/var/run |
| 72 | echo "OpenSSH needs this folder to put sshd.pid in" >> $TERMUX_PREFIX/var/run/README.openssh |
| 73 | |
| 74 | mkdir -p $TERMUX_PREFIX/etc/ssh/ |
| 75 | cp $TERMUX_PKG_SRCDIR/moduli $TERMUX_PREFIX/etc/ssh/moduli |
| 76 | } |
| 77 | |
| 78 | termux_step_post_massage () { |
| 79 | # Verify that we have man pages packaged (#1538). |
| 80 | local manpage |
| 81 | for manpage in ssh-keyscan.1 ssh-add.1 scp.1 ssh-agent.1 ssh.1; do |
| 82 | if [ ! -f share/man/man1/$manpage ]; then |
| 83 | termux_error_exit "Missing man page $manpage" |
| 84 | fi |
| 85 | done |
| 86 | } |
| 87 | |
| 88 | termux_step_create_debscripts () { |
| 89 | echo "#!$TERMUX_PREFIX/bin/sh" > postinst |
| 90 | echo "mkdir -p \$HOME/.ssh" >> postinst |
| 91 | echo "touch \$HOME/.ssh/authorized_keys" >> postinst |
| 92 | echo "chmod 700 \$HOME/.ssh" >> postinst |
| 93 | echo "chmod 600 \$HOME/.ssh/authorized_keys" >> postinst |
| 94 | echo "" >> postinst |
| 95 | echo "for a in rsa dsa ecdsa ed25519; do" >> postinst |
| 96 | echo " KEYFILE=$TERMUX_PREFIX/etc/ssh/ssh_host_\${a}_key" >> postinst |
| 97 | echo " test ! -f \$KEYFILE && ssh-keygen -N '' -t \$a -f \$KEYFILE" >> postinst |
| 98 | echo "done" >> postinst |
| 99 | echo "exit 0" >> postinst |
| 100 | chmod 0755 postinst |
| 101 | } |