parlay

yet another gentoo overlay
git clone https://git.parazyd.org/parlay
Log | Files | Refs | README

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:
Adev-qt/qtwebkit/Manifest | 1+
Adev-qt/qtwebkit/files/qtwebkit-5.2.1-disable-gstreamer.patch | 15+++++++++++++++
Adev-qt/qtwebkit/files/qtwebkit-5.3.2-use-gstreamer010.patch | 18++++++++++++++++++
Adev-qt/qtwebkit/files/qtwebkit-5.4.2-system-leveldb.patch | 25+++++++++++++++++++++++++
Adev-qt/qtwebkit/files/qtwebkit-5.5.0-fix-backtrace-detection-musl.patch | 22++++++++++++++++++++++
Adev-qt/qtwebkit/files/qtwebkit-5.5.1-disable-jit.patch | 15+++++++++++++++
Adev-qt/qtwebkit/files/qtwebkit-5.5.1-fix-stack-size-musl.patch | 14++++++++++++++
Adev-qt/qtwebkit/qtwebkit-5.7.1.ebuild | 111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 +}