termux-packages/packages/openssh/build.sh
Henrik Grimler dcb926abd4 Copy LICENSE file for some licenses instead of using generic one (#5478)
* termux-licenses: remove licenses that contain copyright information

These licenses cannot be taken from the common termux-licenses package as the copyright information needs to be distributed with the package as well.

271 packages in the main repository needs to be rebuilt after this change.

* termux_step_install_license: remove duplicated comment

* Bump packages that has a license with copyright information

We need to include this copyright information in the package so need
to rebuild them now that termux_step_install_license has been
modified.

The affected licenses are: MIT, ISC, PythonPL, Openfont-1.1, ZLIB,
Libpng, BSD, BSD 2-Clause, BSD 3-Clause.

* zlib: extract license file from zlib.h

* xorgproto: include all individual license files in package

* libgcrypt: include LICENSE file in package

It contains some copyright information so needs to be included in package

* libcrypt: add a dummy BSD 2-Clause license

According to homepage it is suppose to be BSD 2-Clause, but original
project did not include a license file

* libandroid-spawn: add LICENSE file to package

* libandroid-glob: add license file to package

* licenses: allow for comma separated TERMUX_PKG_LICENSE_FILE

%ci:no-build

* libicu: fix so that termux_step_install_license finds license file

%ci:no-build

* termux_step_install_license: check for license file as "License"

%ci:no-build

* libtiff: specify TERMUX_PKG_LICENSE_FILE

%ci:no-build

* asciidoctor: install license to standard location

* krb5: specify license file

* libdb: specify path to license file

%ci:no-build

* libprotobuf: specify path to license file

* darkhttpd: extract license file from darkhttpd.c

* w3m: ensure host libraries are not picked up

* w3m: extract LICENSE file from dock/README

* liblua{,52}: extract license files from doc/readme.html

* termux_step_install_license: look for License.txt as well

* dart: specify path to LICENSE file

* nim: specify license file

* runit: specify license file

* termux_step_install_license: look for LICENSE.TXT as well

* ossp-uuid: extract LICENSE from README

* pigz: extract LICENSE from pigz.c

* ttyrec: extract LICENSE from ttyrec.c

%ci:no-build

* bmon: specify license files

Most of the source files are licensed under MIT, it is not clear (to me) which
parts that are licensed under BSD 2-Clause.

%ci:no-build

* wordgrinder: specify license files

* fdupes: add LICENSE

* autossh: add LICENSE patch

* cmake: specify LICENSE file

* dos2unix: specify LICENSE file

* gnuplot: specify LICENSE file

* termux_step_install_license: look for variants of "copyright" also

* picolisp: specify LICENSE file

* lua-lpeg: extract license file

* tidy: specify license file

* gflags: specify LICENSE file

* timewarrior: fix src url

It seems to have been changed.

* postgresql: specify license file

* ttyrec: fix license patch header

* fossil: specify license file

* fmt: specify license file

* i2pd: specify license file

* leptonica: specify license file

* imgflo: add license file patch

* ired: add license file from ired github repo

* libzen: specify license file

* libmediainfo: specify license file

* mediainfo: specify license file

* tty-clock: add license patch

* samefile: add license patch

* quickjs: add license patch

* docbook-xml: add LICENSE patch

* docbook-xsl: specify LICENSE files

* gnuplot: configure with --without-latex

* timewarrior: add libshared to SRCURL as well

The non-release archives does not contain gitsubmodules so we need to
download it manually.

* restic: switch back to using 0.9.6 archive

* dart: revert revision bump

dart's SDK does not fully support python3 yet, and trying to solve
that is not entirely trivial. We save the dart bump (and upgrade to
2.8.4) for another day.

%ci:no-build
2020-07-07 18:45:45 +02:00

113 lines
4.0 KiB
Bash

TERMUX_PKG_HOMEPAGE=https://www.openssh.com/
TERMUX_PKG_DESCRIPTION="Secure shell for logging into a remote machine"
TERMUX_PKG_LICENSE="BSD"
TERMUX_PKG_VERSION=8.3p1
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=f2befbe0472fe7eb75d23340eb17531cb6b3aac24075e2066b41f814e12387b2
TERMUX_PKG_DEPENDS="libandroid-support, ldns, openssl, libedit, termux-auth, krb5, zlib"
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="
--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
--with-kerberos5
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"
TERMUX_PKG_CONFFILES="etc/ssh/ssh_config etc/ssh/sshd_config"
TERMUX_PKG_SERVICE_SCRIPT=("sshd" 'exec sshd -D -e 2>&1')
termux_step_pre_configure() {
# Certain packages are not safe to build on device because their
# build.sh script deletes specific files in $TERMUX_PREFIX.
if $TERMUX_ON_DEVICE_BUILD; then
termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds."
fi
autoreconf
## 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 -DBROKEN_SETRESGID"
LD=$CC # Needed to link the binaries
}
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() {
echo -e "PrintMotd yes\nPasswordAuthentication yes\nSubsystem sftp $TERMUX_PREFIX/libexec/sftp-server" > $TERMUX_PREFIX/etc/ssh/sshd_config
printf "SendEnv LANG\n" > $TERMUX_PREFIX/etc/ssh/ssh_config
install -Dm700 $TERMUX_PKG_BUILDER_DIR/source-ssh-agent.sh $TERMUX_PREFIX/bin/source-ssh-agent
install -Dm700 $TERMUX_PKG_BUILDER_DIR/ssh-with-agent.sh $TERMUX_PREFIX/bin/ssha
install -Dm700 $TERMUX_PKG_BUILDER_DIR/sftp-with-agent.sh $TERMUX_PREFIX/bin/sftpa
# Install ssh-copy-id:
cp $TERMUX_PKG_SRCDIR/contrib/ssh-copy-id.1 $TERMUX_PREFIX/share/man/man1/
cp $TERMUX_PKG_SRCDIR/contrib/ssh-copy-id $TERMUX_PREFIX/bin/
chmod +x $TERMUX_PREFIX/bin/ssh-copy-id
mkdir -p $TERMUX_PREFIX/var/run
echo "OpenSSH needs this folder to put sshd.pid in" >> $TERMUX_PREFIX/var/run/README.openssh
mkdir -p $TERMUX_PREFIX/etc/ssh/
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.gz ]; then
termux_error_exit "Missing man page $manpage"
fi
done
}
termux_step_create_debscripts() {
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
echo " test ! -f \$KEYFILE && ssh-keygen -N '' -t \$a -f \$KEYFILE" >> postinst
echo "done" >> postinst
echo "exit 0" >> postinst
chmod 0755 postinst
}