diff options
Diffstat (limited to 'dev-qt/qtwebengine')
-rw-r--r-- | dev-qt/qtwebengine/Manifest | 1 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-5.6.0-icu.patch | 15 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-5.6.0-nss-3.23-01.patch | 59 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-5.6.0-nss-3.23-02.patch | 69 | ||||
-rw-r--r-- | dev-qt/qtwebengine/metadata.xml | 26 | ||||
-rw-r--r-- | dev-qt/qtwebengine/qtwebengine-5.6.0.ebuild | 96 |
6 files changed, 266 insertions, 0 deletions
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest new file mode 100644 index 000000000000..83d12054d481 --- /dev/null +++ b/dev-qt/qtwebengine/Manifest @@ -0,0 +1 @@ +DIST qtwebengine-opensource-src-5.6.0.tar.xz 143433576 SHA256 8aa2b5ad6c9f98a781aa99303eab3a40bbe74d26a543eea6b4145f5f47c76a03 SHA512 273dbac60536e4d21eeace80058f172deb7593372bc131b5446326d189ae291b7a23fe7d574e8929fb97ed8a77219a3f1a14bd88315a1c5121d4a0f6c77a96b1 WHIRLPOOL b80234c73392c1116e5319f09d8381a749180285bbb04964107b84abfd068d068db98eb4ff49a058a1b18b622c74b6f407ba1c4cd6a351ae110a0286f61e6d12 diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.6.0-icu.patch b/dev-qt/qtwebengine/files/qtwebengine-5.6.0-icu.patch new file mode 100644 index 000000000000..0b367c726aa7 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.6.0-icu.patch @@ -0,0 +1,15 @@ +Solves issue with trying to locate icudtl.dat in /usr/share/qt5/ when built +with system-icu. + +Patch from Fedora. + +--- a/src/core/config/linux.pri ++++ b/src/core/config/linux.pri +@@ -40,6 +40,6 @@ + use?(system_snappy): GYP_CONFIG += use_system_snappy=1 + use?(system_speex): GYP_CONFIG += use_system_speex=1 + use?(system_vpx): GYP_CONFIG += use_system_libvpx=1 +-use?(system_icu): GYP_CONFIG += use_system_icu=1 ++use?(system_icu): GYP_CONFIG += use_system_icu=1 icu_use_data_file_flag=0 + use?(system_ffmpeg): GYP_CONFIG += use_system_ffmpeg=1 + diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.6.0-nss-3.23-01.patch b/dev-qt/qtwebengine/files/qtwebengine-5.6.0-nss-3.23-01.patch new file mode 100644 index 000000000000..8d192b6edc36 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.6.0-nss-3.23-01.patch @@ -0,0 +1,59 @@ +From 0a385bb01d9cf060fae4c9d350ee98561654df96 Mon Sep 17 00:00:00 2001 +From: Kai Koehne <kai.koehne@theqtcompany.com> +Date: Thu, 24 Mar 2016 12:34:25 +0100 +Subject: [PATCH] [backport] Call EnsureNSSHttpIOInit in the chimera build. + +Otherwise we end up using the default NSS client and not +SystemURLRequestContext. + +This is a minimal fix to be merged onto release branches. +A follow-up will revise this to be somewhat less error-prone. + +BUG=539520 +TEST=Open about:net-internals on Linux or Chrome OS + Visit https://incomplete-chain.badssl.com/ in a new tab + The Events tab of about:net-internals should show a fetch for http://crt.comodoca.com/COMODORSADomainValidationSecureServerCA.crt + +Review URL: https://codereview.chromium.org/1384343002 + +Task-number: QTBUG-51890 +Task-number: QTBUG-52068 +Change-Id: I567d5cd5e6d4e53b833699e67c45f3bdfc52953d +Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> +--- + chromium/net/socket/ssl_client_socket_openssl.cc | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/3rdparty/chromium/net/socket/ssl_client_socket_openssl.cc b/src/3rdparty/chromium/net/socket/ssl_client_socket_openssl.cc +index 5489ead..dc9b3ff 100644 +--- a/src/3rdparty/chromium/net/socket/ssl_client_socket_openssl.cc ++++ b/src/3rdparty/chromium/net/socket/ssl_client_socket_openssl.cc +@@ -57,6 +57,10 @@ + #include "net/ssl/ssl_platform_key.h" + #endif + ++#if defined(USE_NSS_CERTS) || defined(OS_IOS) ++#include "net/cert_net/nss_ocsp.h" ++#endif ++ + namespace net { + + namespace { +@@ -795,6 +799,14 @@ int SSLClientSocketOpenSSL::Init() { + DCHECK(!ssl_); + DCHECK(!transport_bio_); + ++#if defined(USE_NSS_CERTS) || defined(OS_IOS) ++ if (ssl_config_.cert_io_enabled) { ++ // TODO(davidben): Move this out of SSLClientSocket. See ++ // https://crbug.com/539520. ++ EnsureNSSHttpIOInit(); ++ } ++#endif ++ + SSLContext* context = SSLContext::GetInstance(); + crypto::OpenSSLErrStackTracer err_tracer(FROM_HERE); + +-- +2.7.4 diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.6.0-nss-3.23-02.patch b/dev-qt/qtwebengine/files/qtwebengine-5.6.0-nss-3.23-02.patch new file mode 100644 index 000000000000..a194650ed34f --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.6.0-nss-3.23-02.patch @@ -0,0 +1,69 @@ +From 82900c7b96b2a6fb42fe3841df7685b820edd588 Mon Sep 17 00:00:00 2001 +From: Kai Koehne <kai.koehne@theqtcompany.com> +Date: Thu, 24 Mar 2016 13:55:28 +0100 +Subject: [PATCH] Use system NSS only for certificate handling + +Compiling against NSS 3.23 fails with current Chromium. Also, with NSS +3.21 there are failures connecting to e.g. google.com. + +Fix this by adapting the setup endorsed by upstream Chromium: BoringSSL +is always used for cryptography, and NSS only for certificate handlng. + +Patches included in 3rdparty update: + +0a385bb [backport] Call EnsureNSSHttpIOInit in the chimera build. +0472123 Fix build against newer NSS +90c62c4 <third_party/libpng> [Backport] update to libpng 1.2.56 +34857b8 <third_party/libpng> [Backport] Stop large iCCP chunks causing delays and "Aw Snap!" + +Task-number: QTBUG-52193 +Task-number: QTBUG-51890 +Task-number: QTBUG-52068 +Change-Id: If8aaed9b9a09475c5ed0dfec64d31f45ce9670f5 +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> +--- + src/core/config/linux.pri | 9 ++++++--- + tools/qmake/mkspecs/features/configure.prf | 4 ++-- + 3 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri +index 88c1a41..39eeb2a 100644 +--- a/src/core/config/linux.pri ++++ b/src/core/config/linux.pri +@@ -18,11 +18,14 @@ GYP_CONFIG += \ + use_gio=0 \ + use_gnome_keyring=0 \ + use_kerberos=0 \ +- use_pango=0 ++ use_pango=0 \ ++ use_openssl=1 + +-!use?(nss) { ++use?(nss) { ++ GYP_CONFIG += use_nss_certs=1 \ ++ use_openssl_certs=0 ++} else { + GYP_CONFIG += use_nss_certs=0 \ +- use_openssl=1 \ + use_openssl_certs=1 + } + +diff --git a/tools/qmake/mkspecs/features/configure.prf b/tools/qmake/mkspecs/features/configure.prf +index 4cb4600..953572d 100644 +--- a/tools/qmake/mkspecs/features/configure.prf ++++ b/tools/qmake/mkspecs/features/configure.prf +@@ -72,9 +72,9 @@ defineTest(runConfigure) { + defineTest(finalizeConfigure) { + linux { + use?(nss) { +- log("SSL............................... Using system NSS$${EOL}") ++ log("Certificate handling.............. Using system NSS$${EOL}") + } else { +- log("SSL............................... Using bundled BoringSSL$${EOL}") ++ log("Certificate handling.............. Using bundled BoringSSL$${EOL}") + } + use?(system_icu) { + packagesExist("icu-uc icu-i18n") { +-- +2.7.4 + diff --git a/dev-qt/qtwebengine/metadata.xml b/dev-qt/qtwebengine/metadata.xml new file mode 100644 index 000000000000..881cc17567c8 --- /dev/null +++ b/dev-qt/qtwebengine/metadata.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>qt@gentoo.org</email> + <name>Gentoo Qt Project</name> + </maintainer> + <use> + <flag name="geolocation">Enable physical position determination + via <pkg>dev-qt/qtpositioning</pkg></flag> + <flag name="system-ffmpeg">Use the system-wide <pkg>media-video/ffmpeg</pkg> + instead of bundled.</flag> + <flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg> + instead of bundled.</flag> + <flag name="widgets">Enable QtWidgets support</flag> + </use> + <upstream> + <bugs-to>https://bugreports.qt.io/</bugs-to> + <doc>http://doc.qt.io/</doc> + </upstream> + <slots> + <subslots> + Must only be used by packages that are known to use private parts of the Qt API. + </subslots> + </slots> +</pkgmetadata> diff --git a/dev-qt/qtwebengine/qtwebengine-5.6.0.ebuild b/dev-qt/qtwebengine/qtwebengine-5.6.0.ebuild new file mode 100644 index 000000000000..b08dbf7c0271 --- /dev/null +++ b/dev-qt/qtwebengine/qtwebengine-5.6.0.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +PYTHON_COMPAT=( python2_7 ) +inherit python-any-r1 qt5-build + +DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~x86" +fi + +IUSE="bindist geolocation +system-ffmpeg +system-icu widgets" + +RDEPEND=" + app-arch/snappy + dev-libs/glib:2 + dev-libs/nspr + dev-libs/nss + ~dev-qt/qtcore-${PV} + ~dev-qt/qtdeclarative-${PV} + ~dev-qt/qtgui-${PV} + ~dev-qt/qtnetwork-${PV} + ~dev-qt/qtwebchannel-${PV}[qml] + dev-libs/expat + dev-libs/jsoncpp + dev-libs/libevent + dev-libs/libxml2 + dev-libs/libxslt + media-libs/alsa-lib + media-libs/flac + media-libs/fontconfig + media-libs/freetype + media-libs/harfbuzz:= + media-libs/libpng:0= + >=media-libs/libvpx-1.4 + media-libs/libwebp + media-libs/opus + media-libs/speex + net-libs/libsrtp + sys-apps/dbus + sys-apps/pciutils + sys-libs/libcap + sys-libs/zlib + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXScrnSaver + x11-libs/libXtst + geolocation? ( ~dev-qt/qtpositioning-${PV} ) + system-ffmpeg? ( =media-video/ffmpeg-2*:= ) + system-icu? ( dev-libs/icu:= ) + widgets? ( ~dev-qt/qtwidgets-${PV} ) +" +DEPEND="${RDEPEND} + ${PYTHON_DEPS} + dev-util/gperf + dev-util/ninja + dev-util/re2c + sys-devel/bison +" + +PATCHES=( + "${FILESDIR}/${PN}-5.6.0-icu.patch" + "${FILESDIR}/${PN}-5.6.0-nss-3.23-01.patch" + "${FILESDIR}/${PN}-5.6.0-nss-3.23-02.patch" +) + +src_prepare() { + qt_use_disable_mod geolocation positioning \ + src/core/core_common.pri \ + src/core/core_gyp_generator.pro + qt_use_disable_mod widgets widgets \ + src/src.pro \ + tests/quicktestbrowser/quicktestbrowser.pro + + qt5-build_src_prepare +} + +src_configure() { + export NINJA_PATH="/usr/bin/ninja" + local myqmakeargs=( + $(usex bindist '' 'WEBENGINE_CONFIG+=use_proprietary_codecs') + $(usex system-ffmpeg 'WEBENGINE_CONFIG+=use_system_ffmpeg' '') + $(usex system-icu 'WEBENGINE_CONFIG+=use_system_icu' '') + ) + qt5-build_src_configure +} |