From d1c4e8395f2887c5c17cd913180e92eb2f1e483a Mon Sep 17 00:00:00 2001 From: Nicholas Fish Date: Sun, 24 Apr 2016 15:43:57 +0200 Subject: Add qtnetwork 5.6.0 ebuild with LibreSSL support --- dev-qt/qtnetwork/Manifest | 3 + .../qtnetwork/files/qtnetwork-5.6-libressl.patch | 71 ++++++++++++++++++++++ dev-qt/qtnetwork/qtnetwork-5.6.0-r1.ebuild | 59 ++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 dev-qt/qtnetwork/files/qtnetwork-5.6-libressl.patch create mode 100644 dev-qt/qtnetwork/qtnetwork-5.6.0-r1.ebuild (limited to 'dev-qt') diff --git a/dev-qt/qtnetwork/Manifest b/dev-qt/qtnetwork/Manifest index 0a41abf..c85d178 100644 --- a/dev-qt/qtnetwork/Manifest +++ b/dev-qt/qtnetwork/Manifest @@ -1,5 +1,8 @@ AUX qtnetwork-5.5-libressl.patch 1626 SHA256 0633f0a6256d3e31c0257ea7096d2ca8c352f9327f53a413958bc8022c31e3e9 SHA512 a66a437d3ebff891d00acfa9f29515762fef3b6e93f8163c066f70fbc1b2ea4b0b13dc7ea729576df9831d5aed78f4fb628f5cfbabc90ad6c5c540f6ff619f61 WHIRLPOOL 47887cf92a6672ed8f8e69ae7dffde89bf5792ecb27d8bb3d3dcccaf27caf614a9bdf127ab2204bfdd705e4be6ad30acf2b461a0ec95ea6028e6979b70f1f934 AUX qtnetwork-5.5-socklen_t.patch 1318 SHA256 d2e258025502bd428f519ffe04dd362cc77c90685aa18038c2395f28a5d8f7ef SHA512 ebb7a8ee9bb51a886982dbac688f296fd93ee5b210895022670ef5e3b9ba22e02899be5755240d3cebe7cd1ed6ec4bf6c85c578fe0ed54e35b6fe9ac0e14dfcd WHIRLPOOL eb06aba3a1ee36380fd26039cfe677f64f9bdc4b1019f44ab5f933b7a5eb1320cfca591131d221d1ed5edbb40e48b7b5da879d3eae8eeaf91de9c6561c0874ca +AUX qtnetwork-5.6-libressl.patch 3026 SHA256 b5e4066c67ccb838264d9921aef61c8a07d39c17ea38a642fd10da509b48fb08 SHA512 e5970133725fa7154fd3fc3c013ea37d1ea7645191d0a581442fb0b9ab92280f70a5d56d0e108f29b1c35b8b42fbc68502cab5705b9f46aa025fb3f4ae8459da WHIRLPOOL 9d045847550f85c949a9a34c450932f866604e8dbc441e8871da86ff0d7401203317a30f4eab9034b6bd03a35572effcd2a7bf38f56d7918c1b56f4372cb5167 DIST qtbase-opensource-src-5.5.1.tar.xz 46389212 SHA256 dfa4e8a4d7e4c6b69285e7e8833eeecd819987e1bdbe5baa6b6facd4420de916 SHA512 4d31de136870025dfb7544f255798884af1ad4f3060b0c00a0467c98af1f7de368eb298d4c52ba6d1ad27e36060b30c0314ce7ba0744b15642420ec89587a575 WHIRLPOOL 8975a54a720105d1b12b4f50072b98157f6a91020ecd7bad12ab4a92b7ac4663713a82e87f033cc6ad49602a5f9468c6d3ee23120be6c15d63e55ea0b5a343c4 +DIST qtbase-opensource-src-5.6.0.tar.xz 46757096 SHA256 6efa8a5c559e92b2e526d48034e858023d5fd3c39115ac1bfd3bb65834dbd67a SHA512 5b2a5842346475be0944fc44bc09ff5b5d5da167246310de132f034e17ebbcbbf103b6f085dbf8b566389694bd095227aa1ed569b93e0f9a8f02da51d8fe076e WHIRLPOOL 2f6817a0fbf5ad7f3457e778a33bcf38791ea6e0df68e7de4b0fc3ea8e84b35bc6c5bba2d574105dbaba8edbc8c2d954b13e4cf1784991544f7f77c8d6d68590 EBUILD qtnetwork-5.5.1-r100.ebuild 1364 SHA256 9a88d615dc9b103f21590a071eced24a1fb9a19f4a555f1ed2c3345be78d52fc SHA512 6b5959b10ea03fe34b91fa7956ca00fa29968853921a3c90fe619b030e682e14c4b05d7626ddf2e34b73f11526e350c53432232e961c3cd6955eaab7cb99453a WHIRLPOOL 9476f3084b0072f1fdf31da102c75a806095774d8cd57ae13a7d642702e02079dfc28c48e59332848f2558091fb59ee1e11fe469cf685e63d1d5a79e2bc9c11d +EBUILD qtnetwork-5.6.0-r1.ebuild 1315 SHA256 387427b55e800c37823707bbd48c3f65ddcb1c4a36634266b3d5e5e7ba220621 SHA512 36e46d22c63870fe4a601859372141d3d5ce935525ff6376d336b35379cb16e754ba1185a65bbb96552a4eee1c9e129e2e5970d2c729e27152e71c280c51dcb6 WHIRLPOOL 2223d2a7cd5cf8dc1d030639db0a96f53853218ef1369e89f16ce871c5886ca128716d8a5471ac96ae7f5f61be0ff7f9d9575a107ac812006203b3cf6ad7e7e9 MISC metadata.xml 654 SHA256 911221413accf92b54fe5cfc263d91fea8cfac0a061f059644b75505284ad7a6 SHA512 a7a4c6d11cabf153f239e92fe43e6273cf2adb5ea1d5f92f94f0cbb0382ed96c7575b0b6c181acd8e898f008c31f7c5777c60303f47e9588fb3c1e3fdb353252 WHIRLPOOL d26401c6f045298c538e06da0b56dd114ecf16d428dba383defa3c0d1f7cb759c3608162b38afb644e3ea8f717737c8fb0bbd38636656a5d87680c1d13856b5a diff --git a/dev-qt/qtnetwork/files/qtnetwork-5.6-libressl.patch b/dev-qt/qtnetwork/files/qtnetwork-5.6-libressl.patch new file mode 100644 index 0000000..e1faac9 --- /dev/null +++ b/dev-qt/qtnetwork/files/qtnetwork-5.6-libressl.patch @@ -0,0 +1,71 @@ +diff --git a/src/network/ssl/qsslcontext_openssl.cpp b/src/network/ssl/qsslcontext_openssl.cpp +index 68caaeb..5b8a809 100644 +--- a/src/network/ssl/qsslcontext_openssl.cpp ++++ b/src/network/ssl/qsslcontext_openssl.cpp +@@ -65,6 +65,13 @@ static DH *get_dh1024() + return dh; + } + ++static bool q_enableECSetCurves() { ++ // The ability to select elliptic curves is ++ // present in OpenSSL 1.0.2+ but not in LibreSSL. ++ // RFC4492 Section 5.1.1 "Supported Elliptic Curves Extension" ++ return q_SSLeay() >= 0x10002000L && !q_LibreSSL(); ++} ++ + QSslContext::QSslContext() + : ctx(0), + pkey(0), +@@ -340,9 +347,9 @@ init_context: + + const QVector qcurves = sslContext->sslConfiguration.ellipticCurves(); + if (!qcurves.isEmpty()) { +-#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC) ++#if defined(SSL_CTRL_SET_CURVES) && !defined(OPENSSL_NO_EC) + // Set the curves to be used +- if (q_SSLeay() >= 0x10002000L) { ++ if (q_enableECSetCurves()) { + // SSL_CTX_ctrl wants a non-const pointer as last argument, + // but let's avoid a copy into a temporary array + if (!q_SSL_CTX_ctrl(sslContext->ctx, +@@ -354,10 +361,10 @@ init_context: + return sslContext; + } + } else +-#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC) ++#endif // defined(SSL_CTRL_SET_CURVES) && !defined(OPENSSL_NO_EC) + { + // specific curves requested, but not possible to set -> error +- sslContext->errorStr = msgErrorSettingEllipticCurves(QSslSocket::tr("OpenSSL version too old, need at least v1.0.2")); ++ sslContext->errorStr = msgErrorSettingEllipticCurves(QSslSocket::tr("This version of OpenSSL lacks support for selecting specific elliptic curves.")); + sslContext->errorCode = QSslError::UnspecifiedError; + return sslContext; + } +diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp +index e7829ba..7b164d0 100644 +--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp ++++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp +@@ -1000,6 +1000,11 @@ bool q_resolveOpenSslSymbols() + #endif + return true; + } ++ ++bool q_LibreSSL() ++{ ++ return strncmp(q_SSLeay_version(SSLEAY_VERSION), "LibreSSL", 8) == 0; ++} + #endif // !defined QT_LINKED_OPENSSL + + //============================================================================== +diff --git a/src/network/ssl/qsslsocket_openssl_symbols_p.h b/src/network/ssl/qsslsocket_openssl_symbols_p.h +index 7f87f11..5da6ad1 100644 +--- a/src/network/ssl/qsslsocket_openssl_symbols_p.h ++++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h +@@ -209,6 +209,7 @@ QT_BEGIN_NAMESPACE + #endif // !defined QT_LINKED_OPENSSL + + bool q_resolveOpenSslSymbols(); ++bool q_LibreSSL(); + long q_ASN1_INTEGER_get(ASN1_INTEGER *a); + unsigned char * q_ASN1_STRING_data(ASN1_STRING *a); + int q_ASN1_STRING_length(ASN1_STRING *a); diff --git a/dev-qt/qtnetwork/qtnetwork-5.6.0-r1.ebuild b/dev-qt/qtnetwork/qtnetwork-5.6.0-r1.ebuild new file mode 100644 index 0000000..6084559 --- /dev/null +++ b/dev-qt/qtnetwork/qtnetwork-5.6.0-r1.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Network abstraction library for the Qt5 framework" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~x86" +fi + +IUSE="bindist connman libproxy libressl networkmanager +ssl" + +DEPEND=" + ~dev-qt/qtcore-${PV} + >=sys-libs/zlib-1.2.5 + connman? ( ~dev-qt/qtdbus-${PV} ) + libproxy? ( net-libs/libproxy ) + networkmanager? ( ~dev-qt/qtdbus-${PV} ) + ssl? ( !libressl? ( dev-libs/openssl:0[bindist=] ) + libressl? ( dev-libs/libressl ) ) +" +RDEPEND="${DEPEND} + connman? ( net-misc/connman ) + networkmanager? ( net-misc/networkmanager ) +" + +PATCHES=( + "${FILESDIR}/${PN}-5.6-libressl.patch" # bug 562050 +) + +QT5_TARGET_SUBDIRS=( + src/network + src/plugins/bearer/generic +) + +QT5_GENTOO_CONFIG=( + libproxy + ssl::SSL + ssl::OPENSSL + ssl:openssl-linked:LINKED_OPENSSL +) + +pkg_setup() { + use connman && QT5_TARGET_SUBDIRS+=(src/plugins/bearer/connman) + use networkmanager && QT5_TARGET_SUBDIRS+=(src/plugins/bearer/networkmanager) +} + +src_configure() { + local myconf=( + $(use connman || use networkmanager && echo -dbus-linked) + $(qt_use libproxy) + $(use ssl && echo -openssl-linked) + ) + qt5-build_src_configure +} -- cgit v1.2.3-65-gdbad