mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-24 07:51:03 +02:00
openssh: import 7.2_p2 from upstream
This commit is contained in:
parent
0db48aa5c3
commit
1801819518
@ -2,4 +2,8 @@ DIST openssh-6.8_p1-sctp.patch.xz 7388 SHA256 2c74dd00aaae9f4de908d8e5685ae98277
|
||||
DIST openssh-7.1p1+x509-8.6.diff.gz 413931 SHA256 cbf661a1fec080dc9ed335a290414154326c2a13f124985db050b86a91073d52 SHA512 c91d0f1b69b6d34984e94b391ad022271e73d0634cef2df355ba555366bc38d30649b478f245b6c51ce79d71adf1b693bc97826e6c6013a78e7ccfb7023b4bcc WHIRLPOOL 4ed4427e80026996c43a188d7d45f2c53fa6a7fd842a248b1225b27f3e9037e761f0ed172d79b53ada81c24d958a2193e94d918f6ca1320e45d5e68379845981
|
||||
DIST openssh-7.1p1-hpnssh14v9.tar.xz 21580 SHA256 a795c2f2621f537b3fd98172cbd1f7c71869e4da78cd280d123fa19ae4262b97 SHA512 6ce151949bf81b5518b95092a2f18d2f24581954e2c629deaf3c1d10136f32f830567aafb9b4045547e95e3ab63cf750e240eac40e2b9caa6d71cb2b132821ec WHIRLPOOL 8e3c9a1d79112092a6cb42c6766ccdf61e5d8fcd366ea5c7d3bab94cf309bcc12f3761476a288158638a340023aa24519d888caac19fb0ef25fa56bdab06412c
|
||||
DIST openssh-7.1p1.tar.gz 1493170 SHA256 fc0a6d2d1d063d5c66dffd952493d0cda256cad204f681de0f84ef85b2ad8428 SHA512 f1491ca5a0a733eb27ede966590642a412cb7be7178dcb7b9e5844bbdc8383032f4b00435192b95fc0365b6fe74d6c5ac8d6facbe9d51e1532d049e2f784e8f7 WHIRLPOOL a650a93657f930d20dc3fa24ab720857f63f7cd0a82d1906cf1e58145e866129207851d5e587d678655e5731fa73221ab9b6ea0754533100c25fe2acaa442e05
|
||||
DIST openssh-7.2_p1-sctp.patch.xz 8088 SHA256 b9cc21336e23d44548e87964da9ff85ac83ce84693162abb172afb46be4a666e SHA512 b287684337a101a26ab8df6894b679b063cdaa7dfc7b78fcc0ce8350c27526f150a6463c515019beb0af2ff005cc109d2913998f95f828e553b835a4df8b64df WHIRLPOOL 16646a896f746946af84961974be08418b951c80249dce2fd4ae533a4d66e79d4372fd979aeda9c51aff51b86edf4178af18379e948195696a6fa114e2757306
|
||||
DIST openssh-7.2p2+x509-8.9.diff.gz 449308 SHA256 bd77fcd285d10a86fb2934e90776fe39e4cd2da043384ec2ca45296a60669589 SHA512 c7ed07aae72fd4f967ab5717831c51ad639ca59633c3768f6930bab0947f5429391e3911a7570288a1c688c8c21747f3cb722538ae96de6b50a021010e1506fa WHIRLPOOL 7c1328e471b0e5e9576117ec563b66fea142886b0666b6d51ac9b8ec09286ba7a965b62796c32206e855e484180797a2c31d500c27289f3bc8c7db2d3af95e6f
|
||||
DIST openssh-7.2p2.tar.gz 1499808 SHA256 a72781d1a043876a224ff1b0032daa4094d87565a68528759c1c2cab5482548c SHA512 44f62b3a7bc50a0735d496a5aedeefb71550d8c10ad8f22b94e29fcc8084842db96e8c4ca41fced17af69e1aab09ed1182a12ad8650d9a46fd8743a0344df95b WHIRLPOOL 95e16af6d1d82f4a660b56854b8e9da947b89e47775c06fe277a612cd1a7cabe7454087eb45034aedfb9b08096ce4aa427b9a37f43f70ccf1073664bdec13386
|
||||
DIST openssh-lpk-6.8p1-0.3.14.patch.xz 16940 SHA256 d5f048dc7e9d3fca085c152fc31306f1d8fa793e524c538295915b075ec085b0 SHA512 2470b6b46f8c7ac985f82d14b788a3eb81a468a1d5013cb7f89257d9dd78b6037e24bf54ac57b757db8ed1df24332d659cf918c11ea73592fd24a69c25a54081 WHIRLPOOL b041ee9e0efdf370686f11df4131ab5e5ffb2f11cc66c386a8223bf563c5b78ab9443f06e4adc2e506e440cdec9dc5b20f5972cd8d691d786d2f903bb49b947b
|
||||
DIST openssh-lpk-7.2p2-0.3.14.patch.xz 17692 SHA256 2cd4108d60112bd97402f9c27aac2c24d334a37afe0933ad9c6377a257a68aee SHA512 e6a25f8f0106fadcb799300452d6f22034d3fc69bd1c95a3365884873861f41b1e9d49f2c5223dde6fcd00562c652ba466bc8c48833ce5ab353af3a041f75b15 WHIRLPOOL 237343b320772a1588b64c4135758af840199214129d7e8cfa9798f976c32902ca5493ee0c33b16003854fea243556997bc688640a9872b82c06f72c86f2586d
|
||||
|
@ -0,0 +1,51 @@
|
||||
--- openssh-7.1p2/Makefile.in
|
||||
+++ openssh-7.1p2/Makefile.in
|
||||
@@ -45,7 +45,7 @@
|
||||
CC=@CC@
|
||||
LD=@LD@
|
||||
CFLAGS=@CFLAGS@
|
||||
-CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ @LDAP_CPPFLAGS@ $(PATHS) @DEFS@
|
||||
+CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@
|
||||
LIBS=@LIBS@
|
||||
K5LIBS=@K5LIBS@
|
||||
GSSLIBS=@GSSLIBS@
|
||||
@@ -53,6 +53,7 @@
|
||||
SSHDLIBS=@SSHDLIBS@
|
||||
LIBEDIT=@LIBEDIT@
|
||||
LIBLDAP=@LDAP_LDFLAGS@ @LDAP_LIBS@
|
||||
+CPPFLAGS+=@LDAP_CPPFLAGS@
|
||||
AR=@AR@
|
||||
AWK=@AWK@
|
||||
RANLIB=@RANLIB@
|
||||
--- openssh-7.1p2/sshconnect.c
|
||||
+++ openssh-7.1p2/sshconnect.c
|
||||
@@ -465,7 +465,7 @@
|
||||
{
|
||||
/* Send our own protocol version identification. */
|
||||
if (compat20) {
|
||||
- xasprintf(&client_version_string, "SSH-%d.%d-%.100s PKIX\r\n",
|
||||
+ xasprintf(&client_version_string, "SSH-%d.%d-%.100s\r\n",
|
||||
PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, SSH_VERSION);
|
||||
} else {
|
||||
xasprintf(&client_version_string, "SSH-%d.%d-%.100s\n",
|
||||
--- openssh-7.1p2/sshd.c
|
||||
+++ openssh-7.1p2/sshd.c
|
||||
@@ -472,8 +472,8 @@
|
||||
comment = "";
|
||||
}
|
||||
|
||||
- xasprintf(&server_version_string, "SSH-%d.%d-%.100s%s%s%s%s",
|
||||
- major, minor, SSH_VERSION, comment,
|
||||
+ xasprintf(&server_version_string, "SSH-%d.%d-%.100s%s%s%s",
|
||||
+ major, minor, SSH_VERSION,
|
||||
*options.version_addendum == '\0' ? "" : " ",
|
||||
options.version_addendum, newline);
|
||||
|
||||
--- openssh-7.1p2/version.h
|
||||
+++ openssh-7.1p2/version.h
|
||||
@@ -3,4 +3,5 @@
|
||||
#define SSH_VERSION "OpenSSH_7.1"
|
||||
|
||||
#define SSH_PORTABLE "p2"
|
||||
+#define SSH_X509 " PKIX"
|
||||
#define SSH_RELEASE SSH_VERSION SSH_PORTABLE
|
106
sdk_container/src/third_party/coreos-overlay/net-misc/openssh/files/openssh-7.2_p1-GSSAPI-dns.patch
vendored
Normal file
106
sdk_container/src/third_party/coreos-overlay/net-misc/openssh/files/openssh-7.2_p1-GSSAPI-dns.patch
vendored
Normal file
@ -0,0 +1,106 @@
|
||||
http://bugs.gentoo.org/165444
|
||||
https://bugzilla.mindrot.org/show_bug.cgi?id=1008
|
||||
|
||||
--- openssh-7.2p1/readconf.c
|
||||
+++ openssh-7.2p1/readconf.c
|
||||
@@ -148,6 +148,7 @@
|
||||
oClearAllForwardings, oNoHostAuthenticationForLocalhost,
|
||||
oEnableSSHKeysign, oRekeyLimit, oVerifyHostKeyDNS, oConnectTimeout,
|
||||
oAddressFamily, oGssAuthentication, oGssDelegateCreds,
|
||||
+ oGssTrustDns,
|
||||
oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly,
|
||||
oSendEnv, oControlPath, oControlMaster, oControlPersist,
|
||||
oHashKnownHosts,
|
||||
@@ -194,9 +195,11 @@
|
||||
#if defined(GSSAPI)
|
||||
{ "gssapiauthentication", oGssAuthentication },
|
||||
{ "gssapidelegatecredentials", oGssDelegateCreds },
|
||||
+ { "gssapitrustdns", oGssTrustDns },
|
||||
#else
|
||||
{ "gssapiauthentication", oUnsupported },
|
||||
{ "gssapidelegatecredentials", oUnsupported },
|
||||
+ { "gssapitrustdns", oUnsupported },
|
||||
#endif
|
||||
{ "fallbacktorsh", oDeprecated },
|
||||
{ "usersh", oDeprecated },
|
||||
@@ -930,6 +933,10 @@
|
||||
intptr = &options->gss_deleg_creds;
|
||||
goto parse_flag;
|
||||
|
||||
+ case oGssTrustDns:
|
||||
+ intptr = &options->gss_trust_dns;
|
||||
+ goto parse_flag;
|
||||
+
|
||||
case oBatchMode:
|
||||
intptr = &options->batch_mode;
|
||||
goto parse_flag;
|
||||
@@ -1649,6 +1656,7 @@
|
||||
options->challenge_response_authentication = -1;
|
||||
options->gss_authentication = -1;
|
||||
options->gss_deleg_creds = -1;
|
||||
+ options->gss_trust_dns = -1;
|
||||
options->password_authentication = -1;
|
||||
options->kbd_interactive_authentication = -1;
|
||||
options->kbd_interactive_devices = NULL;
|
||||
@@ -1779,6 +1787,8 @@
|
||||
options->gss_authentication = 0;
|
||||
if (options->gss_deleg_creds == -1)
|
||||
options->gss_deleg_creds = 0;
|
||||
+ if (options->gss_trust_dns == -1)
|
||||
+ options->gss_trust_dns = 0;
|
||||
if (options->password_authentication == -1)
|
||||
options->password_authentication = 1;
|
||||
if (options->kbd_interactive_authentication == -1)
|
||||
--- openssh-7.2p1/readconf.h
|
||||
+++ openssh-7.2p1/readconf.h
|
||||
@@ -46,6 +46,7 @@
|
||||
/* Try S/Key or TIS, authentication. */
|
||||
int gss_authentication; /* Try GSS authentication */
|
||||
int gss_deleg_creds; /* Delegate GSS credentials */
|
||||
+ int gss_trust_dns; /* Trust DNS for GSS canonicalization */
|
||||
int password_authentication; /* Try password
|
||||
* authentication. */
|
||||
int kbd_interactive_authentication; /* Try keyboard-interactive auth. */
|
||||
--- openssh-7.2p1/ssh_config.5
|
||||
+++ openssh-7.2p1/ssh_config.5
|
||||
@@ -830,6 +830,16 @@
|
||||
Forward (delegate) credentials to the server.
|
||||
The default is
|
||||
.Dq no .
|
||||
+Note that this option applies to protocol version 2 connections using GSSAPI.
|
||||
+.It Cm GSSAPITrustDns
|
||||
+Set to
|
||||
+.Dq yes to indicate that the DNS is trusted to securely canonicalize
|
||||
+the name of the host being connected to. If
|
||||
+.Dq no, the hostname entered on the
|
||||
+command line will be passed untouched to the GSSAPI library.
|
||||
+The default is
|
||||
+.Dq no .
|
||||
+This option only applies to protocol version 2 connections using GSSAPI.
|
||||
.It Cm HashKnownHosts
|
||||
Indicates that
|
||||
.Xr ssh 1
|
||||
--- openssh-7.2p1/sshconnect2.c
|
||||
+++ openssh-7.2p1/sshconnect2.c
|
||||
@@ -656,6 +656,12 @@
|
||||
static u_int mech = 0;
|
||||
OM_uint32 min;
|
||||
int ok = 0;
|
||||
+ const char *gss_host;
|
||||
+
|
||||
+ if (options.gss_trust_dns)
|
||||
+ gss_host = get_canonical_hostname(1);
|
||||
+ else
|
||||
+ gss_host = authctxt->host;
|
||||
|
||||
/* Try one GSSAPI method at a time, rather than sending them all at
|
||||
* once. */
|
||||
@@ -668,7 +674,7 @@
|
||||
/* My DER encoding requires length<128 */
|
||||
if (gss_supported->elements[mech].length < 128 &&
|
||||
ssh_gssapi_check_mechanism(&gssctxt,
|
||||
- &gss_supported->elements[mech], authctxt->host)) {
|
||||
+ &gss_supported->elements[mech], gss_host)) {
|
||||
ok = 1; /* Mechanism works */
|
||||
} else {
|
||||
mech++;
|
@ -0,0 +1,74 @@
|
||||
--- openssh-7.2_p1-sctp.patch
|
||||
+++ openssh-7.2_p1-sctp.patch
|
||||
@@ -195,14 +195,6 @@
|
||||
.Op Fl c Ar cipher
|
||||
.Op Fl F Ar ssh_config
|
||||
.Op Fl i Ar identity_file
|
||||
-@@ -181,6 +181,7 @@ For full details of the options listed below, and their possible values, see
|
||||
- .It ServerAliveCountMax
|
||||
- .It StrictHostKeyChecking
|
||||
- .It TCPKeepAlive
|
||||
-+.It Transport
|
||||
- .It UpdateHostKeys
|
||||
- .It UsePrivilegedPort
|
||||
- .It User
|
||||
@@ -222,6 +223,8 @@ and
|
||||
to print debugging messages about their progress.
|
||||
This is helpful in
|
||||
@@ -477,19 +469,11 @@
|
||||
.Sh SYNOPSIS
|
||||
.Nm ssh
|
||||
.Bk -words
|
||||
--.Op Fl 1246AaCfGgKkMNnqsTtVvXxYy
|
||||
-+.Op Fl 1246AaCfGgKkMNnqsTtVvXxYyz
|
||||
+-.Op Fl 1246AaCdfgKkMNnqsTtVvXxYy
|
||||
++.Op Fl 1246AaCdfgKkMNnqsTtVvXxYyz
|
||||
.Op Fl b Ar bind_address
|
||||
.Op Fl c Ar cipher_spec
|
||||
.Op Fl D Oo Ar bind_address : Oc Ns Ar port
|
||||
-@@ -536,6 +536,7 @@ For full details of the options listed below, and their possible values, see
|
||||
- .It StreamLocalBindUnlink
|
||||
- .It StrictHostKeyChecking
|
||||
- .It TCPKeepAlive
|
||||
-+.It Transport
|
||||
- .It Tunnel
|
||||
- .It TunnelDevice
|
||||
- .It UpdateHostKeys
|
||||
@@ -770,6 +771,8 @@ controls.
|
||||
.Pp
|
||||
.It Fl y
|
||||
@@ -501,7 +485,7 @@
|
||||
index f9ff91f..d0d92ce 100644
|
||||
--- a/ssh.c
|
||||
+++ b/ssh.c
|
||||
-@@ -195,12 +195,17 @@ extern int muxserver_sock;
|
||||
+@@ -195,11 +195,16 @@ extern int muxserver_sock;
|
||||
extern u_int muxclient_command;
|
||||
|
||||
/* Prints a help message to the user. This function never returns. */
|
||||
@@ -515,18 +499,17 @@
|
||||
usage(void)
|
||||
{
|
||||
fprintf(stderr,
|
||||
--"usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]\n"
|
||||
-+"usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy" SCTP_OPT "] [-b bind_address] [-c cipher_spec]\n"
|
||||
+-"usage: ssh [-1246AaCdfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]\n"
|
||||
++"usage: ssh [-1246AaCdfgKkMNnqsTtVvXxYy" SCTP_OPT "] [-b bind_address] [-c cipher_spec]\n"
|
||||
" [-D [bind_address:]port] [-E log_file] [-e escape_char]\n"
|
||||
" [-F configfile] [-I pkcs11] [-i identity_file] [-L address]\n"
|
||||
- " [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]\n"
|
||||
@@ -605,7 +610,7 @@ main(int ac, char **av)
|
||||
- argv0 = av[0];
|
||||
+ # define ENGCONFIG ""
|
||||
+ #endif
|
||||
|
||||
- again:
|
||||
-- while ((opt = getopt(ac, av, "1246ab:c:e:fgi:kl:m:no:p:qstvx"
|
||||
-+ while ((opt = getopt(ac, av, "1246ab:c:e:fgi:kl:m:no:p:qstvx" SCTP_OPT
|
||||
- "ACD:E:F:GI:KL:MNO:PQ:R:S:TVw:W:XYy")) != -1) {
|
||||
+- while ((opt = getopt(ac, av, "1246ab:c:de:fgi:kl:m:no:p:qstvx"
|
||||
++ while ((opt = getopt(ac, av, "1246ab:c:de:fgi:kl:m:no:p:qstvx" SCTP_OPT
|
||||
+ "ACD:E:F:" ENGCONFIG "I:KL:MNO:PQ:R:S:TVw:W:XYy")) != -1) {
|
||||
switch (opt) {
|
||||
case '1':
|
||||
@@ -845,6 +850,11 @@ main(int ac, char **av)
|
40
sdk_container/src/third_party/coreos-overlay/net-misc/openssh/metadata.xml
vendored
Normal file
40
sdk_container/src/third_party/coreos-overlay/net-misc/openssh/metadata.xml
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>base-system@gentoo.org</email>
|
||||
<name>Gentoo Base System</name>
|
||||
</maintainer>
|
||||
<maintainer type="person">
|
||||
<email>robbat2@gentoo.org</email>
|
||||
<description>LPK issues. Only assign if it's a direct LPK issue. Do not directly assign for anything else.</description>
|
||||
</maintainer>
|
||||
<longdescription>
|
||||
OpenSSH is a FREE version of the SSH protocol suite of network connectivity tools that
|
||||
increasing numbers of people on the Internet are coming to rely on. Many users of telnet,
|
||||
rlogin, ftp, and other such programs might 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 network-level attacks.
|
||||
Additionally, OpenSSH provides a myriad of secure tunneling capabilities, as well as a variety
|
||||
of authentication methods.
|
||||
|
||||
The OpenSSH suite includes the ssh program which replaces rlogin and telnet, scp which
|
||||
replaces rcp, and sftp which replaces ftp. Also included is sshd which is the server side of
|
||||
the package, and the other basic utilities like ssh-add, ssh-agent, ssh-keysign, ssh-keyscan,
|
||||
ssh-keygen and sftp-server. OpenSSH supports SSH protocol versions 1.3, 1.5, and 2.0.
|
||||
</longdescription>
|
||||
<use>
|
||||
<flag name="bindist">Disable EC/RC5 algorithms in OpenSSL for patent reasons.</flag>
|
||||
<flag name="hpn">Enable high performance ssh</flag>
|
||||
<flag name="ldap">Add support for storing SSH public keys in LDAP</flag>
|
||||
<flag name="ldns">Use LDNS for DNSSEC/SSHFP validation.</flag>
|
||||
<flag name="sctp">Support for Stream Control Transmission Protocol</flag>
|
||||
<flag name="ssh1">Support the legacy/weak SSH1 protocol</flag>
|
||||
<flag name="ssl">Enable additional crypto algorithms via OpenSSL</flag>
|
||||
<flag name="X509">Adds support for X.509 certificate authentication</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="cpe">cpe:/a:openssh:openssh</remote-id>
|
||||
<remote-id type="sourceforge">hpnssh</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
324
sdk_container/src/third_party/coreos-overlay/net-misc/openssh/openssh-7.2_p2.ebuild
vendored
Normal file
324
sdk_container/src/third_party/coreos-overlay/net-misc/openssh/openssh-7.2_p2.ebuild
vendored
Normal file
@ -0,0 +1,324 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Id$
|
||||
|
||||
EAPI="5"
|
||||
|
||||
inherit eutils user flag-o-matic multilib autotools pam systemd versionator
|
||||
|
||||
# Make it more portable between straight releases
|
||||
# and _p? releases.
|
||||
PARCH=${P/_}
|
||||
|
||||
#HPN_PATCH="${PARCH}-hpnssh14v10.tar.xz"
|
||||
LDAP_PATCH="${PN}-lpk-7.2p2-0.3.14.patch.xz"
|
||||
X509_VER="8.9" X509_PATCH="${PN}-${PV/_}+x509-${X509_VER}.diff.gz"
|
||||
|
||||
DESCRIPTION="Port of OpenBSD's free SSH release"
|
||||
HOMEPAGE="http://www.openssh.org/"
|
||||
SRC_URI="mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz
|
||||
mirror://gentoo/${PN}-7.2_p1-sctp.patch.xz
|
||||
${HPN_PATCH:+hpn? (
|
||||
mirror://gentoo/${HPN_PATCH}
|
||||
mirror://sourceforge/hpnssh/${HPN_PATCH}
|
||||
)}
|
||||
${LDAP_PATCH:+ldap? ( mirror://gentoo/${LDAP_PATCH} )}
|
||||
${X509_PATCH:+X509? ( http://roumenpetrov.info/openssh/x509-${X509_VER}/${X509_PATCH} )}
|
||||
"
|
||||
|
||||
LICENSE="BSD GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
|
||||
# Probably want to drop ssl defaulting to on in a future version.
|
||||
IUSE="bindist debug ${HPN_PATCH:++}hpn kerberos kernel_linux ldap ldns libedit libressl pam +pie sctp selinux skey ssh1 +ssl static X X509"
|
||||
REQUIRED_USE="ldns? ( ssl )
|
||||
pie? ( !static )
|
||||
ssh1? ( ssl )
|
||||
static? ( !kerberos !pam )
|
||||
X509? ( !ldap ssl )"
|
||||
|
||||
LIB_DEPEND="
|
||||
ldns? (
|
||||
net-libs/ldns[static-libs(+)]
|
||||
!bindist? ( net-libs/ldns[ecdsa,ssl] )
|
||||
bindist? ( net-libs/ldns[-ecdsa,ssl] )
|
||||
)
|
||||
libedit? ( dev-libs/libedit[static-libs(+)] )
|
||||
sctp? ( net-misc/lksctp-tools[static-libs(+)] )
|
||||
selinux? ( >=sys-libs/libselinux-1.28[static-libs(+)] )
|
||||
skey? ( >=sys-auth/skey-1.1.5-r1[static-libs(+)] )
|
||||
ssl? (
|
||||
!libressl? (
|
||||
>=dev-libs/openssl-0.9.8f:0[bindist=]
|
||||
dev-libs/openssl:0[static-libs(+)]
|
||||
)
|
||||
libressl? ( dev-libs/libressl[static-libs(+)] )
|
||||
)
|
||||
>=sys-libs/zlib-1.2.3[static-libs(+)]"
|
||||
RDEPEND="
|
||||
!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
|
||||
pam? ( virtual/pam )
|
||||
kerberos? ( virtual/krb5 )
|
||||
ldap? ( net-nds/openldap )"
|
||||
DEPEND="${RDEPEND}
|
||||
static? ( ${LIB_DEPEND} )
|
||||
virtual/pkgconfig
|
||||
virtual/os-headers
|
||||
sys-devel/autoconf"
|
||||
RDEPEND="${RDEPEND}
|
||||
pam? ( >=sys-auth/pambase-20081028 )
|
||||
userland_GNU? ( virtual/shadow )
|
||||
X? ( x11-apps/xauth )"
|
||||
|
||||
S=${WORKDIR}/${PARCH}
|
||||
|
||||
pkg_setup() {
|
||||
# this sucks, but i'd rather have people unable to `emerge -u openssh`
|
||||
# than not be able to log in to their server any more
|
||||
maybe_fail() { [[ -z ${!2} ]] && echo "$1" ; }
|
||||
local fail="
|
||||
$(use X509 && maybe_fail X509 X509_PATCH)
|
||||
$(use ldap && maybe_fail ldap LDAP_PATCH)
|
||||
$(use hpn && maybe_fail hpn HPN_PATCH)
|
||||
"
|
||||
fail=$(echo ${fail})
|
||||
if [[ -n ${fail} ]] ; then
|
||||
eerror "Sorry, but this version does not yet support features"
|
||||
eerror "that you requested: ${fail}"
|
||||
eerror "Please mask ${PF} for now and check back later:"
|
||||
eerror " # echo '=${CATEGORY}/${PF}' >> /etc/portage/package.mask"
|
||||
die "booooo"
|
||||
fi
|
||||
|
||||
# Make sure people who are using tcp wrappers are notified of its removal. #531156
|
||||
if grep -qs '^ *sshd *:' "${EROOT}"/etc/hosts.{allow,deny} ; then
|
||||
ewarn "Sorry, but openssh no longer supports tcp-wrappers, and it seems like"
|
||||
ewarn "you're trying to use it. Update your ${EROOT}etc/hosts.{allow,deny} please."
|
||||
fi
|
||||
}
|
||||
|
||||
save_version() {
|
||||
# version.h patch conflict avoidence
|
||||
mv version.h version.h.$1
|
||||
cp -f version.h.pristine version.h
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
sed -i \
|
||||
-e "/_PATH_XAUTH/s:/usr/X11R6/bin/xauth:${EPREFIX}/usr/bin/xauth:" \
|
||||
pathnames.h || die
|
||||
# keep this as we need it to avoid the conflict between LPK and HPN changing
|
||||
# this file.
|
||||
cp version.h version.h.pristine
|
||||
|
||||
# don't break .ssh/authorized_keys2 for fun
|
||||
sed -i '/^AuthorizedKeysFile/s:^:#:' sshd_config || die
|
||||
|
||||
if use X509 ; then
|
||||
pushd .. >/dev/null
|
||||
if use hpn ; then
|
||||
pushd ${HPN_PATCH%.*.*} >/dev/null
|
||||
epatch "${FILESDIR}"/${PN}-7.1_p1-hpn-x509-glue.patch
|
||||
popd >/dev/null
|
||||
fi
|
||||
epatch "${FILESDIR}"/${PN}-7.2_p1-sctp-x509-glue.patch
|
||||
popd >/dev/null
|
||||
epatch "${WORKDIR}"/${X509_PATCH%.*}
|
||||
#epatch "${FILESDIR}"/${PN}-7.1_p2-x509-hpn14v10-glue.patch
|
||||
#save_version X509
|
||||
fi
|
||||
if use ldap ; then
|
||||
epatch "${WORKDIR}"/${LDAP_PATCH%.*}
|
||||
save_version LPK
|
||||
fi
|
||||
epatch "${FILESDIR}"/${PN}-7.2_p1-GSSAPI-dns.patch #165444 integrated into gsskex
|
||||
epatch "${FILESDIR}"/${PN}-6.7_p1-openssl-ignore-status.patch
|
||||
epatch "${WORKDIR}"/${PN}-7.2_p1-sctp.patch
|
||||
if use hpn ; then
|
||||
EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
|
||||
EPATCH_MULTI_MSG="Applying HPN patchset ..." \
|
||||
epatch "${WORKDIR}"/${HPN_PATCH%.*.*}
|
||||
save_version HPN
|
||||
fi
|
||||
|
||||
tc-export PKG_CONFIG
|
||||
local sed_args=(
|
||||
-e "s:-lcrypto:$(${PKG_CONFIG} --libs openssl):"
|
||||
# Disable PATH reset, trust what portage gives us #254615
|
||||
-e 's:^PATH=/:#PATH=/:'
|
||||
# Disable fortify flags ... our gcc does this for us
|
||||
-e 's:-D_FORTIFY_SOURCE=2::'
|
||||
)
|
||||
# The -ftrapv flag ICEs on hppa #505182
|
||||
use hppa && sed_args+=(
|
||||
-e '/CFLAGS/s:-ftrapv:-fdisable-this-test:'
|
||||
-e '/OSSH_CHECK_CFLAG_LINK.*-ftrapv/d'
|
||||
)
|
||||
sed -i "${sed_args[@]}" configure{.ac,} || die
|
||||
|
||||
epatch_user #473004
|
||||
|
||||
# Now we can build a sane merged version.h
|
||||
(
|
||||
sed '/^#define SSH_RELEASE/d' version.h.* | sort -u
|
||||
macros=()
|
||||
for p in HPN LPK X509 ; do [ -e version.h.${p} ] && macros+=( SSH_${p} ) ; done
|
||||
printf '#define SSH_RELEASE SSH_VERSION SSH_PORTABLE %s\n' "${macros}"
|
||||
) > version.h
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
addwrite /dev/ptmx
|
||||
|
||||
use debug && append-cppflags -DSANDBOX_SECCOMP_FILTER_DEBUG
|
||||
use static && append-ldflags -static
|
||||
|
||||
local myconf=(
|
||||
--with-ldflags="${LDFLAGS}"
|
||||
--disable-strip
|
||||
--with-pid-dir="${EPREFIX}"$(usex kernel_linux '' '/var')/run
|
||||
--sysconfdir="${EPREFIX}"/etc/ssh
|
||||
--libexecdir="${EPREFIX}"/usr/$(get_libdir)/misc
|
||||
--datadir="${EPREFIX}"/usr/share/openssh
|
||||
--with-privsep-path="${EPREFIX}"/var/empty
|
||||
--with-privsep-user=sshd
|
||||
$(use_with kerberos kerberos5 "${EPREFIX}"/usr)
|
||||
# We apply the ldap patch conditionally, so can't pass --without-ldap
|
||||
# unconditionally else we get unknown flag warnings.
|
||||
$(use ldap && use_with ldap)
|
||||
$(use_with ldns)
|
||||
$(use_with libedit)
|
||||
$(use_with pam)
|
||||
$(use_with pie)
|
||||
$(use_with sctp)
|
||||
$(use_with selinux)
|
||||
$(use_with skey)
|
||||
$(use_with ssh1)
|
||||
$(use_with ssl openssl)
|
||||
$(use_with ssl md5-passwords)
|
||||
$(use_with ssl ssl-engine)
|
||||
)
|
||||
|
||||
# The seccomp sandbox is broken on x32, so use the older method for now. #553748
|
||||
use amd64 && [[ ${ABI} == "x32" ]] && myconf+=( --with-sandbox=rlimit )
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake install-nokeys DESTDIR="${D}"
|
||||
fperms 600 /etc/ssh/sshd_config
|
||||
dobin contrib/ssh-copy-id
|
||||
newinitd "${FILESDIR}"/sshd.rc6.4 sshd
|
||||
newconfd "${FILESDIR}"/sshd.confd sshd
|
||||
keepdir /var/empty
|
||||
|
||||
newpamd "${FILESDIR}"/sshd.pam_include.2 sshd
|
||||
if use pam ; then
|
||||
sed -i \
|
||||
-e "/^#UsePAM /s:.*:UsePAM yes:" \
|
||||
-e "/^#PasswordAuthentication /s:.*:PasswordAuthentication no:" \
|
||||
-e "/^#PrintMotd /s:.*:PrintMotd no:" \
|
||||
-e "/^#PrintLastLog /s:.*:PrintLastLog no:" \
|
||||
"${ED}"/etc/ssh/sshd_config || die
|
||||
fi
|
||||
|
||||
# Gentoo tweaks to default config files
|
||||
cat <<-EOF >> "${ED}"/etc/ssh/sshd_config
|
||||
|
||||
# Allow client to pass locale environment variables #367017
|
||||
AcceptEnv LANG LC_*
|
||||
EOF
|
||||
cat <<-EOF >> "${ED}"/etc/ssh/ssh_config
|
||||
|
||||
# Send locale environment variables #367017
|
||||
SendEnv LANG LC_*
|
||||
EOF
|
||||
|
||||
if ! use X509 && [[ -n ${LDAP_PATCH} ]] && use ldap ; then
|
||||
insinto /etc/openldap/schema/
|
||||
newins openssh-lpk_openldap.schema openssh-lpk.schema
|
||||
fi
|
||||
|
||||
doman contrib/ssh-copy-id.1
|
||||
dodoc ChangeLog CREDITS OVERVIEW README* TODO sshd_config
|
||||
|
||||
diropts -m 0700
|
||||
dodir /etc/skel/.ssh
|
||||
|
||||
systemd_dounit "${FILESDIR}"/sshd.{service,socket}
|
||||
systemd_newunit "${FILESDIR}"/sshd_at.service 'sshd@.service'
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local t tests skipped failed passed shell
|
||||
tests="interop-tests compat-tests"
|
||||
skipped=""
|
||||
shell=$(egetshell ${UID})
|
||||
if [[ ${shell} == */nologin ]] || [[ ${shell} == */false ]] ; then
|
||||
elog "Running the full OpenSSH testsuite"
|
||||
elog "requires a usable shell for the 'portage'"
|
||||
elog "user, so we will run a subset only."
|
||||
skipped="${skipped} tests"
|
||||
else
|
||||
tests="${tests} tests"
|
||||
fi
|
||||
# It will also attempt to write to the homedir .ssh
|
||||
local sshhome=${T}/homedir
|
||||
mkdir -p "${sshhome}"/.ssh
|
||||
for t in ${tests} ; do
|
||||
# Some tests read from stdin ...
|
||||
HOMEDIR="${sshhome}" \
|
||||
emake -k -j1 ${t} </dev/null \
|
||||
&& passed="${passed}${t} " \
|
||||
|| failed="${failed}${t} "
|
||||
done
|
||||
einfo "Passed tests: ${passed}"
|
||||
ewarn "Skipped tests: ${skipped}"
|
||||
if [[ -n ${failed} ]] ; then
|
||||
ewarn "Failed tests: ${failed}"
|
||||
die "Some tests failed: ${failed}"
|
||||
else
|
||||
einfo "Failed tests: ${failed}"
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
enewgroup sshd 22
|
||||
enewuser sshd 22 -1 /var/empty sshd
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if has_version "<${CATEGORY}/${PN}-5.8_p1" ; then
|
||||
elog "Starting with openssh-5.8p1, the server will default to a newer key"
|
||||
elog "algorithm (ECDSA). You are encouraged to manually update your stored"
|
||||
elog "keys list as servers update theirs. See ssh-keyscan(1) for more info."
|
||||
fi
|
||||
if has_version "<${CATEGORY}/${PN}-6.9_p1" ; then
|
||||
elog "Starting with openssh-6.9p1, ssh1 support is disabled by default."
|
||||
fi
|
||||
if has_version "<${CATEGORY}/${PN}-7.0_p1" ; then
|
||||
elog "Starting with openssh-6.7, support for USE=tcpd has been dropped by upstream."
|
||||
elog "Make sure to update any configs that you might have. Note that xinetd might"
|
||||
elog "be an alternative for you as it supports USE=tcpd."
|
||||
fi
|
||||
if has_version "<${CATEGORY}/${PN}-7.1_p1" ; then #557388 #555518
|
||||
elog "Starting with openssh-7.0, support for ssh-dss keys were disabled due to their"
|
||||
elog "weak sizes. If you rely on these key types, you can re-enable the key types by"
|
||||
elog "adding to your sshd_config or ~/.ssh/config files:"
|
||||
elog " PubkeyAcceptedKeyTypes=+ssh-dss"
|
||||
elog "You should however generate new keys using rsa or ed25519."
|
||||
|
||||
elog "Starting with openssh-7.0, the default for PermitRootLogin changed from 'yes'"
|
||||
elog "to 'prohibit-password'. That means password auth for root users no longer works"
|
||||
elog "out of the box. If you need this, please update your sshd_config explicitly."
|
||||
fi
|
||||
if ! use ssl && has_version "${CATEGORY}/${PN}[ssl]" ; then
|
||||
elog "Be aware that by disabling openssl support in openssh, the server and clients"
|
||||
elog "no longer support dss/rsa/ecdsa keys. You will need to generate ed25519 keys"
|
||||
elog "and update all clients/servers that utilize them."
|
||||
fi
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user