0
0
Fork 0
haikuports/net-misc/openssh/openssh-8.8p1.recipe

163 lines
4.6 KiB
Bash

SUMMARY="Secure Shell client and server (remote login program)"
DESCRIPTION="OpenSSH is a free version of the SSH connectivity tools that \
technical users of the Internet rely on. Users of telnet, rlogin, and ftp may \
not realize that their password is transmitted across the Internet \
unencrypted, but it is.
OpenSSH encrypts all traffic (including passwords) to effectively eliminate \
eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH \
provides secure tunneling capabilities and several authentication methods, and \
supports all SSH protocol versions.
The OpenSSH suite replaces rlogin and telnet with the ssh program, rcp with \
scp, and ftp with sftp. Also included is sshd (the server side of the \
package), and the other utilities like ssh-add, ssh-agent, ssh-keysign, \
ssh-keyscan, ssh-keygen and sftp-server."
HOMEPAGE="http://www.openssh.com/"
COPYRIGHT="2005-2020 Tatu Ylonen et al."
LICENSE="OpenSSH"
REVISION="1"
SOURCE_URI="https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-$portVersion.tar.gz"
CHECKSUM_SHA256="4590890ea9bb9ace4f71ae331785a3a5823232435161960ed5fc86588f331fe9"
PATCHES="openssh-$portVersion.patchset"
ADDITIONAL_FILES="
sshd_keymaker.sh
fix_openssh_config_paths.sh
"
ARCHITECTURES="all"
GLOBAL_WRITABLE_FILES="
settings/ssh directory keep-old
settings/ssh/ssh_config keep-old
settings/ssh/sshd_config keep-old
"
USER_SETTINGS_FILES="
settings/ssh directory
settings/ssh/ssh_config template data/openssh/ssh_config.default
settings/ssh/sshd_config template data/openssh/sshd_config.default
"
POST_INSTALL_SCRIPTS="
$relativePostInstallDir/sshd_keymaker.sh
$relativePostInstallDir/fix_openssh_config_paths.sh
"
sshdUserHomeDir="/packages/$portVersionedName-$REVISION/.self/$relativeDataDir/openssh/empty"
PACKAGE_USERS="
sshd real-name \"sshd user\" home \"$sshdUserHomeDir\" shell \"/bin/true\" groups \"sshd\"
"
PACKAGE_GROUPS="sshd"
PROVIDES="
openssh = $portVersion compat >= 5
cmd:scp = $portVersion compat >= 5
cmd:sftp = $portVersion compat >= 5
cmd:sftp_server = $portVersion compat >= 5
cmd:ssh = $portVersion compat >= 5
cmd:ssh_add = $portVersion compat >= 5
cmd:ssh_agent = $portVersion compat >= 5
cmd:ssh_copy_id = $portVersion compat >= 5
cmd:ssh_keygen = $portVersion compat >= 5
cmd:ssh_keyscan = $portVersion compat >= 5
cmd:ssh_keysign = $portVersion compat >= 5
cmd:ssh_pkcs11_helper = $portVersion compat >= 5
cmd:sshd = $portVersion compat >= 5
"
REQUIRES="
haiku
cmd:grep
cmd:login
cmd:passwd
cmd:sed
lib:libcrypto
lib:libedit
lib:libncurses
lib:libssl
lib:libz
"
BUILD_REQUIRES="
haiku_devel
devel:libcrypto
devel:libedit
devel:libncurses
devel:libssl
devel:libz
"
BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoconf
cmd:automake
cmd:gcc
cmd:ld
cmd:libtoolize
cmd:make
cmd:pkg_config
"
PATCH()
{
echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac
}
BUILD()
{
mkdir -p m4
aclocal --install -I m4
libtoolize --force --copy
aclocal -I m4
autoconf
defaultPath=".:/boot/home/config/non-packaged/bin:/boot/home/config/bin"
defaultPath+=":/boot/system/non-packaged/bin:/boot/system/bin:/bin"
defaultPath+=":/boot/system/apps:/boot/system/preferences"
# Note: override sysconfdir and libexecdir since ssh doesn't create
# subdirectories as it should.
PATH_PASSWD_PROG=$portPackageLinksDir/cmd~passwd/bin/passwd \
LOGIN_PROGRAM=$portPackageLinksDir/cmd~login/bin/login \
runConfigure ./configure \
--sysconfdir=$sysconfDir/ssh \
--libexecdir=$libExecDir/openssh \
--with-privsep-path=$dataDir/openssh/empty \
--with-pid-dir=$prefix/var/run \
--with-default-path="$defaultPath" \
--with-md5-passwords \
--disable-utmpx \
--with-libedit \
--with-stackprotect=no
make $jobArgs
}
INSTALL()
{
make install-nokeys
mkdir -p $postInstallDir
cp -f $portDir/additional-files/sshd_keymaker.sh $postInstallDir
cp -f $portDir/additional-files/fix_openssh_config_paths.sh $postInstallDir
install -m 755 contrib/ssh-copy-id $binDir
install -m 644 contrib/ssh-copy-id.1 $manDir/man1
local USER_SETTINGS_DIR="`finddir B_USER_SETTINGS_DIRECTORY`"
sed -i \
-e "s| ~/\.ssh/| $USER_SETTINGS_DIR/ssh/|" \
$sysconfDir/ssh/ssh_config
local SYSTEM_SETTINGS_DIR="`finddir B_SYSTEM_SETTINGS_DIRECTORY`"
local VAR_DIR="`finddir B_SYSTEM_VAR_DIRECTORY`"
local LIB_DIR="`finddir B_SYSTEM_LIB_DIRECTORY`"
sed -i \
-e "s|$sysconfDir/ssh/|$SYSTEM_SETTINGS_DIR/ssh/|" \
-e "s|$prefix/var/run/|$VAR_DIR/run/|" \
-e "s|$libExecDir/openssh/|$LIB_DIR/openssh/|" \
$sysconfDir/ssh/sshd_config
mkdir -p $dataDir/openssh/empty
cp $sysconfDir/ssh/ssh_config $dataDir/openssh/ssh_config.default
cp $sysconfDir/ssh/sshd_config $dataDir/openssh/sshd_config.default
}
TEST()
{
make tests
}