aboutsummaryrefslogtreecommitdiff
path: root/dev-qt
diff options
context:
space:
mode:
authorSteve Arnold <stephen.arnold42@gmail.com>2015-06-15 23:58:46 -0700
committerSteve Arnold <stephen.arnold42@gmail.com>2015-06-15 23:58:46 -0700
commit114e53e84556d6fddda2680ef6b72cea979202a2 (patch)
tree85f8a38e4aa20574c9dd26f7d1ecad9c3a6b76a9 /dev-qt
parentupdated firefox prefs with latest Gentoo defaults (diff)
downloadarm-114e53e84556d6fddda2680ef6b72cea979202a2.tar.gz
arm-114e53e84556d6fddda2680ef6b72cea979202a2.tar.bz2
arm-114e53e84556d6fddda2680ef6b72cea979202a2.zip
added upstream patch for building with new glib
Diffstat (limited to 'dev-qt')
-rw-r--r--dev-qt/qtwebkit/Manifest1
-rw-r--r--dev-qt/qtwebkit/files/qtwebkit-5.2.1-disable-gstreamer.patch15
-rw-r--r--dev-qt/qtwebkit/files/qtwebkit-5.3.2-use-gstreamer010.patch18
-rw-r--r--dev-qt/qtwebkit/files/qtwebkit-5.4.1-Fix-building-with-glib-2.43.patch238
-rw-r--r--dev-qt/qtwebkit/qtwebkit-5.4.1.ebuild94
5 files changed, 366 insertions, 0 deletions
diff --git a/dev-qt/qtwebkit/Manifest b/dev-qt/qtwebkit/Manifest
new file mode 100644
index 0000000..2affd1f
--- /dev/null
+++ b/dev-qt/qtwebkit/Manifest
@@ -0,0 +1 @@
+DIST qtwebkit-opensource-src-5.4.1.tar.xz 33457544 SHA256 6607211ef8a913dc778617bf4ba0970e34cc71e1da3abb477eabe0035e7119bf SHA512 592a3ebccb4578eb0183d1ecd5aae69c7f03482aa09594fc06f58e2c2b82b5e916e1e951012fc1c8e0cea803c4d3e6db64fad41bbca70eb18b8d9d3ff2eab828 WHIRLPOOL 8a42720dd53ce583d48a3b7db1268c092dce11dfbbcf7524f50350145569c2b24b62b82a4715229294321ae7ce719ec56bb448eb7a7be9b2f7792ad1d8d9d7d0
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
new file mode 100644
index 0000000..05e41a1
--- /dev/null
+++ b/dev-qt/qtwebkit/files/qtwebkit-5.2.1-disable-gstreamer.patch
@@ -0,0 +1,15 @@
+--- Tools/qmake/mkspecs/features/features.prf 2014-03-19 18:35:47.795676444 +0000
++++ Tools/qmake/mkspecs/features/features.prf 2014-03-19 18:36:38.602433220 +0000
+@@ -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
new file mode 100644
index 0000000..1c02e45
--- /dev/null
+++ 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.1-Fix-building-with-glib-2.43.patch b/dev-qt/qtwebkit/files/qtwebkit-5.4.1-Fix-building-with-glib-2.43.patch
new file mode 100644
index 0000000..1203470
--- /dev/null
+++ b/dev-qt/qtwebkit/files/qtwebkit-5.4.1-Fix-building-with-glib-2.43.patch
@@ -0,0 +1,238 @@
+From ef94c178a7ba0bd43a677ec90fde334ce2c90810 Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
+Date: Fri, 27 Feb 2015 14:14:44 +0100
+Subject: [PATCH 3/3] Fix building with glib 2.43+
+
+The newest version of glib have introduced their own GMutexLocker
+conflicting with the one defined in WebCore.
+
+Task-number: QTBUG-44714
+Change-Id: Ibdd1646e129eaed84c65dc0d96bebe80f2a61f4b
+Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
+---
+ .../gstreamer/WebKitWebSourceGStreamer.cpp | 48 +++++++++++-----------
+ 1 file changed, 24 insertions(+), 24 deletions(-)
+
+diff --git a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
+index 5625873..a6d961f 100644
+--- a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
++++ b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
+@@ -354,7 +354,7 @@ static void webKitWebSrcSetProperty(GObject* object, guint propID, const GValue*
+
+ switch (propID) {
+ case PROP_IRADIO_MODE: {
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ priv->iradioMode = g_value_get_boolean(value);
+ break;
+ }
+@@ -376,7 +376,7 @@ static void webKitWebSrcGetProperty(GObject* object, guint propID, GValue* value
+ WebKitWebSrc* src = WEBKIT_WEB_SRC(object);
+ WebKitWebSrcPrivate* priv = src->priv;
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ switch (propID) {
+ case PROP_IRADIO_MODE:
+ g_value_set_boolean(value, priv->iradioMode);
+@@ -429,7 +429,7 @@ static gboolean webKitWebSrcStop(WebKitWebSrc* src)
+
+ ASSERT(isMainThread());
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+
+ bool seeking = priv->seekID;
+
+@@ -493,7 +493,7 @@ static gboolean webKitWebSrcStart(WebKitWebSrc* src)
+
+ ASSERT(isMainThread());
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+
+ priv->startID = 0;
+
+@@ -584,7 +584,7 @@ static GstStateChangeReturn webKitWebSrcChangeState(GstElement* element, GstStat
+ return ret;
+ }
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ switch (transition) {
+ case GST_STATE_CHANGE_READY_TO_PAUSED:
+ GST_DEBUG_OBJECT(src, "READY->PAUSED");
+@@ -615,7 +615,7 @@ static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ
+ gst_query_parse_duration(query, &format, NULL);
+
+ GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format));
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ if (format == GST_FORMAT_BYTES && src->priv->size > 0) {
+ gst_query_set_duration(query, format, src->priv->size);
+ result = TRUE;
+@@ -623,7 +623,7 @@ static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ
+ break;
+ }
+ case GST_QUERY_URI: {
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ gst_query_set_uri(query, src->priv->uri);
+ result = TRUE;
+ break;
+@@ -668,7 +668,7 @@ static gchar* webKitWebSrcGetUri(GstURIHandler* handler)
+ WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
+ gchar* ret;
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ ret = g_strdup(src->priv->uri);
+ return ret;
+ }
+@@ -683,7 +683,7 @@ static gboolean webKitWebSrcSetUri(GstURIHandler* handler, const gchar* uri, GEr
+ return FALSE;
+ }
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+
+ g_free(priv->uri);
+ priv->uri = 0;
+@@ -719,7 +719,7 @@ static const gchar* webKitWebSrcGetUri(GstURIHandler* handler)
+ WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
+ gchar* ret;
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ ret = g_strdup(src->priv->uri);
+ return ret;
+ }
+@@ -734,7 +734,7 @@ static gboolean webKitWebSrcSetUri(GstURIHandler* handler, const gchar* uri)
+ return FALSE;
+ }
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+
+ g_free(priv->uri);
+ priv->uri = 0;
+@@ -772,7 +772,7 @@ static gboolean webKitWebSrcNeedDataMainCb(WebKitWebSrc* src)
+
+ ASSERT(isMainThread());
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ // already stopped
+ if (!priv->needDataID)
+ return FALSE;
+@@ -793,7 +793,7 @@ static void webKitWebSrcNeedDataCb(GstAppSrc*, guint length, gpointer userData)
+
+ GST_DEBUG_OBJECT(src, "Need more data: %u", length);
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ if (priv->needDataID || !priv->paused) {
+ return;
+ }
+@@ -807,7 +807,7 @@ static gboolean webKitWebSrcEnoughDataMainCb(WebKitWebSrc* src)
+
+ ASSERT(isMainThread());
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ // already stopped
+ if (!priv->enoughDataID)
+ return FALSE;
+@@ -828,7 +828,7 @@ static void webKitWebSrcEnoughDataCb(GstAppSrc*, gpointer userData)
+
+ GST_DEBUG_OBJECT(src, "Have enough data");
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ if (priv->enoughDataID || priv->paused) {
+ return;
+ }
+@@ -842,7 +842,7 @@ static gboolean webKitWebSrcSeekMainCb(WebKitWebSrc* src)
+
+ ASSERT(isMainThread());
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ // already stopped
+ if (!priv->seekID)
+ return FALSE;
+@@ -860,7 +860,7 @@ static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user
+ WebKitWebSrcPrivate* priv = src->priv;
+
+ GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset);
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ if (offset == priv->offset && priv->requestedOffset == priv->offset)
+ return TRUE;
+
+@@ -879,7 +879,7 @@ static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user
+ void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player)
+ {
+ ASSERT(player);
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ src->priv->player = player;
+ s_cachedResourceLoader = player->cachedResourceLoader();
+ }
+@@ -906,7 +906,7 @@ char* StreamingClient::createReadBuffer(size_t requestedSize, size_t& actualSize
+ mapGstBuffer(buffer);
+ #endif
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ priv->buffer = adoptGRef(buffer);
+ locker.unlock();
+
+@@ -921,7 +921,7 @@ void StreamingClient::handleResponseReceived(const ResourceResponse& response)
+
+ GST_DEBUG_OBJECT(src, "Received response: %d", response.httpStatusCode());
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+
+ // If we seeked we need 206 == PARTIAL_CONTENT
+ if (priv->requestedOffset && response.httpStatusCode() != 206) {
+@@ -1020,7 +1020,7 @@ void StreamingClient::handleDataReceived(const char* data, int length)
+ WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src.get());
+ WebKitWebSrcPrivate* priv = src->priv;
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+
+ GST_LOG_OBJECT(src, "Have %d bytes of data", priv->buffer ? getGstBufferSize(priv->buffer.get()) : length);
+
+@@ -1074,7 +1074,7 @@ void StreamingClient::handleNotifyFinished()
+
+ GST_DEBUG_OBJECT(src, "Have EOS");
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ if (!priv->seekID) {
+ locker.unlock();
+ gst_app_src_end_of_stream(priv->appsrc);
+@@ -1210,7 +1210,7 @@ void ResourceHandleStreamingClient::wasBlocked(ResourceHandle*)
+
+ GST_ERROR_OBJECT(src, "Request was blocked");
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ uri.set(g_strdup(src->priv->uri));
+ locker.unlock();
+
+@@ -1224,7 +1224,7 @@ void ResourceHandleStreamingClient::cannotShowURL(ResourceHandle*)
+
+ GST_ERROR_OBJECT(src, "Cannot show URL");
+
+- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
+ uri.set(g_strdup(src->priv->uri));
+ locker.unlock();
+
+--
+2.3.5
+
diff --git a/dev-qt/qtwebkit/qtwebkit-5.4.1.ebuild b/dev-qt/qtwebkit/qtwebkit-5.4.1.ebuild
new file mode 100644
index 0000000..9c5708b
--- /dev/null
+++ b/dev-qt/qtwebkit/qtwebkit-5.4.1.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1 qt5-build
+
+DESCRIPTION="WebKit rendering library for the Qt5 framework"
+
+if [[ ${QT5_BUILD_TYPE} == live ]]; then
+ KEYWORDS="~ppc64"
+else
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+# TODO: qttestlib, geolocation, orientation/sensors
+
+IUSE="gstreamer gstreamer010 multimedia opengl printsupport qml udev webp"
+REQUIRED_USE="?? ( gstreamer gstreamer010 multimedia )"
+
+RDEPEND="
+ dev-db/sqlite:3
+ dev-libs/icu:=
+ dev-libs/libxml2:2
+ dev-libs/libxslt
+ >=dev-qt/qtcore-${PV}:5[debug=,icu]
+ >=dev-qt/qtgui-${PV}:5[debug=]
+ >=dev-qt/qtnetwork-${PV}:5[debug=]
+ >=dev-qt/qtsql-${PV}:5[debug=]
+ >=dev-qt/qtwidgets-${PV}:5[debug=]
+ media-libs/fontconfig:1.0
+ media-libs/libpng:0=
+ sys-libs/zlib
+ virtual/jpeg:0
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXrender
+ 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}:5[debug=,widgets] )
+ opengl? ( >=dev-qt/qtopengl-${PV}:5[debug=] )
+ printsupport? ( >=dev-qt/qtprintsupport-${PV}:5[debug=] )
+ qml? ( >=dev-qt/qtdeclarative-${PV}:5[debug=] )
+ udev? ( virtual/udev )
+ webp? ( media-libs/libwebp:0= )
+"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ dev-lang/ruby
+ dev-util/gperf
+ sys-devel/bison
+ sys-devel/flex
+ virtual/rubygems
+"
+
+src_prepare() {
+ # glib build error (bug #549840)
+ epatch "${FILESDIR}"/${P}-Fix-building-with-glib-2.43.patch
+
+ if use gstreamer010; then
+ epatch "${FILESDIR}/${PN}-5.3.2-use-gstreamer010.patch"
+ elif ! use gstreamer; then
+ epatch "${FILESDIR}/${PN}-5.2.1-disable-gstreamer.patch"
+ fi
+ use multimedia || sed -i -e '/WEBKIT_CONFIG += video use_qt_multimedia/d' \
+ Tools/qmake/mkspecs/features/features.prf || die
+ use opengl || sed -i -e '/contains(QT_CONFIG, opengl): WEBKIT_CONFIG += use_3d_graphics/d' \
+ Tools/qmake/mkspecs/features/features.prf || die
+ use printsupport || sed -i -e '/WEBKIT_CONFIG += have_qtprintsupport/d' \
+ Tools/qmake/mkspecs/features/features.prf || die
+ use qml || sed -i -e '/have?(QTQUICK): SUBDIRS += declarative/d' \
+ Source/QtWebKit.pro || die
+ use udev || sed -i -e '/linux: WEBKIT_CONFIG += gamepad/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
+}