commit ba3e4d985782dca36a86b6829ce2954fb29bdb58
parent c4f94c6afbc5e1a1fc8a964c40e2703c8b2f03a0
Author: parazyd <parazyd@dyne.org>
Date: Sun, 18 Dec 2016 23:52:43 +0100
dev-qt/qtwebkit: Add 5.7.1
Diffstat:
8 files changed, 221 insertions(+), 0 deletions(-)
diff --git a/dev-qt/qtwebkit/Manifest b/dev-qt/qtwebkit/Manifest
@@ -0,0 +1 @@
+DIST qtwebkit-opensource-src-5.7.1.tar.xz 35298736 SHA256 a46cf7c89339645f94a5777e8ae5baccf75c5fc87ab52c9dafc25da3327b5f03 SHA512 538928ada8fd25c01f0b78efac79e004904e6e4ec110108c492877e334acd5d9253653d3b207e535d1e08d092af2833a7566cebb2bf8b90069944634bf24f60a WHIRLPOOL d2dce72777a6babb1c35025ff6d882b7f48895dca4425b9e29b099e45282e8538548a653f0757998d6a619d706544fad0363199d8979ccca94762ba39b6516bd
diff --git a/dev-qt/qtwebkit/files/qtwebkit-5.2.1-disable-gstreamer.patch b/dev-qt/qtwebkit/files/qtwebkit-5.2.1-disable-gstreamer.patch
@@ -0,0 +1,15 @@
+--- a/Tools/qmake/mkspecs/features/features.prf
++++ b/Tools/qmake/mkspecs/features/features.prf
+@@ -99,12 +99,6 @@
+
+ # HTML5 Media Support for builds with GStreamer
+ unix:!mac:!contains(QT_CONFIG, no-pkg-config) {
+- packagesExist("glib-2.0 gio-2.0 gstreamer-1.0 gstreamer-plugins-base-1.0") {
+- WEBKIT_CONFIG += video use_gstreamer
+- } else: packagesExist("glib-2.0 gio-2.0 \'gstreamer-0.10 >= 0.10.30\' \'gstreamer-plugins-base-0.10 >= 0.10.30\'") {
+- WEBKIT_CONFIG += video use_gstreamer use_gstreamer010
+- }
+- use?(gstreamer): WEBKIT_CONFIG += use_native_fullscreen_video
+ }
+
+ !enable?(video):qtHaveModule(multimediawidgets) {
diff --git a/dev-qt/qtwebkit/files/qtwebkit-5.3.2-use-gstreamer010.patch b/dev-qt/qtwebkit/files/qtwebkit-5.3.2-use-gstreamer010.patch
@@ -0,0 +1,18 @@
+--- Tools/qmake/mkspecs/features/features.prf 2014-09-27 11:09:50.010617142 +0100
++++ Tools/qmake/mkspecs/features/features.prf 2014-09-27 11:17:10.741678989 +0100
+@@ -96,14 +96,8 @@
+ use?(3d_graphics): WEBKIT_CONFIG += webgl
+
+ # HTML5 Media Support for builds with GStreamer
+- unix:!mac:!contains(QT_CONFIG, no-pkg-config) {
+- packagesExist("glib-2.0 gio-2.0 gstreamer-1.0 gstreamer-plugins-base-1.0") {
+- WEBKIT_CONFIG += video use_gstreamer
+- } else: packagesExist("glib-2.0 gio-2.0 \'gstreamer-0.10 >= 0.10.30\' \'gstreamer-plugins-base-0.10 >= 0.10.30\'") {
+- WEBKIT_CONFIG += video use_gstreamer use_gstreamer010
+- }
++ WEBKIT_CONFIG += video use_gstreamer use_gstreamer010
+ use?(gstreamer): WEBKIT_CONFIG += use_native_fullscreen_video
+- }
+
+ !enable?(video):qtHaveModule(multimediawidgets) {
+ WEBKIT_CONFIG += video use_qt_multimedia
diff --git a/dev-qt/qtwebkit/files/qtwebkit-5.4.2-system-leveldb.patch b/dev-qt/qtwebkit/files/qtwebkit-5.4.2-system-leveldb.patch
@@ -0,0 +1,25 @@
+Correct header location so system dev-libs/leveldb can be detected.
+
+--- a/Tools/qmake/config.tests/leveldb/leveldb.cpp
++++ b/Tools/qmake/config.tests/leveldb/leveldb.cpp
+@@ -19,7 +19,7 @@
+
+ #include <leveldb/db.h>
+ #include <leveldb/env.h>
+-#include <helpers/memenv/memenv.h>
++#include <leveldb/helpers/memenv.h>
+
+ int main(int, char**)
+ {
+
+--- a/Source/WebCore/platform/leveldb/LevelDBDatabase.cpp
++++ b/Source/WebCore/platform/leveldb/LevelDBDatabase.cpp
+@@ -38,7 +38,7 @@
+ #include <leveldb/comparator.h>
+ #include <leveldb/db.h>
+ #include <leveldb/env.h>
+-#include <helpers/memenv/memenv.h>
++#include <leveldb/helpers/memenv.h>
+ #include <leveldb/slice.h>
+ #include <string>
+ #include <wtf/PassOwnPtr.h>
diff --git a/dev-qt/qtwebkit/files/qtwebkit-5.5.0-fix-backtrace-detection-musl.patch b/dev-qt/qtwebkit/files/qtwebkit-5.5.0-fix-backtrace-detection-musl.patch
@@ -0,0 +1,22 @@
+https://github.com/meta-qt5/meta-qt5/blob/master/recipes-qt/qt5/qtwebkit/0003-Exclude-backtrace-API-for-non-glibc-libraries.patch
+
+--- a/Source/WTF/wtf/Assertions.cpp
++++ b/Source/WTF/wtf/Assertions.cpp
+@@ -61,7 +61,7 @@
+ #include <windows.h>
+ #endif
+
+-#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
++#if (OS(DARWIN) || (OS(LINUX) && defined (__GLIBC__) && !defined(__UCLIBC__))) && !OS(ANDROID)
+ #include <cxxabi.h>
+ #include <dlfcn.h>
+ #include <execinfo.h>
+@@ -245,7 +245,7 @@ void WTFReportArgumentAssertionFailure(const char* file, int line, const char* f
+
+ void WTFGetBacktrace(void** stack, int* size)
+ {
+-#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
++#if (OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))) && !OS(ANDROID)
+ *size = backtrace(stack, *size);
+ #elif OS(WINDOWS) && !OS(WINCE)
+ // The CaptureStackBackTrace function is available in XP, but it is not defined
diff --git a/dev-qt/qtwebkit/files/qtwebkit-5.5.1-disable-jit.patch b/dev-qt/qtwebkit/files/qtwebkit-5.5.1-disable-jit.patch
@@ -0,0 +1,15 @@
+Allow disabling JIT for hardened.
+
+Author: Magnus Granberg <zorry@gentoo.org>
+Gentoo-bug: 562396
+
+--- a/Tools/qmake/mkspecs/features/features.pri
++++ b/Tools/qmake/mkspecs/features/features.pri
+@@ -70,6 +70,7 @@ FEATURE_DEFAULTS = \
+ ENABLE_INPUT_TYPE_WEEK=0 \
+ ENABLE_INSPECTOR=1 \
+ ENABLE_INSPECTOR_SERVER=1 \
++ ENABLE_JIT=0 \
+ ENABLE_JAVASCRIPT_DEBUGGER=1 \
+ ENABLE_LEGACY_CSS_VENDOR_PREFIXES=0 \
+ ENABLE_LEGACY_NOTIFICATIONS=1 \
diff --git a/dev-qt/qtwebkit/files/qtwebkit-5.5.1-fix-stack-size-musl.patch b/dev-qt/qtwebkit/files/qtwebkit-5.5.1-fix-stack-size-musl.patch
@@ -0,0 +1,14 @@
+diff -Naur qtwebkit-opensource-src-5.5.1.orig/Source/JavaScriptCore/runtime/VMStackBounds.h qtwebkit-opensource-src-5.5.1/Source/JavaScriptCore/runtime/VMStackBounds.h
+--- qtwebkit-opensource-src-5.5.1.orig/Source/JavaScriptCore/runtime/VMStackBounds.h 2016-02-27 04:22:08.000000000 -0800
++++ qtwebkit-opensource-src-5.5.1/Source/JavaScriptCore/runtime/VMStackBounds.h 2016-04-10 19:30:47.907626687 -0700
+@@ -53,8 +53,8 @@
+ //
+ // These sizes were derived from the stack usage of a number of sites when
+ // layout occurs when we've already consumed most of the C stack.
+- const size_t requiredStack = 128 * KB;
+- const size_t errorModeRequiredStack = 64 * KB;
++ const size_t requiredStack = 32 * KB;
++ const size_t errorModeRequiredStack = 16 * KB;
+
+ size_t requiredCapacity = interpreter->isInErrorHandlingMode() ? errorModeRequiredStack : requiredStack;
+ RELEASE_ASSERT(m_bounds.size() >= requiredCapacity);
diff --git a/dev-qt/qtwebkit/qtwebkit-5.7.1.ebuild b/dev-qt/qtwebkit/qtwebkit-5.7.1.ebuild
@@ -0,0 +1,111 @@
+# 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="WebKit rendering library for the Qt5 framework (deprecated)"
+SRC_URI="https://download.qt.io/community_releases/${PV%.*}/${PV}/${PN}-opensource-src-${PV}.tar.xz"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+# TODO: qttestlib
+
+IUSE="geolocation gstreamer gstreamer010 +jit multimedia opengl orientation printsupport qml webchannel webp"
+REQUIRED_USE="?? ( gstreamer gstreamer010 multimedia )"
+
+RDEPEND="
+ dev-db/sqlite:3
+ dev-libs/icu:=
+ >=dev-libs/leveldb-1.18-r1
+ dev-libs/libxml2:2
+ dev-libs/libxslt
+ ~dev-qt/qtcore-${PV}[icu]
+ ~dev-qt/qtgui-${PV}
+ ~dev-qt/qtnetwork-${PV}
+ ~dev-qt/qtsql-${PV}
+ ~dev-qt/qtwidgets-${PV}
+ media-libs/fontconfig:1.0
+ media-libs/libpng:0=
+ >=sys-libs/zlib-1.2.5
+ virtual/jpeg:0
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXrender
+ geolocation? ( ~dev-qt/qtpositioning-${PV} )
+ gstreamer? (
+ dev-libs/glib:2
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ gstreamer010? (
+ dev-libs/glib:2
+ media-libs/gstreamer:0.10
+ media-libs/gst-plugins-base:0.10
+ )
+ multimedia? ( ~dev-qt/qtmultimedia-${PV}[widgets] )
+ opengl? ( ~dev-qt/qtopengl-${PV} )
+ orientation? ( ~dev-qt/qtsensors-${PV} )
+ printsupport? ( ~dev-qt/qtprintsupport-${PV} )
+ qml? ( ~dev-qt/qtdeclarative-${PV} )
+ webchannel? ( ~dev-qt/qtwebchannel-${PV} )
+ webp? ( media-libs/libwebp:0= )
+"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ dev-lang/ruby
+ dev-util/gperf
+ sys-devel/bison
+ sys-devel/flex
+ virtual/rubygems
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-5.4.2-system-leveldb.patch"
+ "${FILESDIR}/${PN}-5.5.0-fix-backtrace-detection-musl.patch"
+ "${FILESDIR}/${PN}-5.5.1-fix-stack-size-musl.patch"
+)
+
+src_prepare() {
+ # ensure bundled library cannot be used
+ rm -r Source/ThirdParty/leveldb || die
+
+ # bug 466216
+ sed -i -e '/CONFIG +=/s/rpath//' \
+ Source/WebKit/qt/declarative/{experimental/experimental,public}.pri \
+ Tools/qmake/mkspecs/features/{force_static_libs_as_shared,unix/default_post}.prf \
+ || die
+
+ qt_use_disable_mod geolocation positioning Tools/qmake/mkspecs/features/features.prf
+ qt_use_disable_mod multimedia multimediawidgets Tools/qmake/mkspecs/features/features.prf
+ qt_use_disable_mod orientation sensors Tools/qmake/mkspecs/features/features.prf
+ qt_use_disable_mod printsupport printsupport Tools/qmake/mkspecs/features/features.prf
+ qt_use_disable_mod qml quick Tools/qmake/mkspecs/features/features.prf
+ qt_use_disable_mod webchannel webchannel \
+ Source/WebKit2/Target.pri \
+ Source/WebKit2/WebKit2.pri
+
+ if use gstreamer010; then
+ PATCHES+=("${FILESDIR}/${PN}-5.3.2-use-gstreamer010.patch")
+ elif ! use gstreamer; then
+ PATCHES+=("${FILESDIR}/${PN}-5.2.1-disable-gstreamer.patch")
+ fi
+
+ # bug 562396
+ use jit || PATCHES+=("${FILESDIR}/${PN}-5.5.1-disable-jit.patch")
+
+ use opengl || sed -i -e '/contains(QT_CONFIG, opengl): WEBKIT_CONFIG += use_3d_graphics/d' \
+ Tools/qmake/mkspecs/features/features.prf || die
+ use webp || sed -i -e '/config_libwebp: WEBKIT_CONFIG += use_webp/d' \
+ Tools/qmake/mkspecs/features/features.prf || die
+
+ # bug 458222
+ sed -i -e '/SUBDIRS += examples/d' Source/QtWebKit.pro || die
+
+ qt5-build_src_prepare
+}