From 4564ccf943eb2dea00631397e2e4d8fdca3c9b7a Mon Sep 17 00:00:00 2001 From: Kevin Kofler Date: Sun, 20 Jul 2014 03:40:14 +0200 Subject: [PATCH] build against GStreamer1 on F21+ (#1092642, patch from openSUSE) * Sun Jul 20 2014 Kevin Kofler 2.3.3-16 - build against GStreamer1 on F21+ (#1092642, patch from openSUSE) --- qtwebkit-2.3.3-gstreamer1.patch | 65 +++++++++++++++++++++++++++++++++ qtwebkit.spec | 20 +++++++++- 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 qtwebkit-2.3.3-gstreamer1.patch diff --git a/qtwebkit-2.3.3-gstreamer1.patch b/qtwebkit-2.3.3-gstreamer1.patch new file mode 100644 index 0000000..07c5440 --- /dev/null +++ b/qtwebkit-2.3.3-gstreamer1.patch @@ -0,0 +1,65 @@ +diff -urNB webkit-qtwebkit-23/Source/WebCore/WebCore.pri new/Source/WebCore/WebCore.pri +--- webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-02-15 16:46:12.000000000 +0100 ++++ new/Source/WebCore/WebCore.pri 2013-02-21 15:46:00.298855975 +0100 +@@ -197,8 +197,10 @@ + + contains(DEFINES, WTF_USE_GSTREAMER=1) { + DEFINES += ENABLE_GLIB_SUPPORT=1 +- PKGCONFIG += glib-2.0 gio-2.0 gstreamer-0.10 gstreamer-app-0.10 gstreamer-base-0.10 gstreamer-interfaces-0.10 gstreamer-pbutils-0.10 gstreamer-plugins-base-0.10 gstreamer-video-0.10 +-} ++ DEFINES += GST_API_VERSION=1.0 ++ DEFINES += GST_API_VERSION_1 ++ PKGCONFIG += glib-2.0 gio-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-base-1.0 gstreamer-pbutils-1.0 gstreamer-plugins-base-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 ++ } + + contains(DEFINES, ENABLE_VIDEO=1) { + contains(DEFINES, WTF_USE_QTKIT=1) { +@@ -233,7 +235,7 @@ + contains(DEFINES, WTF_USE_GSTREAMER=1) { + DEFINES += WTF_USE_WEBAUDIO_GSTREAMER=1 + INCLUDEPATH += $$SOURCE_DIR/platform/audio/gstreamer +- PKGCONFIG += gstreamer-audio-0.10 gstreamer-fft-0.10 ++ PKGCONFIG += gstreamer-audio-1.0 gstreamer-fft-1.0 + } + } + +diff -urNB webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h new/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h +--- webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h 2013-02-15 16:46:12.000000000 +0100 ++++ new/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h 2013-02-21 15:46:00.298855975 +0100 +@@ -157,7 +157,7 @@ + virtual void needTouchEvents(bool) { } + #endif + +-#if ENABLE(VIDEO) && (USE(GSTREAMER) || USE(QT_MULTIMEDIA) || USE(QTKIT)) ++#if ENABLE(VIDEO) && ((USE(GSTREAMER) && !defined(GST_API_VERSION_1)) || USE(QT_MULTIMEDIA) || USE(QTKIT)) + virtual bool supportsFullscreenForNode(const Node*); + virtual void enterFullscreenForNode(Node*); + virtual void exitFullscreenForNode(Node*); +diff -urNB webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h new/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h +--- webkit-qtwebkit-23/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h 2013-02-15 16:46:12.000000000 +0100 ++++ new/Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h 2013-02-21 15:52:57.400847675 +0100 +@@ -106,10 +106,10 @@ + private: + ChromeClientQt* m_chromeClient; + HTMLVideoElement* m_videoElement; +-#if USE(QT_MULTIMEDIA) ++#if USE(QT_MULTIMEDIA) && !defined(GST_API_VERSION_1) + QWebFullScreenVideoHandler* m_FullScreenVideoHandler; + #endif +-#if USE(GSTREAMER) ++#if USE(GSTREAMER) && !defined(GST_API_VERSION_1) + GStreamerFullScreenVideoHandler* m_FullScreenVideoHandlerGStreamer; + #endif + #if USE(QTKIT) +diff -urNB webkit-qtwebkit-23/Tools/qmake/mkspecs/features/features.prf new/Tools/qmake/mkspecs/features/features.prf +--- webkit-qtwebkit-23/Tools/qmake/mkspecs/features/features.prf 2013-02-15 16:46:12.000000000 +0100 ++++ new/Tools/qmake/mkspecs/features/features.prf 2013-02-21 15:46:00.297855972 +0100 +@@ -186,7 +186,7 @@ + DEFINES += WTF_USE_QTKIT=1 + } + } else: linux-*:!contains(DEFINES, USE_QTMULTIMEDIA=1) { +- !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 \'gstreamer-0.10 >= 0.10.30\' \'gstreamer-plugins-base-0.10 >= 0.10.30\'): { ++ !contains(QT_CONFIG, no-pkg-config):packagesExist("glib-2.0 gio-2.0 gstreamer-1.0 gstreamer-plugins-base-1.0") { + DEFINES += ENABLE_VIDEO=1 + DEFINES += WTF_USE_GSTREAMER=1 + } else { diff --git a/qtwebkit.spec b/qtwebkit.spec index d739f0a..50332f6 100644 --- a/qtwebkit.spec +++ b/qtwebkit.spec @@ -2,7 +2,7 @@ Name: qtwebkit Summary: Qt WebKit bindings Version: 2.3.3 -Release: 15%{?dist} +Release: 16%{?dist} License: LGPLv2 with exceptions or GPLv3 with exceptions URL: http://trac.webkit.org/wiki/QtWebKit @@ -54,6 +54,9 @@ Patch14: webkit-qtwebkit-23-no_rpath.patch # ppc64le support Patch15: qtwebkit-23-ppc64le.patch +# patch from openSUSE to support GStreamer 1.x (#1092642) +Patch16: qtwebkit-2.3.3-gstreamer1.patch + ## upstream patches Patch102: 0002-Texmap-GTK-The-poster-circle-doesn-t-appear.patch Patch103: 0003-Qt-Tiled-backing-store-not-clipped-to-frame-or-visib.patch @@ -82,7 +85,15 @@ BuildRequires: libjpeg-devel BuildRequires: pkgconfig(gio-2.0) pkgconfig(glib-2.0) BuildRequires: pkgconfig(fontconfig) # gstreamer media support +%if 0%{?fedora} > 20 || 0%{?rhel} > 7 +%global gstreamer1 1 +BuildRequires: pkgconfig(gstreamer-1.0) pkgconfig(gstreamer-app-1.0) +%else +# We don't want to use GStreamer 1 where the rest of the Qt 4 stack doesn't, +# or we run into symbol conflicts. So build against GStreamer 0.10 on Fedora up +# to 20 and RHEL up to 7. (Up to RHEL 6, GStreamer 0.10 is the only option.) BuildRequires: pkgconfig(gstreamer-0.10) pkgconfig(gstreamer-app-0.10) +%endif BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libwebp) @@ -155,6 +166,10 @@ Provides: qt4-webkit-devel%{?_isa} = 2:%{version}-%{release} %patch13 -p1 -b .aarch64 %patch14 -p1 -b .no_rpath +%if 0%{?gstreamer1} +%patch16 -p1 -b .gstreamer1 +%endif + ## Apply this last patch, as it deps so aarch stuffs %ifarch ppc64le %patch10 -p1 -b .system-malloc @@ -239,6 +254,9 @@ popd %changelog +* Sun Jul 20 2014 Kevin Kofler 2.3.3-16 +- build against GStreamer1 on F21+ (#1092642, patch from openSUSE) + * Fri Jun 20 2014 Rex Dieter 2.3.3-15 - use pkgconfig deps for qt-mobility