[qtwebkit] build against GStreamer1 on F21+ (#1092642, patch from openSUSE)

Kevin Kofler kkofler at fedoraproject.org
Sun Jul 20 01:39:59 UTC 2014


commit 4564ccf943eb2dea00631397e2e4d8fdca3c9b7a
Author: Kevin Kofler <Kevin at tigcc.ticalc.org>
Date:   Sun Jul 20 03:40:14 2014 +0200

    build against GStreamer1 on F21+ (#1092642, patch from openSUSE)
    
    * Sun Jul 20 2014 Kevin Kofler <Kevin at tigcc.ticalc.org> 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 deletions(-)
---
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 <Kevin at tigcc.ticalc.org> 2.3.3-16
+- build against GStreamer1 on F21+ (#1092642, patch from openSUSE)
+
 * Fri Jun 20 2014 Rex Dieter <rdieter at fedoraproject.org> 2.3.3-15
 - use pkgconfig deps for qt-mobility
 


More information about the scm-commits mailing list