# Maintainer: jc_gargma # Maintainer: David Runge # Maintainer (Arch): Levente Polyak # Maintainer (Arch): Giancarlo Razzolini # Contributor (Arch): Gaetan Bisson # Contributor (Arch): Aaron Griffin # Contributor (Arch): judd # # I maintain this because: # Artix version lacks additional optimization and hardening flags # Arch version lacks openrc support pkgname=openssh pkgver=9.7p1 pkgrel=1 pkgdesc="SSH protocol implementation for remote login, command execution and file transfer" arch=(x86_64) url='https://www.openssh.com/portable.html' license=( BSD-2-Clause BSD-3-Clause ISC LicenseRef-Public-Domain MIT ) depends=( glibc ) makedepends=( krb5 libedit libfido2 libxcrypt linux-headers openssl pam zlib ) optdepends=( 'libfido2: FIDO/U2F support' 'sh: for ssh-copy-id and findssl.sh' 'x11-ssh-askpass: input passphrase in X' 'xorg-xauth: X11 forwarding' ) backup=( etc/pam.d/sshd etc/ssh/ssh_config etc/ssh/sshd_config ) # # For some reason this breaks compiling. "error: C compiler cannot create executables" # # But old-fashioned raw injection of -flto=auto via export doesn't. #options=('lto') #options=('debug') source=( https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/$pkgname-$pkgver.tar.gz{,.asc} 99-archlinux.conf openssh.tmpfiles sshd.pam ) sha256sums=('490426f766d82a2763fcacd8d83ea3d70798750c7bd2aff2e57dc5660f773ffd' 'SKIP' '78b806c38bc1e246daaa941bfe7880e6eb6f53f093bea5d5868525ae6d223d30' '975904668c3c98fff5dbf840717ae959593fa05e90e215e67bf7ee24369d6369' 'a979e236681c6a06906937cf0f012e976347af5d6d7e7ae04a11acb01cc2689d') b2sums=('520859fcbdf678808fc8515b64585ab9a90a8055fa869df6fbba3083cb7f73ddb81ed9ea981e131520736a8aed838f85ae68ca63406a410df61039913c5cb48b' 'SKIP' '1ff8cd4ae22efed2b4260f1e518de919c4b290be4e0b5edbc8e2225ffe63788678d1961e6f863b85974c4697428ee827bcbabad371cfc91cc8b36eae9402eb97' '43bf32158d6b14cf298e5e92a54d93577d6a45b32b3c0fad7a3722e55a53e446fd30df10002bc945c71528904bb397aaadc4f439dd81e5a87263a31b1daa7fc2' 'a61b50849a4efe66b3341fd312531dde54917cf138ddb458973632de7ff815dddeeff432ff84fb0d63d94a46a331b6bb736ae0e260f8cc7f82beb3c0a9c0d602') validpgpkeys=('7168B983815A5EEF59A4ADFD2A3F414E736060BA') # Damien Miller # https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc prepare() { cd $pkgname-$pkgver # remove variable (but useless) first line in config (related to upstream VCS) sed '/^#.*\$.*\$$/d' -i ssh{,d}_config # prepend configuration option to include drop-in configuration files for sshd_config printf "# Include drop-in configurations\nInclude /etc/ssh/sshd_config.d/*.conf\n" | cat - sshd_config > sshd_config.tmp mv -v sshd_config.tmp sshd_config # prepend configuration option to include drop-in configuration files for ssh_config printf "# Include drop-in configurations\nInclude /etc/ssh/ssh_config.d/*.conf\n" | cat - ssh_config > ssh_config.tmp mv -v ssh_config.tmp ssh_config # extract separate licenses sed -n '89,113p' LICENCE > ../rijndael.Public-Domain.txt sed -n '116,145p' LICENCE > ../ssh.BSD-3-Clause.txt sed -n '148,209p' LICENCE > ../BSD-2-Clause.txt sed -n '213,218p' LICENCE > ../snprintf.Public-Domain.txt sed -n '222,258p' LICENCE > ../openbsd-compat.BSD-3-Clause.txt sed -n '260,278p' LICENCE > ../openbsd-compat.ISC.txt sed -n '280,308p' LICENCE > ../openbsd-compat.MIT.txt sed -n '280,308p' LICENCE > ../openbsd-compat.MIT.txt sed -n '310,338p' LICENCE > ../blowfish.BSD-3-Clause.txt sed -n '340,368p' LICENCE > ../replacement.BSD-2-Clause.txt } build() { local configure_options=( --prefix=/usr --sbindir=/usr/bin --libexecdir=/usr/lib/ssh --sysconfdir=/etc/ssh --disable-strip --with-libedit --with-security-key-builtin --with-ssl-engine --with-pam --with-privsep-user=nobody --with-kerberos5=/usr --with-xauth=/usr/bin/xauth --with-pid-dir=/run --with-default-path='/usr/local/sbin:/usr/local/bin:/usr/bin' --without-zlib-version-check ) cd $pkgname-$pkgver # -fPIE causes test errors export CFLAGS="$CFLAGS -O3 -fstack-protector-all -flto=auto -fPIC" export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -flto=auto -fPIC" #export LDFLAGS="$LDFLAGS,-pie" ./configure "${configure_options[@]}" make } check() { cd $pkgname-$pkgver # NOTE: make t-exec does not work in our build environment make file-tests interop-tests unit } package() { depends+=( krb5 libkrb5.so libgssapi_krb5.so libedit libedit.so libxcrypt libcrypt.so openssl libcrypto.so pam libpam.so zlib libz.so ) cd $pkgname-$pkgver make DESTDIR="$pkgdir" install install -vDm 644 ../99-archlinux.conf -t "$pkgdir/etc/ssh/sshd_config.d/" install -vdm 755 "$pkgdir/etc/ssh/ssh_config.d" install -Dm644 LICENCE -t "$pkgdir/usr/share/licenses/$pkgname/" install -Dm644 ../*.txt -t "$pkgdir/usr/share/licenses/$pkgname/" install -Dm644 ../sshd.pam "$pkgdir"/etc/pam.d/sshd # factory files install -Dm644 ../sshd.pam "$pkgdir"/usr/share/factory/etc/pam.d/sshd install -Dm644 "$pkgdir/etc/ssh/moduli" -t "$pkgdir"/usr/share/factory/etc/ssh/ install -Dm644 "$pkgdir/etc/ssh/ssh_config" -t "$pkgdir"/usr/share/factory/etc/ssh/ install -Dm644 "$pkgdir/etc/ssh/sshd_config" -t "$pkgdir"/usr/share/factory/etc/ssh/ install -vDm 644 ../99-archlinux.conf -t "$pkgdir/usr/share/factory/etc/ssh/sshd_config.d/" install -vDm 644 ../$pkgname.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" install -Dm755 contrib/findssl.sh -t "$pkgdir"/usr/bin/ install -Dm755 contrib/ssh-copy-id -t "$pkgdir"/usr/bin/ install -Dm644 contrib/ssh-copy-id.1 -t "$pkgdir"/usr/share/man/man1/ }