diff options
author | 2017-12-03 17:16:30 -0600 | |
---|---|---|
committer | 2017-12-03 17:16:58 -0600 | |
commit | bb2668b25a60043cebec65fdcfa9c1082495d7b7 (patch) | |
tree | cfdf947f89cb9764c501e57e9fb9a34180ca2eb3 /net-misc/wget | |
parent | kde-frameworks/kdelibs: Drop USE=opengl (diff) | |
download | gentoo-bb2668b25a60043cebec65fdcfa9c1082495d7b7.tar.gz gentoo-bb2668b25a60043cebec65fdcfa9c1082495d7b7.tar.bz2 gentoo-bb2668b25a60043cebec65fdcfa9c1082495d7b7.zip |
net-misc/wget: fix build on openssl 1.1
Package-Manager: Portage-2.3.14, Repoman-2.3.6
Diffstat (limited to 'net-misc/wget')
-rw-r--r-- | net-misc/wget/Manifest | 4 | ||||
-rw-r--r-- | net-misc/wget/files/wget-1.92.2-openssl-1.1.0-r1.patch | 80 | ||||
-rw-r--r-- | net-misc/wget/wget-1.19.2-r2.ebuild | 114 |
3 files changed, 196 insertions, 2 deletions
diff --git a/net-misc/wget/Manifest b/net-misc/wget/Manifest index b0bee83e879b..0cd18ff74466 100644 --- a/net-misc/wget/Manifest +++ b/net-misc/wget/Manifest @@ -1,2 +1,2 @@ -DIST wget-1.19.1.tar.xz 2111756 SHA256 0c950b9671881222a4d385b013c9604e98a8025d1988529dfca0e93617744cd2 SHA512 00864d225439bcb7c5af01d7ef19efa615427812d3320ab3f4c8f62c38191e837b1392397843f935d7dc5860a4d0ce89ee31f2730c4a729402f1f2bf3e5f64e5 WHIRLPOOL 2a4bd80f1e7134637227609f532ee3385472a6895ff22efeface42d082072a09abaa5dd2d8653bfdab015de801d31426b01d73ab5dd1a6864b84c29dc8e72462 -DIST wget-1.19.2.tar.gz 4349267 SHA256 4f4a673b6d466efa50fbfba796bd84a46ae24e370fa562ede5b21ab53c11a920 SHA512 a0f8afcc0767a8fd1acd64b1b1b27d177bc938e70cc3709c1b3faa6c1426ec926642cd8e49d292cec0268ee507683539b5152072110106de5a728a03efd8cedd WHIRLPOOL 64398a8fc132a21d81d6fd7c97335739525fb8b31eca4aa4aa7048f251691c05ad1f004c36d6e633abf02d174ffefcb2176213e68fefb76bce505d247940af3a +DIST wget-1.19.1.tar.xz 2111756 BLAKE2B e5dcaa791f78bb2d7de19a6f689430cd692e1232b7392102936e5f3b4e3592861bcfc78e27df0c4b02a9002ce4c755e765a0a51749670464789fc9f07f8787f7 SHA512 00864d225439bcb7c5af01d7ef19efa615427812d3320ab3f4c8f62c38191e837b1392397843f935d7dc5860a4d0ce89ee31f2730c4a729402f1f2bf3e5f64e5 +DIST wget-1.19.2.tar.gz 4349267 BLAKE2B 3622d39ea477d4137bd7f2a443d141d8832e2e1adf4dceb5c396aea782fee31bd69ad2b49771062f25c57e6a21701f844077000dfa175e89eae26cf4c3fdca09 SHA512 a0f8afcc0767a8fd1acd64b1b1b27d177bc938e70cc3709c1b3faa6c1426ec926642cd8e49d292cec0268ee507683539b5152072110106de5a728a03efd8cedd diff --git a/net-misc/wget/files/wget-1.92.2-openssl-1.1.0-r1.patch b/net-misc/wget/files/wget-1.92.2-openssl-1.1.0-r1.patch new file mode 100644 index 000000000000..79f33b157599 --- /dev/null +++ b/net-misc/wget/files/wget-1.92.2-openssl-1.1.0-r1.patch @@ -0,0 +1,80 @@ +--- a/src/openssl.c ++++ b/src/openssl.c +@@ -174,11 +174,16 @@ ssl_init (void) + { + SSL_METHOD const *meth; + long ssl_options = 0; ++#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) ++ int ssl_proto_version = 0; ++#endif + + #if OPENSSL_VERSION_NUMBER >= 0x00907000 + if (ssl_true_initialized == 0) + { ++#if OPENSSL_API_COMPAT < 0x10100000L + OPENSSL_config (NULL); ++#endif + ssl_true_initialized = 1; + } + #endif +@@ -202,8 +207,12 @@ ssl_init (void) + CONF_modules_load_file(NULL, NULL, + CONF_MFLAGS_DEFAULT_SECTION|CONF_MFLAGS_IGNORE_MISSING_FILE); + #endif ++#if OPENSSL_API_COMPAT >= 0x10100000L ++ OPENSSL_init_ssl(0, NULL); ++#else + SSL_library_init (); + SSL_load_error_strings (); ++#endif + #if OPENSSL_VERSION_NUMBER < 0x10100000L + SSLeay_add_all_algorithms (); + SSLeay_add_ssl_algorithms (); +@@ -229,16 +238,31 @@ ssl_init (void) + ssl_options |= SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3; + break; + case secure_protocol_tlsv1: ++#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) ++ meth = TLS_client_method(); ++ ssl_proto_version = TLS1_VERSION; ++#else + meth = TLSv1_client_method (); ++#endif + break; + + #if OPENSSL_VERSION_NUMBER >= 0x10001000 + case secure_protocol_tlsv1_1: ++#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) ++ meth = TLS_client_method(); ++ ssl_proto_version = TLS1_1_VERSION; ++#else + meth = TLSv1_1_client_method (); ++#endif + break; + + case secure_protocol_tlsv1_2: ++#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) ++ meth = TLS_client_method(); ++ ssl_proto_version = TLS1_2_VERSION; ++#else + meth = TLSv1_2_client_method (); ++#endif + break; + #else + case secure_protocol_tlsv1_1: +@@ -262,8 +286,15 @@ ssl_init (void) + if (!ssl_ctx) + goto error; + ++#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) + if (ssl_options) + SSL_CTX_set_options (ssl_ctx, ssl_options); ++#endif ++ ++#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >=0x10100000L) ++ if (ssl_proto_version) ++ SSL_CTX_set_min_proto_version(ssl_ctx, ssl_proto_version); ++#endif + + /* OpenSSL ciphers: https://www.openssl.org/docs/apps/ciphers.html + * Since we want a good protection, we also use HIGH (that excludes MD4 ciphers and some more) diff --git a/net-misc/wget/wget-1.19.2-r2.ebuild b/net-misc/wget/wget-1.19.2-r2.ebuild new file mode 100644 index 000000000000..b1bda330b2e4 --- /dev/null +++ b/net-misc/wget/wget-1.19.2-r2.ebuild @@ -0,0 +1,114 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python3_{4,5,6} ) + +inherit flag-o-matic python-any-r1 toolchain-funcs + +DESCRIPTION="Network utility to retrieve files from the WWW" +HOMEPAGE="https://www.gnu.org/software/wget/" +SRC_URI="mirror://gnu/wget/${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="debug gnutls idn ipv6 libressl nls ntlm pcre +ssl static test uuid zlib" +REQUIRED_USE=" ntlm? ( !gnutls ssl ) gnutls? ( ssl )" + +PATCHES=( "${FILESDIR}"/${PN}-1.19.2-fix-segfault-due-to-derefencing-null-ptr.patch + "${FILESDIR}"/${PN}-1.92.2-openssl-1.1.0-r1.patch ) + +# Force a newer libidn2 to avoid libunistring deps. #612498 +LIB_DEPEND="idn? ( >=net-dns/libidn2-0.14[static-libs(+)] ) + pcre? ( dev-libs/libpcre[static-libs(+)] ) + ssl? ( + gnutls? ( net-libs/gnutls:0=[static-libs(+)] ) + !gnutls? ( + !libressl? ( dev-libs/openssl:0=[static-libs(+)] ) + libressl? ( dev-libs/libressl[static-libs(+)] ) + ) + ) + uuid? ( sys-apps/util-linux[static-libs(+)] ) + zlib? ( sys-libs/zlib[static-libs(+)] )" +RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )" +DEPEND="${RDEPEND} + app-arch/xz-utils + virtual/pkgconfig + static? ( ${LIB_DEPEND} ) + test? ( + ${PYTHON_DEPS} + dev-lang/perl + dev-perl/HTTP-Daemon + dev-perl/HTTP-Message + dev-perl/IO-Socket-SSL + ) + nls? ( sys-devel/gettext )" + +DOCS=( AUTHORS MAILING-LIST NEWS README doc/sample.wgetrc ) + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_prepare() { + default + + # revert some hack that breaks linking, bug #585924 + if [[ ${CHOST} == *-darwin* ]] \ + || [[ ${CHOST} == *-solaris* ]] \ + || [[ ${CHOST} == *-uclibc* ]] \ + || [[ ${CHOST} == *-cygwin* ]] \ + ; then + sed -i \ + -e 's/^ LIBICONV=$/:/' \ + configure || die + fi +} + +src_configure() { + # fix compilation on Solaris, we need filio.h for FIONBIO as used in + # the included gnutls -- force ioctl.h to include this header + [[ ${CHOST} == *-solaris* ]] && append-cppflags -DBSD_COMP=1 + + if use static ; then + append-ldflags -static + tc-export PKG_CONFIG + PKG_CONFIG+=" --static" + fi + + # There is no flag that controls this. libunistring-prefix only + # controls the search path (which is why we turn it off below). + # Further, libunistring is only needed w/older libidn2 installs, + # and since we force the latest, we can force off libunistring. #612498 + ac_cv_libunistring=no \ + econf \ + --disable-assert \ + --disable-rpath \ + --without-included-libunistring \ + --without-libunistring-prefix \ + $(use_enable debug) \ + $(use_enable idn iri) \ + $(use_enable ipv6) \ + $(use_enable nls) \ + $(use_enable ntlm) \ + $(use_enable pcre) \ + $(use_enable ssl digest) \ + $(use_enable ssl opie) \ + $(use_with idn libidn) \ + $(use_with ssl ssl $(usex gnutls gnutls openssl)) \ + $(use_with uuid libuuid) \ + $(use_with zlib) +} + +src_install() { + default + + sed -i \ + -e "s:/usr/local/etc:${EPREFIX}/etc:g" \ + "${ED}"/etc/wgetrc \ + "${ED}"/usr/share/man/man1/wget.1 \ + "${ED}"/usr/share/info/wget.info \ + || die +} |