diff --git a/net-misc/openssh/openssh-6.5p1.recipe b/net-misc/openssh/openssh-6.5p1.recipe new file mode 100644 index 000000000..2443e889e --- /dev/null +++ b/net-misc/openssh/openssh-6.5p1.recipe @@ -0,0 +1,135 @@ +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/" +LICENSE="OpenSSH" +COPYRIGHT="2005-2012 Tatu Ylonen et al." +#SRC_URI="http://openbsd.mirrorcatalogs.com/pub/OpenBSD/OpenSSH/portable/openssh-6.0p1.tar.gz" +SRC_URI="http://mindrot.org/openssh_snap/openssh-SNAP-20140127.tar.gz" +CHECKSUM_MD5="30c7abbc69179aea953cfc2d47e402bd" +REVISION="1" + +ARCHITECTURES="x86_gcc2 x86 x86_64" + +PATCHES="sshd_config.patch + pathnames.patch" + +ADDITIONAL_FILES="sshd_keymaker.sh" + +PROVIDES=" + openssh = $portVersion compat >= 5 + cmd:scp = $portVersion compat >= 5 + cmd:sftp = $portVersion compat >= 5 + cmd:sftp_server = $portVersion compat >= 5 + cmd:slogin = $portVersion compat >= 5 + cmd:ssh = $portVersion compat >= 5 + cmd:ssh_add = $portVersion compat >= 5 + cmd:ssh_agent = $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 >= $haikuVersion + cmd:login + cmd:passwd + lib:libcrypto + lib:libedit + lib:libncurses + lib:libssl + lib:libz + " +BUILD_REQUIRES=" + devel:libcrypto + devel:libedit + devel:libncurses + devel:libssl + devel:libz + " +BUILD_PREREQUIRES=" + haiku_devel >= $haikuVersion + cmd:aclocal + cmd:autoconf + cmd:automake + cmd:gcc + cmd:ld + cmd:libtoolize + cmd:make + cmd:pkg_config + " + +GLOBAL_WRITABLE_FILES=" + settings/ssh directory keep-old + " +USER_SETTINGS_FILES=" + settings/ssh directory + " +POST_INSTALL_SCRIPTS=" + $relativePostInstallDir/sshd_keymaker.sh + " +sshdUserHomeDir="/packages/$portVersionedName-$REVISION/.self/$relativeDataDir/openssh/empty" +PACKAGE_USERS=" + sshd real-name \"sshd user\" home \"$sshdUserHomeDir\" shell \"/bin/true\" + " +PACKAGE_GROUPS="sshd" + + +PATCH() +{ + echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac +} + +SOURCE_DIR="openssh" + +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/common/non-packaged/bin:/boot/common/bin:/bin" + defaultPath+=":/boot/common/apps:/boot/common/preferences:/boot/system/apps" + defaultPath+=":/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 + make $jobArgs +} + +INSTALL() +{ + make install-nokeys + mkdir -p $postInstallDir + cp -f $portDir/additional-files/sshd_keymaker.sh $postInstallDir +} + +TEST() +{ + make tests +} diff --git a/net-misc/openssh/patches/pathnames.patch b/net-misc/openssh/patches/pathnames.patch new file mode 100644 index 000000000..8c911e943 --- /dev/null +++ b/net-misc/openssh/patches/pathnames.patch @@ -0,0 +1,13 @@ +diff --git a/pathnames.h b/pathnames.h +index ec89fc6..6ad1b64 100644 +--- a/pathnames.h ++++ b/pathnames.h +@@ -59,7 +59,7 @@ + * The directory in user's home directory in which the files reside. The + * directory should be world-readable (though not all files are). + */ +-#define _PATH_SSH_USER_DIR ".ssh" ++#define _PATH_SSH_USER_DIR "config/settings/ssh" + + /* + * Per-user file containing host keys of known hosts. This file need not be diff --git a/net-misc/openssh/patches/sshd_config.patch b/net-misc/openssh/patches/sshd_config.patch new file mode 100644 index 000000000..a00bb2e0c --- /dev/null +++ b/net-misc/openssh/patches/sshd_config.patch @@ -0,0 +1,13 @@ +diff --git a/sshd_config b/sshd_config +index e9045bc..0835873 100644 +--- a/sshd_config ++++ b/sshd_config +@@ -51,7 +51,7 @@ + + # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 + # but this is overridden so installations will only check .ssh/authorized_keys +-AuthorizedKeysFile .ssh/authorized_keys ++AuthorizedKeysFile config/settings/ssh/authorized_keys + + #AuthorizedPrincipalsFile none +