summaryrefslogtreecommitdiffstats
path: root/recipes-qt
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2015-05-28 14:50:37 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2015-05-28 14:50:37 +0200
commit3fa7bb148ed40bd018ce51b5f20c0c8792638568 (patch)
treedc7b2847822189d5c0cbc7195fbca3556d6aa6a2 /recipes-qt
parent17eb158c6d2cd290b054b5bd54311aa44a02d04d (diff)
downloadmeta-qt5-3fa7bb148ed40bd018ce51b5f20c0c8792638568.tar.gz
qt5: drop recipes for 5.4.1 version
* we don't plan to keep 2 versions, one from tarballs and one from git now there is 5.4.2 in git recipes and 5.4.1 tarballs aren't very useful anymore Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt')
-rw-r--r--recipes-qt/qt5/nativesdk-qtbase_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/nativesdk-qttools_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/qt5-5.4.1.inc19
-rw-r--r--recipes-qt/qt5/qtbase-native_5.4.1.bb11
-rw-r--r--recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch351
-rw-r--r--recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch39
-rw-r--r--recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch233
-rw-r--r--recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch114
-rw-r--r--recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch97
-rw-r--r--recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch30
-rw-r--r--recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch29
-rw-r--r--recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch72
-rw-r--r--recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch157
-rw-r--r--recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch42
-rw-r--r--recipes-qt/qt5/qtbase/0011-Always-build-uic.patch31
-rw-r--r--recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch68
-rw-r--r--recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch108
-rw-r--r--recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch72
-rw-r--r--recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch196
-rw-r--r--recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch30
-rw-r--r--recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch47
-rw-r--r--recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake1
-rw-r--r--recipes-qt/qt5/qtbase_5.4.1.bb11
-rw-r--r--recipes-qt/qt5/qtconnectivity_5.4.1.bb12
-rw-r--r--recipes-qt/qt5/qtdeclarative/0001-qmltestexample-fix-link.patch88
-rw-r--r--recipes-qt/qt5/qtdeclarative_5.4.1.bb11
-rw-r--r--recipes-qt/qt5/qtenginio_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/qtgraphicaleffects_5.4.1.bb12
-rw-r--r--recipes-qt/qt5/qtimageformats_5.4.1.bb12
-rw-r--r--recipes-qt/qt5/qtlocation_5.4.1.bb12
-rw-r--r--recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch2368
-rw-r--r--recipes-qt/qt5/qtmultimedia_5.4.1.bb11
-rw-r--r--recipes-qt/qt5/qtquick1_5.4.1.bb12
-rw-r--r--recipes-qt/qt5/qtquickcontrols_5.4.1.bb12
-rw-r--r--recipes-qt/qt5/qtscript_5.4.1.bb11
-rw-r--r--recipes-qt/qt5/qtsensors_5.4.1.bb12
-rw-r--r--recipes-qt/qt5/qtserialport/0001-Unix-Clear-serial_struct-instances.patch42
-rw-r--r--recipes-qt/qt5/qtserialport_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/qtsvg_5.4.1.bb11
-rw-r--r--recipes-qt/qt5/qtsystems_5.4.1+git.bb14
-rw-r--r--recipes-qt/qt5/qttools-native_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch155
-rw-r--r--recipes-qt/qt5/qttools/0002-assistant-help-fix-linking-of-dependent-libraries.patch32
-rw-r--r--recipes-qt/qt5/qttools/0003-add-noqtwebkit-configuration.patch51
-rw-r--r--recipes-qt/qt5/qttools_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/qttranslations_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/qtwayland-native_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch32
-rw-r--r--recipes-qt/qt5/qtwayland/0001-examples-wayland-include-server-buffer-only-when-bui.patch31
-rw-r--r--recipes-qt/qt5/qtwayland_5.4.1.bb16
-rw-r--r--recipes-qt/qt5/qtwebchannel_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch27
-rw-r--r--recipes-qt/qt5/qtwebengine/0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch29
-rw-r--r--recipes-qt/qt5/qtwebengine/0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch29
-rw-r--r--recipes-qt/qt5/qtwebengine/0003-functions.prf-allow-build-for-linux-oe-g-platform.patch29
-rw-r--r--recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch532
-rw-r--r--recipes-qt/qt5/qtwebengine_5.4.1.bb13
-rw-r--r--recipes-qt/qt5/qtwebkit-examples_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch30
-rw-r--r--recipes-qt/qt5/qtwebkit/0002-Remove-TEXTREL-tag-in-x86.patch79
-rw-r--r--recipes-qt/qt5/qtwebkit/0003-Fix-building-with-glib-2.43.patch238
-rw-r--r--recipes-qt/qt5/qtwebkit/0004-gcc5-qtbug-44829.patch36
-rw-r--r--recipes-qt/qt5/qtwebkit_5.4.1.bb10
-rw-r--r--recipes-qt/qt5/qtwebsockets_5.4.1.bb5
-rw-r--r--recipes-qt/qt5/qtx11extras_5.4.1.bb12
-rw-r--r--recipes-qt/qt5/qtxmlpatterns_5.4.1.bb11
66 files changed, 0 insertions, 5845 deletions
diff --git a/recipes-qt/qt5/nativesdk-qtbase_5.4.1.bb b/recipes-qt/qt5/nativesdk-qtbase_5.4.1.bb
deleted file mode 100644
index 6215e828..00000000
--- a/recipes-qt/qt5/nativesdk-qtbase_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "9507825e558c980fed602de1f16ec7ae"
5SRC_URI[sha256sum] = "8574a593830959c0f7e5430fe77a43832ea7f5299e14a397a74576b3df7fb1b7"
diff --git a/recipes-qt/qt5/nativesdk-qttools_5.4.1.bb b/recipes-qt/qt5/nativesdk-qttools_5.4.1.bb
deleted file mode 100644
index d3d549ee..00000000
--- a/recipes-qt/qt5/nativesdk-qttools_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "5b2fd42304e9294bc0f77095fdb35ad6"
5SRC_URI[sha256sum] = "11de0f8573843194b134e32af49594514498fadc4fc0b3b0333540fe1f671f72"
diff --git a/recipes-qt/qt5/qt5-5.4.1.inc b/recipes-qt/qt5/qt5-5.4.1.inc
deleted file mode 100644
index 495551f6..00000000
--- a/recipes-qt/qt5/qt5-5.4.1.inc
+++ /dev/null
@@ -1,19 +0,0 @@
1# Copyright (C) 2012 O.S. Systems Software LTDA.
2# Copyright (C) 2013 Martin Jansa <martin.jansa@gmail.com>
3
4QT_VERSION ?= "${PV}"
5
6# it's different for RC versions
7QT_VERSION_DIR ?= "5.4"
8
9SRC_URI += " \
10 http://download.qt-project.org/official_releases/qt/${QT_VERSION_DIR}/${QT_VERSION}/submodules/${QT_MODULE}-opensource-src-${QT_VERSION}.tar.xz \
11"
12
13S = "${WORKDIR}/${QT_MODULE}-opensource-src-${QT_VERSION}"
14
15LICENSE = "GFDL-1.3 & BSD & (LGPL-2.1 & Digia-Qt-LGPL-Exception-1.1 | LGPL-3.0)"
16LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=d87ae0d200af76dca730d911474cbe5b \
17 file://LICENSE.LGPLv3;md5=ffcfac38a32c9ebdb8ff768fa1702478 \
18 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
19 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
diff --git a/recipes-qt/qt5/qtbase-native_5.4.1.bb b/recipes-qt/qt5/qtbase-native_5.4.1.bb
deleted file mode 100644
index 8ad61776..00000000
--- a/recipes-qt/qt5/qtbase-native_5.4.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4do_install_append() {
5 # for modules which are still using syncqt and call qtPrepareTool(QMAKE_SYNCQT, syncqt)
6 # e.g. qt3d, qtwayland
7 ln -sf syncqt.pl ${D}${OE_QMAKE_PATH_QT_BINS}/syncqt
8}
9
10SRC_URI[md5sum] = "9507825e558c980fed602de1f16ec7ae"
11SRC_URI[sha256sum] = "8574a593830959c0f7e5430fe77a43832ea7f5299e14a397a74576b3df7fb1b7"
diff --git a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
deleted file mode 100644
index 5f7ab145..00000000
--- a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
+++ /dev/null
@@ -1,351 +0,0 @@
1From df887cc51d1cf5328e536708b461f475e9fb4577 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Mon, 15 Apr 2013 04:29:32 +0200
4Subject: [PATCH 01/13] Add linux-oe-g++ platform
5
6* This qmake.conf unlike other platforms reads most variables from
7 shell environment, because it's easier for qt recipes to export
8 *FLAGS or CC specific for given recipe
9
10* configure: add getQEvalMakeConf and getXQEvalMakeConf
11 Allow expansion of $(...) references from qmake.conf to generate
12 qmake environment from shell environment as exported by qmake5_base
13
14* configure: don't export SYSTEM_VARIABLES to .qmake.vars
15 linux-oe-g++ should handle this correctly and exporting LD as QMAKE_LINK is
16 causing issues as we need g++ to be used as linker
17
18* configure.prf: Allow to add extra arguments to make
19 sometimes we would like to add -e or define some variable and respect it from both
20 Makefiles used in configure tests and also Makefiles to build the application
21
22* OE_QMAKE_CXX in order to allow compiler version check to succeed
23 which allows WebKit to be enabled.
24
25* Other variables in order to let config.tests to use our -platform
26 settings
27
28* Add setBootstrapEvalVariable to bootstrap qmake with our environment
29 too, this allows us to use -platform linux-oe-g++ also for native
30 recipe
31
32* disable gdb_dwarf_index
33 * qmake is trying to call native gdb and we don't depend on gdb-native
34 (or even provide gdb-native)
35 * fixes errors like this:
36 /bin/sh: gdb: command not found
37 /bin/sh: line 0: test: -gt: unary operator expected
38 which are not fatal, but still misleading in do_configure output
39
40Upstream-Status: Inappropriate [embedded specific]
41 too OE specific, probably cannot be upstreamed
42
43Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c
44Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
45---
46 configure | 66 ++++++++++++++++-------
47 mkspecs/features/configure.prf | 4 +-
48 mkspecs/linux-oe-g++/qmake.conf | 40 ++++++++++++++
49 mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++
50 4 files changed, 188 insertions(+), 22 deletions(-)
51 create mode 100644 mkspecs/linux-oe-g++/qmake.conf
52 create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h
53
54diff --git a/configure b/configure
55index 5ad29bb..0bcc175 100755
56--- a/configure
57+++ b/configure
58@@ -316,6 +316,16 @@ getQMakeConf()
59 getSingleQMakeVariable "$1" "$specvals"
60 }
61
62+# OE qmake.conf is reading some variables from shell env
63+# read them from qmake.conf, replace qmake () syntax with shell and eval
64+getQEvalMakeConf()
65+{
66+ VAL=`getQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
67+ EVAL=`eval "echo ${VAL}"`
68+# echo "Running getQEvalMakeConf: var='$1', val='`getQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2
69+ eval "echo ${VAL}"
70+}
71+
72 getXQMakeConf()
73 {
74 if [ -z "$xspecvals" ]; then
75@@ -325,6 +335,16 @@ getXQMakeConf()
76 getSingleQMakeVariable "$1" "$xspecvals"
77 }
78
79+# OE qmake.conf is reading some variables from shell env
80+# read them from qmake.conf, replace qmake () syntax with shell and eval
81+getXQEvalMakeConf()
82+{
83+ VAL=`getXQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
84+ EVAL=`eval "echo ${VAL}"`
85+# echo "Running getXQEvalMakeConf: var='$1', val='`getXQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2
86+ eval "echo ${VAL}"
87+}
88+
89 compilerSupportsFlag()
90 {
91 cat >conftest.cpp <<EOF
92@@ -541,21 +561,19 @@ fi
93 # initalize variables
94 #-------------------------------------------------------------------------------
95
96-SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
97-for varname in $SYSTEM_VARIABLES; do
98+# Export all OE variables for qmake.conf from shell env to QMakeVars
99+OE_VARIABLES="AR CC CFLAGS COMPILER CXX CXXFLAGS LDFLAGS LINK QT_CONFIG STRIP"
100+for varname in $OE_VARIABLES; do
101 qmakevarname="${varname}"
102- # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
103- if [ "${varname}" = "LDFLAGS" ]; then
104- qmakevarname="LFLAGS"
105- elif [ "${varname}" = "LD" ]; then
106- qmakevarname="LINK"
107- fi
108 cmd=`echo \
109-'if [ -n "\$'${varname}'" ]; then
110- QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
111+'if [ -n "\$OE_QMAKE_'${varname}'" ]; then
112+ QMakeVar set OE_QMAKE_'${qmakevarname}' "\$OE_QMAKE_'${varname}'"
113+# echo "Exporting OE_QMAKE_'${qmakevarname}' value=\"\$OE_QMAKE_'${varname}'\"" >&2
114 fi'`
115 eval "$cmd"
116 done
117+
118+SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
119 # Use CC/CXX to run config.tests
120 mkdir -p "$outpath/config.tests"
121 rm -f "$outpath/config.tests/.qmake.cache"
122@@ -3173,7 +3191,7 @@ if [ "$XPLATFORM_MAC" = "yes" ]; then
123 [ "$CFG_QGTKSTYLE" = "auto" ] && CFG_QGTKSTYLE=no
124 fi
125
126-QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
127+QMAKE_CONF_COMPILER=`getXQEvalMakeConf QMAKE_CXX`
128
129 TEST_COMPILER=$QMAKE_CONF_COMPILER
130
131@@ -3211,7 +3229,7 @@ if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
132 exit 1
133 fi
134 fi
135-TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
136+TEST_COMPILER_CXXFLAGS=`getXQEvalMakeConf QMAKE_CXXFLAGS`
137
138 GCC_MACHINE_DUMP=
139 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
140@@ -3682,6 +3700,14 @@ setBootstrapVariable()
141 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
142 }
143
144+# OE qmake.conf is reading some variables from shell env
145+# read them from qmake.conf, replace qmake () syntax with shell and eval
146+setBootstrapEvalVariable()
147+{
148+ getQEvalMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
149+}
150+
151+
152 # build qmake
153 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
154 echo "Creating qmake..."
155@@ -3720,14 +3746,14 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
156 fi
157
158 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
159- setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
160- setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
161- setBootstrapVariable QMAKE_CFLAGS
162- setBootstrapVariable QMAKE_CFLAGS_SPLIT_SECTIONS
163- setBootstrapVariable QMAKE_CXXFLAGS
164- setBootstrapVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS
165- setBootstrapVariable QMAKE_LFLAGS
166- setBootstrapVariable QMAKE_LFLAGS_GCSECTIONS
167+ setBootstrapEvalVariable QMAKE_CC CC "$CC_TRANSFORM"
168+ setBootstrapEvalVariable QMAKE_CXX CXX "$CC_TRANSFORM"
169+ setBootstrapEvalVariable QMAKE_CFLAGS
170+ setBootstrapEvalVariable QMAKE_CFLAGS_SPLIT_SECTIONS
171+ setBootstrapEvalVariable QMAKE_CXXFLAGS
172+ setBootstrapEvalVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS
173+ setBootstrapEvalVariable QMAKE_LFLAGS
174+ setBootstrapEvalVariable QMAKE_LFLAGS_GCSECTIONS
175
176 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
177 setBootstrapVariable QMAKE_CFLAGS_RELEASE
178diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
179index 6b37a04..dcf6025 100644
180--- a/mkspecs/features/configure.prf
181+++ b/mkspecs/features/configure.prf
182@@ -63,12 +63,12 @@ defineTest(qtCompileTest) {
183 }
184
185 # Clean up after previous run
186- exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean")
187+ exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean")
188
189 mkpath($$test_out_dir)|error("Aborting.")
190
191 qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) -spec $$QMAKESPEC $$qmake_configs $$shell_quote($$test_dir)") {
192- qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE") {
193+ qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS)") {
194 log("yes$$escape_expand(\\n)")
195 msg = "test $$1 succeeded"
196 write_file($$QMAKE_CONFIG_LOG, msg, append)
197diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf
198new file mode 100644
199index 0000000..2ad2810
200--- /dev/null
201+++ b/mkspecs/linux-oe-g++/qmake.conf
202@@ -0,0 +1,40 @@
203+#
204+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
205+#
206+
207+MAKEFILE_GENERATOR = UNIX
208+CONFIG += incremental
209+QMAKE_INCREMENTAL_STYLE = sublib
210+
211+include(../common/linux.conf)
212+
213+# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip
214+QMAKE_AR = $(OE_QMAKE_AR) cqs
215+QMAKE_STRIP = $(OE_QMAKE_STRIP)
216+QMAKE_WAYLAND_SCANNER = $(OE_QMAKE_WAYLAND_SCANNER)
217+
218+include(../common/gcc-base-unix.conf)
219+
220+# *FLAGS from gcc-base.conf
221+QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS)
222+QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS)
223+QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS)
224+
225+include(../common/g++-unix.conf)
226+
227+# tc settings from g++-base.conf
228+QMAKE_COMPILER = $(OE_QMAKE_COMPILER) gcc
229+QMAKE_CC = $(OE_QMAKE_CC)
230+QMAKE_CXX = $(OE_QMAKE_CXX)
231+
232+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS)
233+
234+QMAKE_LINK = $(OE_QMAKE_LINK)
235+QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
236+QMAKE_LINK_C = $(OE_QMAKE_LINK)
237+QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK)
238+
239+# for the SDK
240+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG)
241+
242+load(qt_config)
243diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h
244new file mode 100644
245index 0000000..dd12003
246--- /dev/null
247+++ b/mkspecs/linux-oe-g++/qplatformdefs.h
248@@ -0,0 +1,100 @@
249+/****************************************************************************
250+**
251+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
252+** Contact: http://www.qt-project.org/legal
253+**
254+** This file is part of the qmake spec of the Qt Toolkit.
255+**
256+** $QT_BEGIN_LICENSE:LGPL$
257+** Commercial License Usage
258+** Licensees holding valid commercial Qt licenses may use this file in
259+** accordance with the commercial license agreement provided with the
260+** Software or, alternatively, in accordance with the terms contained in
261+** a written agreement between you and Digia. For licensing terms and
262+** conditions see http://qt.digia.com/licensing. For further information
263+** use the contact form at http://qt.digia.com/contact-us.
264+**
265+** GNU Lesser General Public License Usage
266+** Alternatively, this file may be used under the terms of the GNU Lesser
267+** General Public License version 2.1 as published by the Free Software
268+** Foundation and appearing in the file LICENSE.LGPL included in the
269+** packaging of this file. Please review the following information to
270+** ensure the GNU Lesser General Public License version 2.1 requirements
271+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
272+**
273+** In addition, as a special exception, Digia gives you certain additional
274+** rights. These rights are described in the Digia Qt LGPL Exception
275+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
276+**
277+** GNU General Public License Usage
278+** Alternatively, this file may be used under the terms of the GNU
279+** General Public License version 3.0 as published by the Free Software
280+** Foundation and appearing in the file LICENSE.GPL included in the
281+** packaging of this file. Please review the following information to
282+** ensure the GNU General Public License version 3.0 requirements will be
283+** met: http://www.gnu.org/copyleft/gpl.html.
284+**
285+**
286+** $QT_END_LICENSE$
287+**
288+****************************************************************************/
289+
290+#ifndef QPLATFORMDEFS_H
291+#define QPLATFORMDEFS_H
292+
293+// Get Qt defines/settings
294+
295+#include "qglobal.h"
296+
297+// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
298+
299+// 1) need to reset default environment if _BSD_SOURCE is defined
300+// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0
301+// 3) it seems older glibc need this to include the X/Open stuff
302+#ifndef _GNU_SOURCE
303+# define _GNU_SOURCE
304+#endif
305+
306+#include <unistd.h>
307+
308+
309+// We are hot - unistd.h should have turned on the specific APIs we requested
310+
311+#include <features.h>
312+#include <pthread.h>
313+#include <dirent.h>
314+#include <fcntl.h>
315+#include <grp.h>
316+#include <pwd.h>
317+#include <signal.h>
318+
319+#include <sys/types.h>
320+#include <sys/ioctl.h>
321+#include <sys/ipc.h>
322+#include <sys/time.h>
323+#include <sys/shm.h>
324+#include <sys/socket.h>
325+#include <sys/stat.h>
326+#include <sys/wait.h>
327+#include <netinet/in.h>
328+#ifndef QT_NO_IPV6IFNAME
329+#include <net/if.h>
330+#endif
331+
332+#define QT_USE_XOPEN_LFS_EXTENSIONS
333+#include "../common/posix/qplatformdefs.h"
334+
335+#undef QT_SOCKLEN_T
336+
337+#if defined(__GLIBC__) && (__GLIBC__ >= 2)
338+#define QT_SOCKLEN_T socklen_t
339+#else
340+#define QT_SOCKLEN_T int
341+#endif
342+
343+#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
344+#define QT_SNPRINTF ::snprintf
345+#define QT_VSNPRINTF ::vsnprintf
346+#endif
347+
348+#endif // QPLATFORMDEFS_H
349--
3502.3.1
351
diff --git a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
deleted file mode 100644
index f8420c04..00000000
--- a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 046ff855191e587ce9263f40bd46183c175b6387 Mon Sep 17 00:00:00 2001
2From: Holger Freyther <zecke@selfish.org>
3Date: Wed, 26 Sep 2012 17:22:30 +0200
4Subject: [PATCH 02/13] qlibraryinfo: allow to set qt.conf from the outside
5 using the environment
6
7Allow to set a qt.conf from the outside using the environment. This allows
8to inject new prefixes and other paths into qmake. This is needed when using
9the same qmake binary to build qt/x11 and qt/embedded
10
11Upstream-Status: Inappropriate [embedded specific]
12 again very OE specific to read everything from environment (reusing the same
13 qmake from sstate and replacing all configured paths in it with qt.conf from
14 environment).
15
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17---
18 src/corelib/global/qlibraryinfo.cpp | 5 ++++-
19 1 file changed, 4 insertions(+), 1 deletion(-)
20
21diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
22index d592032..c418c5e 100644
23--- a/src/corelib/global/qlibraryinfo.cpp
24+++ b/src/corelib/global/qlibraryinfo.cpp
25@@ -138,7 +138,10 @@ QLibrarySettings::QLibrarySettings()
26
27 QSettings *QLibraryInfoPrivate::findConfiguration()
28 {
29- QString qtconfig = QStringLiteral(":/qt/etc/qt.conf");
30+ QByteArray config = getenv("QT_CONF_PATH");
31+ QString qtconfig = QFile::decodeName(config);
32+ if(!QFile::exists(qtconfig))
33+ qtconfig = QStringLiteral(":/qt/etc/qt.conf");
34 #ifdef QT_BOOTSTRAPPED
35 if(!QFile::exists(qtconfig))
36 qtconfig = qt_libraryInfoFile();
37--
382.3.1
39
diff --git a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
deleted file mode 100644
index ff269677..00000000
--- a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
+++ /dev/null
@@ -1,233 +0,0 @@
1From 6c015d77a95910deec0a8c4a265587578531b476 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 6 Apr 2013 13:15:07 +0200
4Subject: [PATCH 03/13] Add -external-hostbindir option
5
6* when cross-compiling it's sometimes useful to use existing tools from machine
7 (or in OpenEmbedded built with separate native recipe) when building for target
8
9* this way we can skip bootstraping tools we already have
10
11* qt_functions: temporary remove isEmpty check
12* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value
13* isEmpty works correctly only with qmake variables (e.g. $$FOO -
14 isEmpty(FOO)), but doesn't work with system properties like $$[FOO].
15
16* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries
17
18Upstream-Status: Pending
19 is a lot better for upstreaming (and it was already sort of approved by
20 Oswald) but in 5.2.0 I've noticed that he added something similar for
21 android builds
22
23Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
24Signed-off-by: Simon Busch <morphis@gravedo.de>
25Signed-off-by: Jonathan Liu <net147@gmail.com>
26---
27 configure | 15 +++++++++++++++
28 mkspecs/features/qt_functions.prf | 6 +++++-
29 mkspecs/features/qt_tool.prf | 4 ++--
30 qtbase.pro | 13 ++++++++++---
31 src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++---
32 src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++--
33 src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +-
34 7 files changed, 38 insertions(+), 12 deletions(-)
35
36diff --git a/configure b/configure
37index 0bcc175..996ce50 100755
38--- a/configure
39+++ b/configure
40@@ -769,6 +769,7 @@ QT_HOST_BINS=
41 QT_HOST_LIBS=
42 QT_HOST_DATA=
43 QT_EXT_PREFIX=
44+QT_EXTERNAL_HOST_BINS=
45
46 #flags for SQL drivers
47 QT_CFLAGS_PSQL=
48@@ -888,6 +889,7 @@ while [ "$#" -gt 0 ]; do
49 -testsdir| \
50 -hostdatadir| \
51 -hostbindir| \
52+ -external-hostbindir| \
53 -hostlibdir| \
54 -extprefix| \
55 -sysroot| \
56@@ -1102,6 +1104,9 @@ while [ "$#" -gt 0 ]; do
57 extprefix)
58 QT_EXT_PREFIX="$VAL"
59 ;;
60+ external-hostbindir)
61+ QT_EXTERNAL_HOST_BINS="$VAL"
62+ ;;
63 pkg-config)
64 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
65 CFG_PKGCONFIG="$VAL"
66@@ -2265,6 +2270,10 @@ Installation options:
67 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
68 (default HOSTPREFIX)
69
70+ -external-hostbindir <dir> Use external host executables instead of building them
71+ (not used by defaut)
72+
73+
74 Configure options:
75
76 The defaults (*) are usually acceptable. A plus (+) denotes a default value
77@@ -2944,6 +2953,11 @@ fi
78 # command line and environment validation
79 #-------------------------------------------------------------------------------
80
81+# default is empty, don't call makeabs if it is empty
82+if [ ! -z "$QT_EXTERNAL_HOST_BINS" ]; then
83+ QT_EXTERNAL_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_EXTERNAL_HOST_BINS"`
84+fi
85+
86 # update QT_CONFIG to show our current predefined configuration
87 CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h
88 case "$CFG_QCONFIG" in
89@@ -3644,6 +3658,7 @@ static const char qt_configure_prefix_path_strs[][256 + 12] = {
90 "qt_hbinpath=$QT_HOST_BINS",
91 "qt_hlibpath=$QT_HOST_LIBS",
92 "qt_hdatpath=$QT_HOST_DATA",
93+ "qt_ebinpath=$QT_EXTERNAL_HOST_BINS",
94 "qt_targspec=$shortxspec",
95 "qt_hostspec=$shortspec",
96 #endif
97diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
98index 7961f65..e11b23d 100644
99--- a/mkspecs/features/qt_functions.prf
100+++ b/mkspecs/features/qt_functions.prf
101@@ -192,7 +192,11 @@ defineTest(qtAddRpathLink) {
102 defineTest(qtPrepareTool) {
103 cmd = $$eval(QT_TOOL.$${2}.binary)
104 isEmpty(cmd) {
105- cmd = $$[QT_HOST_BINS]/$$2
106+ QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
107+ isEmpty(QT_EXTERNAL_HOST_BINS): \
108+ cmd = $$[QT_HOST_BINS]/$$2
109+ else: \
110+ cmd = $$[QT_EXTERNAL_HOST_BINS]/$$2
111 exists($${cmd}.pl) {
112 cmd = perl -w $$system_path($${cmd}.pl)
113 } else: contains(QMAKE_HOST.os, Windows) {
114diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
115index 1d3e88c..9b26adf 100644
116--- a/mkspecs/features/qt_tool.prf
117+++ b/mkspecs/features/qt_tool.prf
118@@ -12,11 +12,11 @@
119 load(qt_app)
120
121 CONFIG += console
122+QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
123
124 # If we are doing a prefix build, create a "module" pri which enables
125 # qtPrepareTool() to work with the non-installed build.
126-# Non-bootstrapped tools always need this because of the environment setup.
127-!build_pass:if(!host_build|!force_bootstrap|force_independent) {
128+!build_pass:if(!host_build|!force_bootstrap|force_independent):isEmpty(QT_EXTERNAL_HOST_BINS) {
129 isEmpty(MODULE):MODULE = $$TARGET
130
131 !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
132diff --git a/qtbase.pro b/qtbase.pro
133index 6d0de44..ddf7478 100644
134--- a/qtbase.pro
135+++ b/qtbase.pro
136@@ -69,18 +69,25 @@ CONFIG -= qt
137
138 ### installations ####
139
140+QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
141+
142 #qmake
143 qmake.path = $$[QT_HOST_BINS]
144+qmake.files = $$OUT_PWD/bin/qmake
145+!isEmpty(QT_EXTERNAL_HOST_BINS) {
146+ qmake.files = $$[QT_EXTERNAL_HOST_BINS]/qmake
147+}
148 equals(QMAKE_HOST.os, Windows) {
149- qmake.files = $$OUT_PWD/bin/qmake.exe
150-} else {
151- qmake.files = $$OUT_PWD/bin/qmake
152+ qmake.files = $${qmake.files}.exe
153 }
154 INSTALLS += qmake
155
156 #syncqt
157 syncqt.path = $$[QT_HOST_BINS]
158 syncqt.files = $$PWD/bin/syncqt.pl
159+!isEmpty(QT_EXTERNAL_HOST_BINS) {
160+ syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/syncqt.pl
161+}
162 INSTALLS += syncqt
163
164 # If we are doing a prefix build, create a "module" pri which enables
165diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
166index 9bda70e..6e3605a 100644
167--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
168+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
169@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake)
170 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
171 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
172 !!ELSE
173- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
174+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\")
175 !!ENDIF
176 _qt5_Core_check_file_exists(${imported_location})
177
178@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc)
179 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
180 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
181 !!ELSE
182- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
183+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\")
184 !!ENDIF
185 _qt5_Core_check_file_exists(${imported_location})
186
187@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc)
188 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
189 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
190 !!ELSE
191- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
192+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\")
193 !!ENDIF
194 _qt5_Core_check_file_exists(${imported_location})
195
196diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
197index 1d94715..301af8f 100644
198--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
199+++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
200@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml)
201 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
202 set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
203 !!ELSE
204- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
205+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
206 !!ENDIF
207 _qt5_DBus_check_file_exists(${imported_location})
208
209@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp)
210 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
211 set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
212 !!ELSE
213- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
214+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
215 !!ENDIF
216 _qt5_DBus_check_file_exists(${imported_location})
217
218diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
219index 99d87e2..5621dc0 100644
220--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
221+++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
222@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic)
223 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
224 set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
225 !!ELSE
226- set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
227+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\")
228 !!ENDIF
229 _qt5_Widgets_check_file_exists(${imported_location})
230
231--
2322.3.1
233
diff --git a/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch b/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch
deleted file mode 100644
index 45fca3aa..00000000
--- a/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch
+++ /dev/null
@@ -1,114 +0,0 @@
1From 55e85e61eb93bce5b84f856ea5cc47af73e01a1d Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 27 Apr 2013 23:15:37 +0200
4Subject: [PATCH 04/13] qt_module: Fix pkgconfig and libtool replacements
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9* in situation like this:
10 QT_SYSROOT:/OE/oe-core/tmp-eglibc/sysroots/qemuarm
11 QT_INSTALL_LIBS:/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib
12 QT_INSTALL_LIBS/raw:/usr/lib
13 QT_INSTALL_LIBS/get:/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib
14
15 I don't want the replacement like this:
16 sed
17 -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/include,/usr/include/qt5,g"
18 -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib,/usr/lib,g"
19 "../../lib/pkgconfig/Qt5Core.pc"
20 >"/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/image/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib/pkgconfig/Qt5Core.pc"
21 because that way I'll end with -L/usr/lib in .pc file which is
22 cross-compile unfriendly, keeping ${libdir}/${includedir} works better
23 in my case
24
25* qt_module: Fix paths in .prl files
26* qmake does not prefix them with QT_SYSROOT when using them
27 so e.g. when building qtdeclarative we get -L/usr/lib to LINKAGE
28 variable, which is unsafe for cross-compilation
29* writting QT_SYSROOT in .prl files is dangerous for sstate when
30 builds are in different directories, so we need
31 SSTATE_SCAN_FILES += "*.pri *.prl"
32 to make them relocateble
33
34* fix paths in packageconfig files
35 This reverts parts of:
36
37 enable path replacement in installed prl files on all platforms
38
39 Task-number: QTBUG-33794
40 Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b
41 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
42
43* to debug this, rebuild qtbase and read build/src/corelib/Makefile
44* this is example of broken install_target rule (added line feeds):
45 -$(SED) -e s,/OE/5.3.1-r0/build/lib,/usr/lib,g
46 -e 's,/OE/5.3.1-r0/build/include,$$\{includedir},g'
47 -e 's,/OE/5.3.1-r0/build/lib,$$\{libdir},g'
48 "../../lib/pkgconfig/Qt5Core.pc"
49 >"$(INSTALL_ROOT)/usr/lib/pkgconfig/Qt5Core.pc"
50 change .prf files, create copy of WORKDIR, re-excecute only
51 do_configure task and compare generated Makefile, repeat until
52 replace in generated Makefile works ok, then refresh patch and
53 try complete rebuild for qtbase
54* if everything is ok, then try:
55 image $ grep -R "\-L/usr" .
56 image $ grep -R "\-I/usr" .
57 and it should return only few cases of
58 qmake.conf:QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
59 for aix* platformas
60
61Change-Id: Ie1c94b15f2a4e736b65b4d0924d99eb2a7d92a6c
62Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
63Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
64---
65 mkspecs/features/qt_common.prf | 2 +-
66 mkspecs/features/qt_module.prf | 15 +++++++++++++++
67 2 files changed, 16 insertions(+), 1 deletion(-)
68
69diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
70index eb65e73..4db40d0 100644
71--- a/mkspecs/features/qt_common.prf
72+++ b/mkspecs/features/qt_common.prf
73@@ -33,7 +33,7 @@ contains(TEMPLATE, .*lib) {
74 lib_replace.replace =
75 } else {
76 lib_replace.match = $$rplbase/lib
77- lib_replace.replace = $$qt_libdir
78+ lib_replace.replace = "\$$\\{libdir}"
79 }
80 lib_replace.CONFIG = path
81 QMAKE_PRL_INSTALL_REPLACE += lib_replace
82diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
83index d213f9e..915c596 100644
84--- a/mkspecs/features/qt_module.prf
85+++ b/mkspecs/features/qt_module.prf
86@@ -192,10 +192,25 @@ unix|mingw {
87 QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module
88 QMAKE_PKGCONFIG_INSTALL_REPLACE += lib_replace
89
90+ pkgconfig_include_replace.match = $$rplbase/include
91+ pkgconfig_include_replace.replace = "\$$\\{includedir}"
92+ pkgconfig_include_replace.CONFIG = path
93+ QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace
94+
95 unix {
96 CONFIG += create_libtool explicitlib
97 QMAKE_LIBTOOL_LIBDIR = $$qt_libdir
98 QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace
99+ # add '=' as sysroot in .la files
100+ lafile_replace.match = "-L\$${libdir}"
101+ lafile_replace.replace = "-L=\$$\\{libdir}"
102+ lafile_replace.CONFIG = path
103+ QMAKE_LIBTOOL_INSTALL_REPLACE += lafile_replace
104+ # drop -L/usr/lib in .prl files
105+ prl_replace.match = "-L\$${libdir}"
106+ prl_replace.replace = ""
107+ prl_replace.CONFIG = path
108+ QMAKE_PRL_INSTALL_REPLACE += prl_replace
109 }
110 }
111
112--
1132.3.1
114
diff --git a/recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch b/recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch
deleted file mode 100644
index 4a71e0f2..00000000
--- a/recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch
+++ /dev/null
@@ -1,97 +0,0 @@
1From 129d2a82da2ef6eede761967d981c5edcc0820d8 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Mon, 21 Apr 2014 19:22:04 +0200
4Subject: [PATCH 05/13] Revert "eglfs: Print the chosen config in debug mode"
5
6With this change the build is failing with:
7| In file included from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/eglplatform.h:118:0,
8| from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/egl.h:36,
9| from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformcontext_p.h:51,
10| from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformcontext.cpp:34:
11| ../../include/QtCore/../../../git/src/corelib/io/qtextstream.h:72:10: error: expected identifier before 'int'
12| enum Status {
13| ^
14| In file included from ../../include/QtCore/qtextstream.h:1:0,
15| from ../../include/QtCore/../../../git/src/corelib/io/qdebug.h:42,
16| from ../../include/QtCore/qdebug.h:1,
17| from ../../include/QtCore/QDebug:1,
18| from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformcontext.cpp:40:
19| ../../include/QtCore/../../../git/src/corelib/io/qtextstream.h:72:17: error: expected unqualified-id before '{' token
20| enum Status {
21| ^
22| Makefile:3896: recipe for target '.obj/qeglplatformcontext.o' failed
23| make[2]: *** [.obj/qeglplatformcontext.o] Error 1
24| make[2]: *** Waiting for unfinished jobs....
25| /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp:196:5: error: 'Display' redeclared as different kind of symbol
26| Display
27| ^
28| In file included from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/eglplatform.h:118:0,
29| from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/egl.h:36,
30| from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration_p.h:51,
31| from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp:55:
32| /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/X11/Xlib.h:499:26: note: previous declaration 'typedef struct _XDisplay Display'
33| typedef struct _XDisplay Display;
34| ^
35| /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp: In member function 'virtual void* QEGLPlatformIntegration::nativeResourceForScreen(const QByteArray&, QScreen*)':
36| /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp:239:17: error: expected primary-expression before ':' token
37| case Display:
38| ^
39| Makefile:5486: recipe for target '.obj/qeglplatformintegration.o' failed
40
41This reverts commit dc685cf6331f5fb46285cf10d6464c2ecf41f73e.
42
43Will be partially resolved in newer revision with:
44https://codereview.qt-project.org/96220
45
46Change-Id: I7a6a926b7525d4f137824c71f2ec8cd089c21f13
47Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
48---
49 src/platformsupport/eglconvenience/qeglconvenience.cpp | 4 +++-
50 src/platformsupport/eglconvenience/qeglplatformcontext.cpp | 7 -------
51 2 files changed, 3 insertions(+), 8 deletions(-)
52
53diff --git a/src/platformsupport/eglconvenience/qeglconvenience.cpp b/src/platformsupport/eglconvenience/qeglconvenience.cpp
54index c1a491c..7a0fc87 100644
55--- a/src/platformsupport/eglconvenience/qeglconvenience.cpp
56+++ b/src/platformsupport/eglconvenience/qeglconvenience.cpp
57@@ -443,9 +443,11 @@ void q_printEglConfig(EGLDisplay display, EGLConfig config)
58 for (index = 0; attrs[index].attr != -1; ++index) {
59 EGLint value;
60 if (eglGetConfigAttrib(display, config, attrs[index].attr, &value)) {
61- qDebug("\t%s: %d", attrs[index].name, (int)value);
62+ qWarning("\t%s: %d\n", attrs[index].name, (int)value);
63 }
64 }
65+
66+ qWarning("\n");
67 }
68
69 #ifdef Q_OS_UNIX
70diff --git a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp
71index 7cc3300..ccbd974a 100644
72--- a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp
73+++ b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp
74@@ -37,7 +37,6 @@
75 #include <qpa/qplatformwindow.h>
76 #include <QOpenGLContext>
77 #include <QtPlatformHeaders/QEGLNativeContext>
78-#include <QDebug>
79
80 QT_BEGIN_NAMESPACE
81
82@@ -181,12 +180,6 @@ void QEGLPlatformContext::init(const QSurfaceFormat &format, QPlatformOpenGLCont
83 return;
84 }
85
86- static const bool printConfig = qgetenv("QT_QPA_EGLFS_DEBUG").toInt();
87- if (printConfig) {
88- qDebug() << "Created context for format" << format << "with config:";
89- q_printEglConfig(m_eglDisplay, m_eglConfig);
90- }
91-
92 updateFormatFromGL();
93 }
94
95--
962.3.1
97
diff --git a/recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch b/recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch
deleted file mode 100644
index 84e5dbac..00000000
--- a/recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From f2092e73beaffe163a5c7f66f73956477f0d97a1 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Wed, 19 Mar 2014 18:32:28 +0100
4Subject: [PATCH 06/13] qeglplatformintegration: Undefine CursorShape from X.h
5
6Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
7---
8 src/platformsupport/eglconvenience/qeglplatformintegration_p.h | 6 ++++++
9 1 file changed, 6 insertions(+)
10
11diff --git a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
12index 4d7adce..c9b6873 100644
13--- a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
14+++ b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
15@@ -50,6 +50,12 @@
16 #include <QtCore/QVariant>
17 #include <EGL/egl.h>
18
19+// Undefine CursorShape from X.h, which is causing breakage in Qt::CursorShape in platformsupport/eglconvenience/
20+// /usr/include/X11/X.h:#define CursorShape 0 /* largest size that can be displayed */
21+#ifdef CursorShape
22+#undef CursorShape
23+#endif
24+
25 QT_BEGIN_NAMESPACE
26
27 class QEGLPlatformScreen;
28--
292.3.1
30
diff --git a/recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch b/recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch
deleted file mode 100644
index 1bbda758..00000000
--- a/recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 24e36583f44a17ce6d21e4392dd4f6a83ea9846a Mon Sep 17 00:00:00 2001
2From: Denys Dmytriyenko <denys@ti.com>
3Date: Mon, 11 Nov 2013 20:27:30 -0500
4Subject: [PATCH 07/13] configure: bump path length from 256 to 512 characters
5
6Increase the path length that gets hardcoded into generated config.cpp file
7from 256 to 512 characters, as nativesdk path can be quite long.
8
9Signed-off-by: Denys Dmytriyenko <denys@ti.com>
10---
11 configure | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/configure b/configure
15index 996ce50..a40d471 100755
16--- a/configure
17+++ b/configure
18@@ -3622,7 +3622,7 @@ static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$
19 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
20
21 /* Installation Info */
22-static const char qt_configure_prefix_path_strs[][256 + 12] = {
23+static const char qt_configure_prefix_path_strs[][512 + 12] = {
24 #ifndef QT_BUILD_QMAKE
25 "qt_prfxpath=$QT_SYSROOT_PREFIX",
26 "qt_docspath=$QT_SYSROOT_DOCS",
27--
282.3.1
29
diff --git a/recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch b/recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch
deleted file mode 100644
index f908e780..00000000
--- a/recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch
+++ /dev/null
@@ -1,72 +0,0 @@
1From 7886d849487f0c0bbfa54f9ef9708fdc9cc84c04 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Wed, 5 Feb 2014 18:35:08 +0100
4Subject: [PATCH 08/13] eglfs: fix egl error for platforms only supporting one
5 window/surface
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10running qmlscene -platform eglfs <filename>.qml
11
12caused
13
14EGL Error : Could not create the egl surface: error = 0x3003
15
16Rebased version of [1-2]
17
18Upstream-Status: unknown
19
20[1] http://repository.timesys.com/buildsources/q/qt-everywhere-opensource/qt-everywhere-opensource-5.1.1/qt-everywhere-opensource-5.1.1-qeglfswindow.cpp.patch
21[2] https://github.com/prabindh/qt-configs/blob/master/qt5_1.0_Feb13/qeglfswindow.cpp.patch
22
23Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
24Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
25---
26 src/plugins/platforms/eglfs/qeglfswindow.cpp | 16 +++++++++++++++-
27 1 file changed, 15 insertions(+), 1 deletion(-)
28
29diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp
30index f5839e0..5ebde6d 100644
31--- a/src/plugins/platforms/eglfs/qeglfswindow.cpp
32+++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp
33@@ -66,6 +66,15 @@ void QEglFSWindow::create()
34
35 m_flags = Created;
36
37+ static EGLSurface __singleWindowSurface;
38+ if(QEglFSHooks::hooks() && ! QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::MultipleWindows) && (__singleWindowSurface)) {
39+ m_surface = __singleWindowSurface;
40+#ifdef QEGL_EXTRA_DEBUG
41+ qWarning("Surface recreate request, re-using %x\n", m_surface);
42+#endif
43+ return;
44+ }
45+
46 if (window()->type() == Qt::Desktop)
47 return;
48
49@@ -79,7 +88,7 @@ void QEglFSWindow::create()
50 return;
51 }
52
53-#if !defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK)
54+#if !defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK) || defined(EGL_API_FB)
55 // We can have either a single OpenGL window or multiple raster windows.
56 // Other combinations cannot work.
57 qFatal("EGLFS: OpenGL windows cannot be mixed with others.");
58@@ -99,6 +108,11 @@ void QEglFSWindow::create()
59
60 resetSurface();
61
62+ if(QEglFSHooks::hooks() && !QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::MultipleWindows))
63+ {
64+ __singleWindowSurface = m_surface;
65+ }
66+
67 screen->setPrimarySurface(m_surface);
68
69 if (isRaster()) {
70--
712.3.1
72
diff --git a/recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch b/recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch
deleted file mode 100644
index f7062ffe..00000000
--- a/recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch
+++ /dev/null
@@ -1,157 +0,0 @@
1From 47ee1da94f74c46fd692bcd55c2770f6c3be92f3 Mon Sep 17 00:00:00 2001
2From: Jani Hautakangas <jani.hautakangas@ixonos.com>
3Date: Thu, 16 May 2013 09:52:07 +0300
4Subject: [PATCH 09/13] QOpenGLPaintDevice sub-area support
5
6Allows creating QOpenGLPaintDevice targetting sub-area
7of binded framebuffer.
8
9Upstream-Status: Pending
10
11Change-Id: Ida2f079aa1ac0b87d36b54129e226399dbcdda80
12
13Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
14---
15 src/gui/opengl/qopenglpaintdevice.cpp | 11 +++++++++++
16 src/gui/opengl/qopenglpaintdevice.h | 2 ++
17 src/gui/opengl/qopenglpaintdevice_p.h | 1 +
18 src/gui/opengl/qopenglpaintengine.cpp | 9 +++++++--
19 src/gui/opengl/qopenglpaintengine_p.h | 1 +
20 src/gui/opengl/qopengltextureglyphcache.cpp | 2 +-
21 6 files changed, 23 insertions(+), 3 deletions(-)
22
23diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp
24index a08d26f..cff3155 100644
25--- a/src/gui/opengl/qopenglpaintdevice.cpp
26+++ b/src/gui/opengl/qopenglpaintdevice.cpp
27@@ -135,6 +135,12 @@ QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height)
28 {
29 }
30
31+QOpenGLPaintDevice::QOpenGLPaintDevice(int x, int y, int width, int height)
32+ : d_ptr(new QOpenGLPaintDevicePrivate(QSize(width, height)))
33+{
34+ d_ptr->offset = QPoint(x,y);
35+}
36+
37 /*!
38 \internal
39 */
40@@ -212,6 +218,11 @@ QOpenGLContext *QOpenGLPaintDevice::context() const
41 return d_ptr->ctx;
42 }
43
44+QPoint QOpenGLPaintDevice::offset() const
45+{
46+ return d_ptr->offset;
47+}
48+
49 /*!
50 Returns the pixel size of the paint device.
51
52diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h
53index 10cee84..a6683c5 100644
54--- a/src/gui/opengl/qopenglpaintdevice.h
55+++ b/src/gui/opengl/qopenglpaintdevice.h
56@@ -53,12 +53,14 @@ public:
57 QOpenGLPaintDevice();
58 explicit QOpenGLPaintDevice(const QSize &size);
59 QOpenGLPaintDevice(int width, int height);
60+ QOpenGLPaintDevice(int x, int y, int width, int height);
61 virtual ~QOpenGLPaintDevice();
62
63 int devType() const { return QInternal::OpenGL; }
64 QPaintEngine *paintEngine() const;
65
66 QOpenGLContext *context() const;
67+ QPoint offset() const;
68 QSize size() const;
69 void setSize(const QSize &size);
70 void setDevicePixelRatio(qreal devicePixelRatio);
71diff --git a/src/gui/opengl/qopenglpaintdevice_p.h b/src/gui/opengl/qopenglpaintdevice_p.h
72index 0b01129..211f2f3 100644
73--- a/src/gui/opengl/qopenglpaintdevice_p.h
74+++ b/src/gui/opengl/qopenglpaintdevice_p.h
75@@ -65,6 +65,7 @@ public:
76
77 public:
78 QSize size;
79+ QPoint offset;
80 QOpenGLContext *ctx;
81
82 qreal dpmx;
83diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp
84index 8eeaa31..e17520e 100644
85--- a/src/gui/opengl/qopenglpaintengine.cpp
86+++ b/src/gui/opengl/qopenglpaintengine.cpp
87@@ -2080,7 +2080,10 @@ bool QOpenGL2PaintEngineEx::begin(QPaintDevice *pdev)
88 for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i)
89 d->vertexAttributeArraysEnabledState[i] = false;
90
91+ const QPoint offset = d->device->offset();
92 const QSize sz = d->device->size();
93+ d->x = offset.x();
94+ d->y = offset.y();
95 d->width = sz.width();
96 d->height = sz.height();
97 d->mode = BrushDrawingMode;
98@@ -2167,7 +2170,7 @@ void QOpenGL2PaintEngineEx::ensureActive()
99 d->device->ensureActiveTarget();
100
101 d->transferMode(BrushDrawingMode);
102- d->funcs.glViewport(0, 0, d->width, d->height);
103+ d->funcs.glViewport(d->x, d->y, d->width, d->height);
104 d->needsSync = false;
105 d->shaderManager->setDirty();
106 d->syncGlState();
107@@ -2209,6 +2212,7 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
108 if (bounds == QRect(0, 0, width, height)) {
109 funcs.glDisable(GL_SCISSOR_TEST);
110 } else {
111+ bounds = QRect(bounds.x(), bounds.y(), bounds.width(), bounds.height());
112 funcs.glEnable(GL_SCISSOR_TEST);
113 setScissor(bounds);
114 }
115@@ -2217,12 +2221,13 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
116
117 void QOpenGL2PaintEngineExPrivate::setScissor(const QRect &rect)
118 {
119- const int left = rect.left();
120+ const int left = rect.left() + x;
121 const int width = rect.width();
122 int bottom = height - (rect.top() + rect.height());
123 if (device->paintFlipped()) {
124 bottom = rect.top();
125 }
126+ bottom += y;
127 const int height = rect.height();
128
129 funcs.glScissor(left, bottom, width, height);
130diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h
131index 9722ea3..07e3163 100644
132--- a/src/gui/opengl/qopenglpaintengine_p.h
133+++ b/src/gui/opengl/qopenglpaintengine_p.h
134@@ -264,6 +264,7 @@ public:
135 QOpenGL2PaintEngineEx* q;
136 QOpenGLEngineShaderManager* shaderManager;
137 QOpenGLPaintDevice* device;
138+ int x, y;
139 int width, height;
140 QOpenGLContext *ctx;
141 EngineMode mode;
142diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp
143index cd268cd..997bc35 100644
144--- a/src/gui/opengl/qopengltextureglyphcache.cpp
145+++ b/src/gui/opengl/qopengltextureglyphcache.cpp
146@@ -310,7 +310,7 @@ void QOpenGLTextureGlyphCache::resizeTextureData(int width, int height)
147 funcs->glBindFramebuffer(GL_FRAMEBUFFER, (GLuint)oldFbo);
148
149 if (pex != 0) {
150- funcs->glViewport(0, 0, pex->width, pex->height);
151+ funcs->glViewport(pex->x, pex->y, pex->width, pex->height);
152 pex->updateClipScissorTest();
153 } else {
154 if (m_vao.isCreated()) {
155--
1562.3.1
157
diff --git a/recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch b/recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch
deleted file mode 100644
index 188ae157..00000000
--- a/recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1From d6158c2cb6ce64af531246636c3b2adb35afeb72 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Thu, 18 Dec 2014 13:41:09 +0100
4Subject: [PATCH 10/13] Make Qt5GuiConfigExtras.cmake find gl(es) include dir
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9In configure QMAKE_INCDIR_OPENGL is set with pkg-config. Without
10PKG_CONFIG_ALLOW_SYSTEM_CFLAGS set, pkg-config returns paths outside
11/usr/include only (in my case /usr/include/libdrm). With NO_DEFAULT_PATH set
12gl(es) include directories cannot be found. Cmake builds depending on
13Qt5Gui error out with
14
15| Failed to find "GLES2/gl2.h" in "/usr/include/libdrm"
16
17Upstream-Status: submitted [1]
18
19[1] https://bugreports.qt-project.org/browse/QTBUG-43445
20
21Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
22---
23 src/gui/Qt5GuiConfigExtras.cmake.in | 3 ---
24 1 file changed, 3 deletions(-)
25
26diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
27index 9a846d4..07869ef 100644
28--- a/src/gui/Qt5GuiConfigExtras.cmake.in
29+++ b/src/gui/Qt5GuiConfigExtras.cmake.in
30@@ -57,9 +57,6 @@ set(Qt5Gui_OPENGL_LIBRARIES Qt5::Gui_GLESv2)
31 set(_GL_INCDIRS $$CMAKE_GL_INCDIRS)
32 find_path(_qt5gui_OPENGL_INCLUDE_DIR $$CMAKE_GL_HEADER_NAME
33 PATHS ${_GL_INCDIRS}
34-!!IF !mac
35- NO_DEFAULT_PATH
36-!!ENDIF
37 )
38 if (NOT _qt5gui_OPENGL_INCLUDE_DIR)
39 message(FATAL_ERROR \"Failed to find \\\"$$CMAKE_GL_HEADER_NAME\\\" in \\\"${_GL_INCDIRS}\\\".\")
40--
412.3.1
42
diff --git a/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch b/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch
deleted file mode 100644
index b0870c85..00000000
--- a/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From fa0cf613bc9ef4de65de12791eedc337de85d911 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 16 Nov 2013 00:32:30 +0100
4Subject: [PATCH 11/13] Always build uic
5
6Even if we are not building gui or widgets. This tool is needed later
7as a native tool when compiling the target.
8
9Change-Id: I257668ac28c22b192e7ec7736e6c23fa3be6bab6
10Signed-off-by: Mikko Levonmaa <mikko.levonmaa@palm.com>
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 src/src.pro | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/src/src.pro b/src/src.pro
17index 83f7587..9dbcf70 100644
18--- a/src/src.pro
19+++ b/src/src.pro
20@@ -163,7 +163,7 @@ contains(QT_CONFIG, concurrent):SUBDIRS += src_concurrent
21 }
22 }
23 }
24-SUBDIRS += src_plugins src_tools_qdoc
25+SUBDIRS += src_plugins src_tools_qdoc src_tools_uic
26
27 nacl: SUBDIRS -= src_network src_testlib
28
29--
302.3.1
31
diff --git a/recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch b/recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch
deleted file mode 100644
index 874bc697..00000000
--- a/recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch
+++ /dev/null
@@ -1,68 +0,0 @@
1From 7943ec2256163f6049d442ff00f579a5cbff5acc Mon Sep 17 00:00:00 2001
2From: Michael Krelin <hacker@klever.net>
3Date: Mon, 29 Oct 2012 20:07:49 -0700
4Subject: [PATCH 11/13] qmake: don't build it in configure, but allow to build
5 it separately
6
7* it is already built in qtbase-native, so we don't need it in configure
8* allow building a separate qmake for the target
9
10Upstream-Status: Inappropriate [configuration]
11 OE specific for native/target builds
12
13Signed-off-by: Yu Ke <ke.yu@intel.com>
14Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
15Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17 configure | 2 +-
18 qmake/qmake.pri | 3 ++-
19 qmake/qmake.pro | 2 ++
20 3 files changed, 5 insertions(+), 2 deletions(-)
21---
22 configure | 2 +-
23 qmake/qmake.pri | 3 ++-
24 qmake/qmake.pro | 1 +
25 3 files changed, 4 insertions(+), 2 deletions(-)
26
27diff --git a/configure b/configure
28index a40d471..8d15f59 100755
29--- a/configure
30+++ b/configure
31@@ -3724,7 +3724,7 @@ setBootstrapEvalVariable()
32
33
34 # build qmake
35-if true; then ###[ '!' -f "$outpath/bin/qmake" ];
36+if false; then ###[ '!' -f "$outpath/bin/qmake" ];
37 echo "Creating qmake..."
38
39 mkdir -p "$outpath/qmake" || exit
40diff --git a/qmake/qmake.pri b/qmake/qmake.pri
41index 4de41d6..69982b7 100644
42--- a/qmake/qmake.pri
43+++ b/qmake/qmake.pri
44@@ -82,7 +82,8 @@ bootstrap { #Qt code
45 qjsonparser.cpp \
46 qjsonarray.cpp \
47 qjsonobject.cpp \
48- qjsonvalue.cpp
49+ qjsonvalue.cpp \
50+ qdebug.cpp
51
52 HEADERS+= \
53 qbitarray.h \
54diff --git a/qmake/qmake.pro b/qmake/qmake.pro
55index 89d6ea5..0ff4a96 100644
56--- a/qmake/qmake.pro
57+++ b/qmake/qmake.pro
58@@ -8,6 +8,7 @@ CONFIG -= qt
59 DEFINES += \
60 QT_BUILD_QMAKE \
61 PROEVALUATOR_FULL
62+TARGET = qmake
63
64 VPATH += \
65 ../src/corelib/global \
66--
672.3.1
68
diff --git a/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch b/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch
deleted file mode 100644
index 06476cb8..00000000
--- a/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch
+++ /dev/null
@@ -1,108 +0,0 @@
1From 932cb18540fc4634e02d048cf9ab9e519ce0811d Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 6 Apr 2013 13:15:07 +0200
4Subject: [PATCH 12/13] Add -external-hostbindir option for native(sdk)
5
6* when cross-compiling it's sometimes useful to use existing tools from machine
7 (or in OpenEmbedded built with separate native recipe) when building for target
8
9* this way we can skip bootstraping tools we already have
10
11* qt_functions: temporary remove isEmpty check
12* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value
13* isEmpty works correctly only with qmake variables (e.g. $$FOO -
14 isEmpty(FOO)), but doesn't work with system properties like $$[FOO].
15
16* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries
17
18Upstream-Status: Pending
19 is a lot better for upstreaming (and it was already sort of approved by
20 Oswald) but in 5.2.0 I've noticed that he added something similar for
21 android builds
22
23Change-Id: I4f6e634bf0b2cb96065ee5c38b9cd8a224c3bd37
24Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
25Signed-off-by: Simon Busch <morphis@gravedo.de>
26Signed-off-by: Jonathan Liu <net147@gmail.com>
27Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
28---
29 qmake/property.cpp | 1 +
30 src/corelib/global/qlibraryinfo.cpp | 3 ++-
31 src/corelib/global/qlibraryinfo.h | 1 +
32 tools/configure/configureapp.cpp | 8 ++++++++
33 4 files changed, 12 insertions(+), 1 deletion(-)
34
35diff --git a/qmake/property.cpp b/qmake/property.cpp
36index 051e056..50da6ed 100644
37--- a/qmake/property.cpp
38+++ b/qmake/property.cpp
39@@ -67,6 +67,7 @@ static const struct {
40 { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true },
41 { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true },
42 { "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true },
43+ { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true },
44 { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true },
45 { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true },
46 };
47diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
48index c418c5e..c8c4188 100644
49--- a/src/corelib/global/qlibraryinfo.cpp
50+++ b/src/corelib/global/qlibraryinfo.cpp
51@@ -348,7 +348,7 @@ QLibraryInfo::isDebugBuild()
52 */
53
54 static const struct {
55- char key[19], value[13];
56+ char key[21], value[13];
57 } qtConfEntries[] = {
58 { "Prefix", "." },
59 { "Documentation", "doc" }, // should be ${Data}/doc
60@@ -374,6 +374,7 @@ static const struct {
61 { "HostBinaries", "bin" },
62 { "HostLibraries", "lib" },
63 { "HostData", "." },
64+ { "ExternalHostBinaries", "" },
65 { "TargetSpec", "" },
66 { "HostSpec", "" },
67 #endif
68diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h
69index 543c4b3..a02e03a 100644
70--- a/src/corelib/global/qlibraryinfo.h
71+++ b/src/corelib/global/qlibraryinfo.h
72@@ -80,6 +80,7 @@ public:
73 HostBinariesPath,
74 HostLibrariesPath,
75 HostDataPath,
76+ ExternalHostBinariesPath,
77 TargetSpecPath,
78 HostSpecPath,
79 LastHostPath = HostSpecPath,
80diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
81index 6e9d4aa..0ca4daf 100644
82--- a/tools/configure/configureapp.cpp
83+++ b/tools/configure/configureapp.cpp
84@@ -1191,6 +1191,13 @@ void Configure::parseCmdLine()
85 dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i);
86 }
87
88+ else if (configCmdLine.at(i) == "-external-hostbindir") {
89+ ++i;
90+ if (i == argCount)
91+ break;
92+ dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i);
93+ }
94+
95 else if (configCmdLine.at(i) == "-make-tool") {
96 ++i;
97 if (i == argCount)
98@@ -4004,6 +4011,7 @@ void Configure::generateQConfigCpp()
99 << " \"qt_hbinpath=" << formatPath(dictionary["QT_HOST_BINS"]) << "\"," << endl
100 << " \"qt_hlibpath=" << formatPath(dictionary["QT_HOST_LIBS"]) << "\"," << endl
101 << " \"qt_hdatpath=" << formatPath(dictionary["QT_HOST_DATA"]) << "\"," << endl
102+ << " \"qt_ebinpath=" << formatPath(dictionary["QT_EXTERNAL_HOST_BINS"]) << "\"," << endl
103 << " \"qt_targspec=" << targSpec << "\"," << endl
104 << " \"qt_hostspec=" << hostSpec << "\"," << endl
105 << "#endif" << endl
106--
1072.3.1
108
diff --git a/recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch b/recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch
deleted file mode 100644
index 671c6365..00000000
--- a/recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch
+++ /dev/null
@@ -1,72 +0,0 @@
1From 62ec5bc2946911b2cd2f577d58f07f566d84c88d Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Thu, 22 Jan 2015 16:09:35 +0100
4Subject: [PATCH 12/13] Set paths for target properly
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Upstream-Status: Inappropriate [OE specific]
10
11Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
12---
13 configure | 43 +++++++++++++++++++++----------------------
14 1 file changed, 21 insertions(+), 22 deletions(-)
15
16diff --git a/configure b/configure
17index 8d15f59..bf2bac0 100755
18--- a/configure
19+++ b/configure
20@@ -3639,28 +3639,27 @@ static const char qt_configure_prefix_path_strs[][512 + 12] = {
21 "qt_xmplpath=$QT_SYSROOT_EXAMPLES",
22 "qt_tstspath=$QT_SYSROOT_TESTS",
23 #else
24- "qt_prfxpath=$QT_INSTALL_PREFIX",
25- "qt_docspath=$QT_INSTALL_DOCS",
26- "qt_hdrspath=$QT_INSTALL_HEADERS",
27- "qt_libspath=$QT_INSTALL_LIBS",
28- "qt_lbexpath=$QT_INSTALL_LIBEXECS",
29- "qt_binspath=$QT_INSTALL_BINS",
30- "qt_plugpath=$QT_INSTALL_PLUGINS",
31- "qt_impspath=$QT_INSTALL_IMPORTS",
32- "qt_qml2path=$QT_INSTALL_QML",
33- "qt_adatpath=$QT_INSTALL_ARCHDATA",
34- "qt_datapath=$QT_INSTALL_DATA",
35- "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
36- "qt_xmplpath=$QT_INSTALL_EXAMPLES",
37- "qt_tstspath=$QT_INSTALL_TESTS",
38- "qt_ssrtpath=$CFG_SYSROOT",
39- "qt_hpfxpath=$QT_HOST_PREFIX",
40- "qt_hbinpath=$QT_HOST_BINS",
41- "qt_hlibpath=$QT_HOST_LIBS",
42- "qt_hdatpath=$QT_HOST_DATA",
43- "qt_ebinpath=$QT_EXTERNAL_HOST_BINS",
44- "qt_targspec=$shortxspec",
45- "qt_hostspec=$shortspec",
46+ "qt_prfxpath=$QT_SYSROOT_PREFIX",
47+ "qt_docspath=$QT_SYSROOT_DOCS",
48+ "qt_hdrspath=$QT_SYSROOT_HEADERS",
49+ "qt_libspath=$QT_SYSROOT_LIBS",
50+ "qt_lbexpath=$QT_SYSROOT_LIBEXECS",
51+ "qt_binspath=$QT_SYSROOT_BINS",
52+ "qt_plugpath=$QT_SYSROOT_PLUGINS",
53+ "qt_impspath=$QT_SYSROOT_IMPORTS",
54+ "qt_qml2path=$QT_SYSROOT_QML",
55+ "qt_adatpath=$QT_SYSROOT_ARCHDATA",
56+ "qt_datapath=$QT_SYSROOT_DATA",
57+ "qt_trnspath=$QT_SYSROOT_TRANSLATIONS",
58+ "qt_xmplpath=$QT_SYSROOT_EXAMPLES",
59+ "qt_tstspath=$QT_SYSROOT_TESTS",
60+ "qt_ssrtpath=",
61+ "qt_hpfxpath=$QT_SYSROOT_PREFIX",
62+ "qt_hbinpath=$QT_SYSROOT_BINS",
63+ "qt_hlibpath=$QT_SYSROOT_LIBS",
64+ "qt_hdatpath=$QT_SYSROOT_LIBS/qt5",
65+ "qt_targspec=linux-g++",
66+ "qt_hostspec=linux-g++",
67 #endif
68 };
69 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
70--
712.3.1
72
diff --git a/recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch b/recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch
deleted file mode 100644
index 1fa4aca4..00000000
--- a/recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch
+++ /dev/null
@@ -1,196 +0,0 @@
1From 2cece4539990f9e7b0239681bd2fc2808aeb8dbc Mon Sep 17 00:00:00 2001
2From: Stephan Binner <stephan.binner@basyskom.com>
3Date: Mon, 2 Feb 2015 13:10:50 +0100
4Subject: [PATCH 13/13] Fix build of egl integration
5
6Add missing includes and reorder includes to avoid X defines breakage
7
8Upstream-Status: Backport from 5.4 branch https://codereview.qt-project.org/#/c/105116/
9
10Change-Id: Iaf95ae2488df3d3301436262ed79f7091b4be0a9
11Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
12Signed-off-by: Stephan Binner <stephan.binner@basyskom.com>
13---
14 .../eglconvenience/qeglplatformcontext_p.h | 1 +
15 .../eglconvenience/qeglplatformintegration_p.h | 2 +-
16 src/plugins/platforms/eglfs/qeglfscontext.cpp | 13 +++++++------
17 src/plugins/platforms/eglfs/qeglfshooks_stub.cpp | 2 +-
18 src/plugins/platforms/eglfs/qeglfsintegration.cpp | 20 ++++++++++----------
19 src/plugins/platforms/eglfs/qeglfsscreen.cpp | 4 +++-
20 src/plugins/platforms/eglfs/qeglfswindow.cpp | 6 ++++--
21 .../platforms/minimalegl/qminimaleglwindow.cpp | 4 ++--
22 8 files changed, 29 insertions(+), 23 deletions(-)
23
24diff --git a/src/platformsupport/eglconvenience/qeglplatformcontext_p.h b/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
25index 7825c7b..0c10710 100644
26--- a/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
27+++ b/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
28@@ -45,6 +45,7 @@
29 // We mean it.
30 //
31
32+#include <QtCore/qtextstream.h>
33 #include <qpa/qplatformwindow.h>
34 #include <qpa/qplatformopenglcontext.h>
35 #include <QtCore/QVariant>
36diff --git a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
37index c9b6873..a0aab03 100644
38--- a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
39+++ b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
40@@ -45,9 +45,9 @@
41 // We mean it.
42 //
43
44+#include <QtCore/QVariant>
45 #include <qpa/qplatformintegration.h>
46 #include <qpa/qplatformnativeinterface.h>
47-#include <QtCore/QVariant>
48 #include <EGL/egl.h>
49
50 // Undefine CursorShape from X.h, which is causing breakage in Qt::CursorShape in platformsupport/eglconvenience/
51diff --git a/src/plugins/platforms/eglfs/qeglfscontext.cpp b/src/plugins/platforms/eglfs/qeglfscontext.cpp
52index 6216fa8..6470280 100644
53--- a/src/plugins/platforms/eglfs/qeglfscontext.cpp
54+++ b/src/plugins/platforms/eglfs/qeglfscontext.cpp
55@@ -31,15 +31,16 @@
56 **
57 ****************************************************************************/
58
59-#include "qeglfscontext.h"
60-#include "qeglfswindow.h"
61-#include "qeglfshooks.h"
62+#include <QtGui/QSurface>
63+#include <QtDebug>
64
65+#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
66 #include <QtPlatformSupport/private/qeglconvenience_p.h>
67 #include <QtPlatformSupport/private/qeglpbuffer_p.h>
68-#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
69-#include <QtGui/QSurface>
70-#include <QtDebug>
71+
72+#include "qeglfswindow.h"
73+#include "qeglfshooks.h"
74+#include "qeglfscontext.h"
75
76 QT_BEGIN_NAMESPACE
77
78diff --git a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
79index 26d77a2..120c603 100644
80--- a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
81+++ b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
82@@ -31,10 +31,10 @@
83 **
84 ****************************************************************************/
85
86-#include "qeglfshooks.h"
87 #include <QtPlatformSupport/private/qeglplatformcursor_p.h>
88 #include <QtPlatformSupport/private/qeglconvenience_p.h>
89 #include <QtCore/QRegularExpression>
90+#include "qeglfshooks.h"
91
92 #if defined(Q_OS_LINUX)
93 #include <fcntl.h>
94diff --git a/src/plugins/platforms/eglfs/qeglfsintegration.cpp b/src/plugins/platforms/eglfs/qeglfsintegration.cpp
95index 2a4eae3..fbdd1d4 100644
96--- a/src/plugins/platforms/eglfs/qeglfsintegration.cpp
97+++ b/src/plugins/platforms/eglfs/qeglfsintegration.cpp
98@@ -31,26 +31,26 @@
99 **
100 ****************************************************************************/
101
102-#include "qeglfsintegration.h"
103+#include <QtCore/qtextstream.h>
104+#include <QtGui/private/qguiapplication_p.h>
105+
106+#include <qpa/qplatformwindow.h>
107+#include <QtGui/QSurfaceFormat>
108+#include <QtGui/QOpenGLContext>
109+#include <QtGui/QScreen>
110+#include <QtGui/QOffscreenSurface>
111+#include <qpa/qplatformcursor.h>
112
113+#include "qeglfsintegration.h"
114 #include "qeglfswindow.h"
115 #include "qeglfshooks.h"
116 #include "qeglfscontext.h"
117
118-#include <QtGui/private/qguiapplication_p.h>
119-
120 #include <QtPlatformSupport/private/qeglconvenience_p.h>
121 #include <QtPlatformSupport/private/qeglplatformcontext_p.h>
122 #include <QtPlatformSupport/private/qeglpbuffer_p.h>
123 #include <QtPlatformHeaders/QEGLNativeContext>
124
125-#include <qpa/qplatformwindow.h>
126-#include <QtGui/QSurfaceFormat>
127-#include <QtGui/QOpenGLContext>
128-#include <QtGui/QScreen>
129-#include <QtGui/QOffscreenSurface>
130-#include <qpa/qplatformcursor.h>
131-
132 #include <EGL/egl.h>
133
134 static void initResources()
135diff --git a/src/plugins/platforms/eglfs/qeglfsscreen.cpp b/src/plugins/platforms/eglfs/qeglfsscreen.cpp
136index cd68540..bc93fe2 100644
137--- a/src/plugins/platforms/eglfs/qeglfsscreen.cpp
138+++ b/src/plugins/platforms/eglfs/qeglfsscreen.cpp
139@@ -31,10 +31,12 @@
140 **
141 ****************************************************************************/
142
143+#include <QtCore/qtextstream.h>
144+#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
145+
146 #include "qeglfsscreen.h"
147 #include "qeglfswindow.h"
148 #include "qeglfshooks.h"
149-#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
150
151 QT_BEGIN_NAMESPACE
152
153diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp
154index 5ebde6d..2c05979 100644
155--- a/src/plugins/platforms/eglfs/qeglfswindow.cpp
156+++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp
157@@ -31,8 +31,7 @@
158 **
159 ****************************************************************************/
160
161-#include "qeglfswindow.h"
162-#include "qeglfshooks.h"
163+#include <QtCore/qtextstream.h>
164 #include <qpa/qwindowsysteminterface.h>
165 #include <qpa/qplatformintegration.h>
166 #include <private/qguiapplication_p.h>
167@@ -40,6 +39,9 @@
168 #include <QtPlatformSupport/private/qeglplatformcursor_p.h>
169 #include <QtPlatformSupport/private/qeglconvenience_p.h>
170
171+#include "qeglfswindow.h"
172+#include "qeglfshooks.h"
173+
174 #include <QtDebug>
175
176 QT_BEGIN_NAMESPACE
177diff --git a/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp b/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp
178index 906a130..d4bee2c 100644
179--- a/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp
180+++ b/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp
181@@ -31,10 +31,10 @@
182 **
183 ****************************************************************************/
184
185-#include "qminimaleglwindow.h"
186-
187 #include <qpa/qwindowsysteminterface.h>
188
189+#include "qminimaleglwindow.h"
190+
191 QT_BEGIN_NAMESPACE
192
193 QMinimalEglWindow::QMinimalEglWindow(QWindow *w)
194--
1952.3.1
196
diff --git a/recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch b/recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch
deleted file mode 100644
index fb897c90..00000000
--- a/recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From 137890aa64442866a861f0a9f028ee632f19cae4 Mon Sep 17 00:00:00 2001
2From: Denys Dmytriyenko <denys@ti.com>
3Date: Mon, 11 Nov 2013 20:22:34 -0500
4Subject: [PATCH 13/13] configure: preserve built qmake and swap with native
5 one
6
7Let configure script build the real qmake, but right after it's built, swap
8it with a native qmake for further internal use, preserving the real one.
9
10Signed-off-by: Denys Dmytriyenko <denys@ti.com>
11---
12 configure | 2 ++
13 1 file changed, 2 insertions(+)
14
15diff --git a/configure b/configure
16index a40d471..c007427 100755
17--- a/configure
18+++ b/configure
19@@ -3874,6 +3874,8 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
20
21 (cd "$outpath/qmake"; "$MAKE") || exit 2
22 fi # Build qmake
23+mv "$outpath/bin/qmake" "$outpath/bin/qmake-real"
24+mv "$outpath/bin/qmake-native" "$outpath/bin/qmake"
25
26 echo "Running configuration tests..."
27
28--
292.3.1
30
diff --git a/recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch b/recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch
deleted file mode 100644
index 42159ef4..00000000
--- a/recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1From a343de8e9b85b98f18446d045afbf6f1d3f6c5b4 Mon Sep 17 00:00:00 2001
2From: "Richard J. Moore" <rich@kde.org>
3Date: Sat, 21 Feb 2015 17:43:21 +0000
4Subject: [PATCH 14/14] Fix a division by zero when processing malformed BMP
5 files.
6
7This fixes a division by 0 when processing a maliciously crafted BMP
8file. No impact beyond DoS.
9
10Upstream-Status: Backport from 5.4 branch
11
12Task-number: QTBUG-44547
13Change-Id: Ifcded2c0aa712e90d23e6b3969af0ec3add53973
14Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
15Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
16---
17 src/gui/image/qbmphandler.cpp | 8 ++++++++
18 1 file changed, 8 insertions(+)
19
20diff --git a/src/gui/image/qbmphandler.cpp b/src/gui/image/qbmphandler.cpp
21index 21c1a2f..df66499 100644
22--- a/src/gui/image/qbmphandler.cpp
23+++ b/src/gui/image/qbmphandler.cpp
24@@ -314,12 +314,20 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int
25 }
26 } else if (comp == BMP_BITFIELDS && (nbits == 16 || nbits == 32)) {
27 red_shift = calc_shift(red_mask);
28+ if (((red_mask >> red_shift) + 1) == 0)
29+ return false;
30 red_scale = 256 / ((red_mask >> red_shift) + 1);
31 green_shift = calc_shift(green_mask);
32+ if (((green_mask >> green_shift) + 1) == 0)
33+ return false;
34 green_scale = 256 / ((green_mask >> green_shift) + 1);
35 blue_shift = calc_shift(blue_mask);
36+ if (((blue_mask >> blue_shift) + 1) == 0)
37+ return false;
38 blue_scale = 256 / ((blue_mask >> blue_shift) + 1);
39 alpha_shift = calc_shift(alpha_mask);
40+ if (((alpha_mask >> alpha_shift) + 1) == 0)
41+ return false;
42 alpha_scale = 256 / ((alpha_mask >> alpha_shift) + 1);
43 } else if (comp == BMP_RGB && (nbits == 24 || nbits == 32)) {
44 blue_mask = 0x000000ff;
45--
462.3.1
47
diff --git a/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake b/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake
deleted file mode 100644
index 6f0042b2..00000000
--- a/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake
+++ /dev/null
@@ -1 +0,0 @@
1set( OE_QMAKE_PATH_EXTERNAL_HOST_BINS $ENV{OE_QMAKE_PATH_HOST_BINS} )
diff --git a/recipes-qt/qt5/qtbase_5.4.1.bb b/recipes-qt/qt5/qtbase_5.4.1.bb
deleted file mode 100644
index 0ff611f1..00000000
--- a/recipes-qt/qt5/qtbase_5.4.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4# This patch is in 5.4 branch but didn't make it into 5.4.1 release
5SRC_URI += "\
6 file://0013-Fix-build-of-egl-integration.patch \
7 file://0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch \
8"
9
10SRC_URI[md5sum] = "9507825e558c980fed602de1f16ec7ae"
11SRC_URI[sha256sum] = "8574a593830959c0f7e5430fe77a43832ea7f5299e14a397a74576b3df7fb1b7"
diff --git a/recipes-qt/qt5/qtconnectivity_5.4.1.bb b/recipes-qt/qt5/qtconnectivity_5.4.1.bb
deleted file mode 100644
index 0c6348a9..00000000
--- a/recipes-qt/qt5/qtconnectivity_5.4.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "056c7eba6a396bbd82d265feca1fe47b"
5SRC_URI[sha256sum] = "82c4ffb590f6716672da271ad41c51499b888b46140f40b06367b9eace7b2360"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
12
diff --git a/recipes-qt/qt5/qtdeclarative/0001-qmltestexample-fix-link.patch b/recipes-qt/qt5/qtdeclarative/0001-qmltestexample-fix-link.patch
deleted file mode 100644
index 478862cc..00000000
--- a/recipes-qt/qt5/qtdeclarative/0001-qmltestexample-fix-link.patch
+++ /dev/null
@@ -1,88 +0,0 @@
1From ccfd4907a2683fb0840fa4fd6a9d979395f4331c Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com>
3Date: Sun, 26 May 2013 14:26:19 +0200
4Subject: [PATCH] qmltestexample: fix link
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9else we get :
10ld: warning: libQt5Quick.so.5, needed by libQt5QuickTest.so, not found
11
12Upstream-Status: Inappropriate
13
14Change-Id: I63088ff73bec6a8559dfae132f8bd40b62487450
15Signed-off-by: Eric Bénard <eric@eukrea.com>
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17---
18 examples/qmltest/qmltest/qmltest.pro | 2 +-
19 tests/auto/qml/qjsengine/qjsengine.pro | 2 +-
20 tests/auto/qml/qtqmlmodules/qtqmlmodules.pro | 2 +-
21 tests/auto/qmltest/qmltest.pro | 1 +
22 tools/qmltestrunner/qmltestrunner.pro | 2 +-
23 5 files changed, 5 insertions(+), 4 deletions(-)
24
25diff --git a/examples/qmltest/qmltest/qmltest.pro b/examples/qmltest/qmltest/qmltest.pro
26index b5893c5..1b00e6c 100644
27--- a/examples/qmltest/qmltest/qmltest.pro
28+++ b/examples/qmltest/qmltest/qmltest.pro
29@@ -14,7 +14,7 @@ TESTDATA += tst_basic.qml tst_item.qml
30 # This code exists solely for the purpose of building this example
31 # inside the examples/ hierarchy.
32
33-QT += qml qmltest
34+QT += qml qmltest quick
35
36 macx: CONFIG -= app_bundle
37
38diff --git a/tests/auto/qml/qjsengine/qjsengine.pro b/tests/auto/qml/qjsengine/qjsengine.pro
39index fc2452c..919710f 100644
40--- a/tests/auto/qml/qjsengine/qjsengine.pro
41+++ b/tests/auto/qml/qjsengine/qjsengine.pro
42@@ -1,7 +1,7 @@
43 CONFIG += testcase
44 CONFIG += parallel_test
45 TARGET = tst_qjsengine
46-QT += qml qml-private widgets testlib gui-private
47+QT += qml qml-private widgets testlib gui-private quick
48 macx:CONFIG -= app_bundle
49 SOURCES += tst_qjsengine.cpp
50 RESOURCES += qjsengine.qrc
51diff --git a/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro b/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro
52index c6d442e..3181dcd 100644
53--- a/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro
54+++ b/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro
55@@ -8,5 +8,5 @@ macx:CONFIG -= app_bundle
56
57 TESTDATA = data/*
58
59-QT += core-private qml-private testlib gui gui-private
60+QT += core-private qml-private testlib gui gui-private quick
61 DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
62diff --git a/tests/auto/qmltest/qmltest.pro b/tests/auto/qmltest/qmltest.pro
63index 7662cb1..a8f8ae2 100644
64--- a/tests/auto/qmltest/qmltest.pro
65+++ b/tests/auto/qmltest/qmltest.pro
66@@ -4,6 +4,7 @@ CONFIG += qmltestcase
67 CONFIG += console
68 SOURCES += tst_qmltest.cpp
69
70+QT += quick
71
72 importFiles.files = borderimage buttonclick createbenchmark events qqmlbinding selftests
73
74diff --git a/tools/qmltestrunner/qmltestrunner.pro b/tools/qmltestrunner/qmltestrunner.pro
75index 1bb913e..56f2dd5 100644
76--- a/tools/qmltestrunner/qmltestrunner.pro
77+++ b/tools/qmltestrunner/qmltestrunner.pro
78@@ -1,6 +1,6 @@
79 SOURCES += main.cpp
80
81-QT += qml qmltest
82+QT += qml qmltest quick
83 CONFIG += no_import_scan
84
85 load(qt_tool)
86--
872.3.1
88
diff --git a/recipes-qt/qt5/qtdeclarative_5.4.1.bb b/recipes-qt/qt5/qtdeclarative_5.4.1.bb
deleted file mode 100644
index eef88418..00000000
--- a/recipes-qt/qt5/qtdeclarative_5.4.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "86dfe5c41e14a142c72fdaa6a64f933c"
5SRC_URI[sha256sum] = "15124e242a8a4a8fc5bedd32910b3b0b372b6c2b63f99572c4a2427e668d4417"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
diff --git a/recipes-qt/qt5/qtenginio_5.4.1.bb b/recipes-qt/qt5/qtenginio_5.4.1.bb
deleted file mode 100644
index de6ab0d8..00000000
--- a/recipes-qt/qt5/qtenginio_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "c80b967b159c513350fcfca223f435d4"
5SRC_URI[sha256sum] = "aedb131c29180c7dbc41f888d6a078378a2dd3337766461734cc1b8f07e9577a"
diff --git a/recipes-qt/qt5/qtgraphicaleffects_5.4.1.bb b/recipes-qt/qt5/qtgraphicaleffects_5.4.1.bb
deleted file mode 100644
index 05e00f2c..00000000
--- a/recipes-qt/qt5/qtgraphicaleffects_5.4.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "02bec01c2af9a7d08582fbffbfa4976a"
5SRC_URI[sha256sum] = "bae2f0e8120f0b4e6e1b56a486713821615d0af7c69fb4ecdcbabc22b8f8351c"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
12
diff --git a/recipes-qt/qt5/qtimageformats_5.4.1.bb b/recipes-qt/qt5/qtimageformats_5.4.1.bb
deleted file mode 100644
index 8a2933af..00000000
--- a/recipes-qt/qt5/qtimageformats_5.4.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "1436680e00ea3e211fd0abdb7c18014a"
5SRC_URI[sha256sum] = "3f6c5bb568ebbee24700c439a60b2e512026dfee5be896c846e4f289cc5b846f"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
12
diff --git a/recipes-qt/qt5/qtlocation_5.4.1.bb b/recipes-qt/qt5/qtlocation_5.4.1.bb
deleted file mode 100644
index b0a51397..00000000
--- a/recipes-qt/qt5/qtlocation_5.4.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "f7d693d3f3634da063b61928b502b79d"
5SRC_URI[sha256sum] = "889f0c832159a804be6a730366dd76db53f32333efc1cc88f5c7253206e97984"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
12
diff --git a/recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch b/recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch
deleted file mode 100644
index f66e864f..00000000
--- a/recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch
+++ /dev/null
@@ -1,2368 +0,0 @@
1From 6a570205a17663e6adce9e5613eb7694fe2874dc Mon Sep 17 00:00:00 2001
2From: Yoann Lopes <yoann.lopes@digia.com>
3Date: Thu, 31 Oct 2013 15:06:30 +0100
4Subject: [PATCH] Initial porting effort to GStreamer 1.0.
5
6Imported from git@github.com:jhodapp/qtmultimedia.git
7
8Contributions from:
9Ilya Smelykh <ilya@videoexpertsgroup.com>
10Jim Hodapp <jim.hodapp@canonical.com>
11Sergio Schvezov <sergio.schvezov@canonical.com>
12
13Change-Id: I10fa5e5078efa4564ce833befd417008e26a90a9
14Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
15(cherry picked from commit d91dac090d92fdbc3a3425e8d969c62e5c79eff9)
16
17Conflicts:
18 src/gsttools/qgstreamervideorenderer.cpp
19 src/gsttools/qgstreamervideowidget.cpp
20 src/gsttools/qgstreamervideowindow.cpp
21 src/plugins/gstreamer/camerabin/camerabinsession.cpp
22 src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
23 src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
24---
25 config.tests/gstreamer/gstreamer.pro | 11 +-
26 config.tests/gstreamer_appsrc/gstreamer_appsrc.pro | 13 +-
27 .../gstreamer_encodingprofiles.pro | 13 +-
28 .../gstreamer_photography.pro | 15 +-
29 qtmultimedia.pro | 25 ++-
30 src/gsttools/gsttools.pro | 22 +--
31 src/gsttools/gstvideoconnector.c | 199 +++++++++++++++++++--
32 src/gsttools/qgstappsrc.cpp | 29 ++-
33 src/gsttools/qgstreameraudioprobecontrol.cpp | 19 +-
34 src/gsttools/qgstreamerbushelper.cpp | 8 +
35 src/gsttools/qgstreamervideoprobecontrol.cpp | 9 +
36 src/gsttools/qgstreamervideorenderer.cpp | 3 +-
37 src/gsttools/qgstreamervideowidget.cpp | 29 ++-
38 src/gsttools/qgstreamervideowindow.cpp | 79 +++++++-
39 src/gsttools/qgstutils.cpp | 27 ++-
40 src/gsttools/qgstvideobuffer.cpp | 18 +-
41 src/gsttools/qvideosurfacegstsink.cpp | 136 +++++++++++++-
42 src/multimedia/gsttools_headers/qgstappsrc_p.h | 3 +
43 .../qgstreameraudioprobecontrol_p.h | 5 +-
44 .../qgstreamervideoprobecontrol_p.h | 4 +
45 .../gsttools_headers/qgstreamervideowindow_p.h | 4 +
46 src/multimedia/gsttools_headers/qgstutils_p.h | 4 +
47 .../gsttools_headers/qgstvideobuffer_p.h | 3 +
48 .../gsttools_headers/qvideosurfacegstsink_p.h | 6 +-
49 .../qgstreameraudiodecoderserviceplugin.cpp | 27 ++-
50 .../audiodecoder/qgstreameraudiodecodersession.cpp | 33 +++-
51 .../gstreamer/camerabin/camerabinsession.cpp | 25 +++
52 src/plugins/gstreamer/common.pri | 21 ++-
53 src/plugins/gstreamer/gstreamer.pro | 3 +-
54 .../mediacapture/qgstreamercapturesession.cpp | 5 +
55 src/plugins/gstreamer/mediaplayer/mediaplayer.pro | 1 -
56 .../mediaplayer/qgstreamerplayercontrol.cpp | 2 +
57 .../mediaplayer/qgstreamerplayerservice.cpp | 9 +-
58 .../mediaplayer/qgstreamerplayerserviceplugin.cpp | 27 ++-
59 .../mediaplayer/qgstreamerplayersession.cpp | 154 ++++++++++++++--
60 .../mediaplayer/qgstreamerplayersession.h | 9 +
61 36 files changed, 871 insertions(+), 129 deletions(-)
62
63diff --git a/config.tests/gstreamer/gstreamer.pro b/config.tests/gstreamer/gstreamer.pro
64index 02a7e34..6b9843a 100644
65--- a/config.tests/gstreamer/gstreamer.pro
66+++ b/config.tests/gstreamer/gstreamer.pro
67@@ -3,11 +3,10 @@ SOURCES += main.cpp
68 CONFIG += link_pkgconfig
69
70 PKGCONFIG += \
71- gstreamer-0.10 \
72- gstreamer-base-0.10 \
73- gstreamer-interfaces-0.10 \
74- gstreamer-audio-0.10 \
75- gstreamer-video-0.10 \
76- gstreamer-pbutils-0.10
77+ gstreamer-$$GST_VERSION \
78+ gstreamer-base-$$GST_VERSION \
79+ gstreamer-audio-$$GST_VERSION \
80+ gstreamer-video-$$GST_VERSION \
81+ gstreamer-pbutils-$$GST_VERSION
82
83
84diff --git a/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro b/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro
85index 9f61703..0f3ca2b 100644
86--- a/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro
87+++ b/config.tests/gstreamer_appsrc/gstreamer_appsrc.pro
88@@ -3,11 +3,8 @@ SOURCES += main.cpp
89 CONFIG += link_pkgconfig
90
91 PKGCONFIG += \
92- gstreamer-0.10 \
93- gstreamer-base-0.10 \
94- gstreamer-interfaces-0.10 \
95- gstreamer-audio-0.10 \
96- gstreamer-video-0.10 \
97- gstreamer-app-0.10
98-
99-
100+ gstreamer-$$GST_VERSION \
101+ gstreamer-base-$$GST_VERSION \
102+ gstreamer-audio-$$GST_VERSION \
103+ gstreamer-video-$$GST_VERSION \
104+ gstreamer-pbutils-$$GST_VERSION
105diff --git a/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro b/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro
106index 7e8a9e7..fad40b0 100644
107--- a/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro
108+++ b/config.tests/gstreamer_encodingprofiles/gstreamer_encodingprofiles.pro
109@@ -2,11 +2,10 @@ SOURCES += main.cpp
110
111 CONFIG += link_pkgconfig
112
113-PKGCONFIG += \
114- gstreamer-0.10 \
115- gstreamer-base-0.10 \
116- gstreamer-interfaces-0.10 \
117- gstreamer-audio-0.10 \
118- gstreamer-video-0.10 \
119- gstreamer-pbutils-0.10
120
121+PKGCONFIG += \
122+ gstreamer-$$GST_VERSION \
123+ gstreamer-base-$$GST_VERSION \
124+ gstreamer-audio-$$GST_VERSION \
125+ gstreamer-video-$$GST_VERSION \
126+ gstreamer-pbutils-$$GST_VERSION
127diff --git a/config.tests/gstreamer_photography/gstreamer_photography.pro b/config.tests/gstreamer_photography/gstreamer_photography.pro
128index 6b530cb..975991f 100644
129--- a/config.tests/gstreamer_photography/gstreamer_photography.pro
130+++ b/config.tests/gstreamer_photography/gstreamer_photography.pro
131@@ -3,12 +3,11 @@ SOURCES += main.cpp
132 CONFIG += link_pkgconfig
133
134 PKGCONFIG += \
135- gstreamer-0.10 \
136- gstreamer-base-0.10 \
137- gstreamer-interfaces-0.10 \
138- gstreamer-audio-0.10 \
139- gstreamer-video-0.10 \
140- gstreamer-pbutils-0.10
141-
142-LIBS += -lgstphotography-0.10
143+ gstreamer-$$GST_VERSION \
144+ gstreamer-base-$$GST_VERSION \
145+ gstreamer-audio-$$GST_VERSION \
146+ gstreamer-video-$$GST_VERSION \
147+ gstreamer-pbutils-$$GST_VERSION
148+
149+LIBS += -lgstphotography-$$GST_VERSION
150
151diff --git a/qtmultimedia.pro b/qtmultimedia.pro
152index 3cec526..109dd81 100644
153--- a/qtmultimedia.pro
154+++ b/qtmultimedia.pro
155@@ -17,11 +17,26 @@ win32 {
156 } else {
157 qtCompileTest(alsa)
158 qtCompileTest(pulseaudio)
159- qtCompileTest(gstreamer) {
160- qtCompileTest(gstreamer_photography)
161- qtCompileTest(gstreamer_encodingprofiles)
162- qtCompileTest(gstreamer_appsrc)
163- qtCompileTest(linux_v4l)
164+ !done_config_gstreamer {
165+ gstver=1.0
166+ cache(GST_VERSION, set, gstver);
167+ qtCompileTest(gstreamer) {
168+ qtCompileTest(gstreamer_photography)
169+ qtCompileTest(gstreamer_encodingprofiles)
170+ qtCompileTest(gstreamer_appsrc)
171+ qtCompileTest(linux_v4l)
172+ } else {
173+ gstver=0.10
174+ cache(GST_VERSION, set, gstver);
175+ # Force a re-run of the test
176+ CONFIG -= done_config_gstreamer
177+ qtCompileTest(gstreamer) {
178+ qtCompileTest(gstreamer_photography)
179+ qtCompileTest(gstreamer_encodingprofiles)
180+ qtCompileTest(gstreamer_appsrc)
181+ qtCompileTest(linux_v4l)
182+ }
183+ }
184 }
185 qtCompileTest(resourcepolicy)
186 qtCompileTest(gpu_vivante)
187diff --git a/src/gsttools/gsttools.pro b/src/gsttools/gsttools.pro
188index 7c809a7..6b9bf5d 100644
189--- a/src/gsttools/gsttools.pro
190+++ b/src/gsttools/gsttools.pro
191@@ -2,7 +2,7 @@ TEMPLATE = lib
192
193 TARGET = qgsttools_p
194 QPRO_PWD = $$PWD
195-QT = core-private multimedia-private gui-private
196+QT = core-private multimedia-private gui-private opengl
197
198 !static:DEFINES += QT_MAKEDLL
199 DEFINES += GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26
200@@ -15,13 +15,14 @@ LIBS_PRIVATE += \
201
202 CONFIG += link_pkgconfig
203
204-PKGCONFIG_PRIVATE += \
205- gstreamer-0.10 \
206- gstreamer-base-0.10 \
207- gstreamer-interfaces-0.10 \
208- gstreamer-audio-0.10 \
209- gstreamer-video-0.10 \
210- gstreamer-pbutils-0.10
211+PKGCONFIG += \
212+ gstreamer-$$GST_VERSION \
213+ gstreamer-base-$$GST_VERSION \
214+ gstreamer-audio-$$GST_VERSION \
215+ gstreamer-video-$$GST_VERSION \
216+ gstreamer-pbutils-$$GST_VERSION
217+
218+equals(GST_VERSION,"0.10"): PKGCONFIG_PRIVATE += gstreamer-interfaces-$$GST_VERSION
219
220 maemo*: PKGCONFIG_PRIVATE +=gstreamer-plugins-bad-0.10
221
222@@ -33,6 +34,7 @@ config_resourcepolicy {
223 # Header files must go inside source directory of a module
224 # to be installed by syncqt.
225 INCLUDEPATH += ../multimedia/gsttools_headers/
226+INCLUDEPATH += ../plugins/gstreamer/mediaplayer/
227 VPATH += ../multimedia/gsttools_headers/
228
229 PRIVATE_HEADERS += \
230@@ -91,13 +93,13 @@ maemo6 {
231 }
232
233 config_gstreamer_appsrc {
234- PKGCONFIG_PRIVATE += gstreamer-app-0.10
235+ PKGCONFIG_PRIVATE += gstreamer-app-$$GST_VERSION
236 PRIVATE_HEADERS += qgstappsrc_p.h
237 SOURCES += qgstappsrc.cpp
238
239 DEFINES += HAVE_GST_APPSRC
240
241- LIBS_PRIVATE += -lgstapp-0.10
242+ LIBS_PRIVATE += -lgstapp-$$GST_VERSION
243 }
244
245 config_linux_v4l: DEFINES += USE_V4L
246diff --git a/src/gsttools/gstvideoconnector.c b/src/gsttools/gstvideoconnector.c
247index 3ed539e..ed0ed3c 100644
248--- a/src/gsttools/gstvideoconnector.c
249+++ b/src/gsttools/gstvideoconnector.c
250@@ -59,26 +59,93 @@ GST_STATIC_PAD_TEMPLATE ("src",
251 GST_PAD_ALWAYS,
252 GST_STATIC_CAPS_ANY);
253
254+
255+#if GST_CHECK_VERSION(1,0,0)
256+
257+G_DEFINE_TYPE(GstVideoConnector, gst_video_connector, GST_TYPE_ELEMENT);
258+#else
259 #define _do_init(bla) \
260 GST_DEBUG_CATEGORY_INIT (video_connector_debug, \
261 "video-connector", 0, "An identity like element for reconnecting video stream");
262
263 GST_BOILERPLATE_FULL (GstVideoConnector, gst_video_connector, GstElement,
264 GST_TYPE_ELEMENT, _do_init);
265+#endif
266
267 static void gst_video_connector_dispose (GObject * object);
268+
269+#if GST_CHECK_VERSION(1,0,0)
270+static GstFlowReturn gst_video_connector_chain (GstPad * pad, GstObject* parent, GstBuffer * buf);
271+#else
272 static GstFlowReturn gst_video_connector_chain (GstPad * pad, GstBuffer * buf);
273 static GstFlowReturn gst_video_connector_buffer_alloc (GstPad * pad,
274 guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
275+#endif
276+
277 static GstStateChangeReturn gst_video_connector_change_state (GstElement *
278 element, GstStateChange transition);
279+
280+#if GST_CHECK_VERSION(1,0,0)
281+static gboolean gst_video_connector_handle_sink_event (GstPad * pad, GstObject* parent,
282+ GstEvent * event);
283+#else
284 static gboolean gst_video_connector_handle_sink_event (GstPad * pad,
285 GstEvent * event);
286+#endif
287+
288+#if GST_CHECK_VERSION(1,0,0)
289+static GstPadProbeReturn gst_video_connector_new_buffer_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object);
290+static GstPadProbeReturn gst_video_connector_new_event_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object);
291+static GstPadProbeReturn gst_video_connector_new_query_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object);
292+#else
293 static gboolean gst_video_connector_new_buffer_probe(GstObject *pad, GstBuffer *buffer, guint * object);
294-static void gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailedSignal);
295 static gboolean gst_video_connector_setcaps (GstPad *pad, GstCaps *caps);
296 static GstCaps *gst_video_connector_getcaps (GstPad * pad);
297 static gboolean gst_video_connector_acceptcaps (GstPad * pad, GstCaps * caps);
298+#endif
299+
300+static void gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailedSignal);
301+
302+#if GST_CHECK_VERSION(1,0,0)
303+static void
304+gst_video_connector_class_init (GstVideoConnectorClass * klass)
305+{
306+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
307+ GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
308+
309+ gst_element_class_set_details_simple (gstelement_class, "Video Connector",
310+ "Generic",
311+ "An identity like element used for reconnecting video stream",
312+ "Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>");
313+ gst_element_class_add_pad_template (gstelement_class,
314+ gst_static_pad_template_get (&gst_video_connector_sink_factory));
315+ gst_element_class_add_pad_template (gstelement_class,
316+ gst_static_pad_template_get (&gst_video_connector_src_factory));
317+
318+ gst_video_connector_parent_class = g_type_class_peek_parent (klass);
319+
320+ gobject_class->dispose = gst_video_connector_dispose;
321+ gstelement_class->change_state = gst_video_connector_change_state;
322+ klass->resend_new_segment = gst_video_connector_resend_new_segment;
323+
324+ gst_video_connector_signals[SIGNAL_RESEND_NEW_SEGMENT] =
325+ g_signal_new ("resend-new-segment", G_TYPE_FROM_CLASS (klass),
326+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
327+ G_STRUCT_OFFSET (GstVideoConnectorClass, resend_new_segment), NULL, NULL,
328+ g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
329+
330+ gst_video_connector_signals[SIGNAL_CONNECTION_FAILED] =
331+ g_signal_new ("connection-failed", G_TYPE_FROM_CLASS (klass),
332+ G_SIGNAL_RUN_LAST,
333+ 0, NULL, NULL,
334+ g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
335+
336+ GST_DEBUG_CATEGORY_INIT(video_connector_debug, "video-connector", 0,
337+ "An identity like element for reconnecting video stream");
338+
339+}
340+
341+#else
342
343 static void
344 gst_video_connector_base_init (gpointer g_class)
345@@ -120,18 +187,33 @@ gst_video_connector_class_init (GstVideoConnectorClass * klass)
346 g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
347 }
348
349+#endif
350+
351 static void
352-gst_video_connector_init (GstVideoConnector *element,
353- GstVideoConnectorClass *g_class)
354+gst_video_connector_init (GstVideoConnector *element
355+#if GST_CHECK_VERSION(1,0,0)
356+#else
357+ ,GstVideoConnectorClass *g_class
358+#endif
359+ )
360 {
361+#if GST_CHECK_VERSION(1,0,0)
362+#else
363 (void) g_class;
364+#endif
365 element->sinkpad =
366 gst_pad_new_from_static_template (&gst_video_connector_sink_factory,
367 "sink");
368 gst_pad_set_chain_function(element->sinkpad,
369 GST_DEBUG_FUNCPTR (gst_video_connector_chain));
370+#if GST_CHECK_VERSION(1,0,0)
371+ /* gstreamer 1.x uses QUERIES and EVENTS for allocation and caps handiling purposes */
372+ GST_OBJECT_FLAG_SET (element->sinkpad, GST_PAD_FLAG_PROXY_CAPS);
373+ GST_OBJECT_FLAG_SET (element->sinkpad, GST_PAD_FLAG_PROXY_ALLOCATION);
374+#else
375 gst_pad_set_event_function(element->sinkpad,
376 GST_DEBUG_FUNCPTR (gst_video_connector_handle_sink_event));
377+
378 gst_pad_set_bufferalloc_function(element->sinkpad,
379 GST_DEBUG_FUNCPTR (gst_video_connector_buffer_alloc));
380 gst_pad_set_setcaps_function(element->sinkpad,
381@@ -140,14 +222,23 @@ gst_video_connector_init (GstVideoConnector *element,
382 GST_DEBUG_FUNCPTR(gst_video_connector_getcaps));
383 gst_pad_set_acceptcaps_function(element->sinkpad,
384 GST_DEBUG_FUNCPTR(gst_video_connector_acceptcaps));
385-
386+#endif
387 gst_element_add_pad (GST_ELEMENT (element), element->sinkpad);
388
389 element->srcpad =
390 gst_pad_new_from_static_template (&gst_video_connector_src_factory,
391 "src");
392+#if GST_CHECK_VERSION(1,0,0)
393+ gst_pad_add_probe(element->srcpad, GST_PAD_PROBE_TYPE_BUFFER,
394+ gst_video_connector_new_buffer_probe, element, NULL);
395+ gst_pad_add_probe(element->srcpad, GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM,
396+ gst_video_connector_new_query_probe, element, NULL);
397+ gst_pad_add_probe(element->sinkpad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
398+ gst_video_connector_new_event_probe, element, NULL);
399+#else
400 gst_pad_add_buffer_probe(element->srcpad,
401 G_CALLBACK(gst_video_connector_new_buffer_probe), element);
402+#endif
403 gst_element_add_pad (GST_ELEMENT (element), element->srcpad);
404
405 element->relinked = FALSE;
406@@ -175,9 +266,16 @@ gst_video_connector_dispose (GObject * object)
407
408 gst_video_connector_reset (element);
409
410+#if GST_CHECK_VERSION(1,0,0)
411+ G_OBJECT_CLASS (gst_video_connector_parent_class)->dispose (object);
412+#else
413 G_OBJECT_CLASS (parent_class)->dispose (object);
414+#endif
415 }
416
417+#if GST_CHECK_VERSION(1,0,0)
418+/* For gstreamer 1.x we handle it in ALLOCATION Query */
419+#else
420 // "When this function returns anything else than GST_FLOW_OK,
421 // the buffer allocation failed and buf does not contain valid data."
422 static GstFlowReturn
423@@ -221,6 +319,7 @@ gst_video_connector_buffer_alloc (GstPad * pad, guint64 offset, guint size,
424 if (state == GST_STATE_NULL) {
425 GST_DEBUG_OBJECT (element, "Downstream element is in NULL state");
426 // Downstream filter seems to be in the wrong state
427+
428 return GST_FLOW_UNEXPECTED;
429 }
430 }
431@@ -293,6 +392,7 @@ static GstCaps *gst_video_connector_getcaps (GstPad * pad)
432 return caps;
433 }
434
435+
436 static gboolean gst_video_connector_acceptcaps (GstPad * pad, GstCaps * caps)
437 {
438 GstVideoConnector *element;
439@@ -300,6 +400,7 @@ static gboolean gst_video_connector_acceptcaps (GstPad * pad, GstCaps * caps)
440
441 return gst_pad_peer_accept_caps(element->srcpad, caps);
442 }
443+#endif
444
445 static void
446 gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailedSignal)
447@@ -311,11 +412,39 @@ gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailed
448 connector->failedSignalEmited = FALSE;
449 }
450
451+#if GST_CHECK_VERSION(1,0,0)
452+static GstPadProbeReturn gst_video_connector_new_event_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object)
453+{
454+ GstVideoConnector *connector = GST_VIDEO_CONNECTOR (object);
455+ GstEvent *event = gst_pad_probe_info_get_event(info);
456+
457+ GST_DEBUG_OBJECT(connector, "Event %"GST_PTR_FORMAT" received\n", event);
458+
459+ return GST_PAD_PROBE_OK;
460+}
461+
462+static GstPadProbeReturn gst_video_connector_new_query_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object)
463+{
464+ GstVideoConnector *connector = GST_VIDEO_CONNECTOR (object);
465+ GstQuery *query = gst_pad_probe_info_get_query(info);
466+
467+ GST_DEBUG_OBJECT(connector, "Query %"GST_PTR_FORMAT" received\n", query);
468+
469+ return GST_PAD_PROBE_OK;
470+}
471+#endif
472
473+#if GST_CHECK_VERSION(1,0,0)
474+static GstPadProbeReturn gst_video_connector_new_buffer_probe(GstPad *pad, GstPadProbeInfo *info, gpointer object)
475+{
476+ (void) info;
477+#else
478 static gboolean gst_video_connector_new_buffer_probe(GstObject *pad, GstBuffer *buffer, guint * object)
479 {
480- (void) pad;
481 (void) buffer;
482+#endif
483+ (void) pad;
484+
485
486 GstVideoConnector *element = GST_VIDEO_CONNECTOR (object);
487
488@@ -327,16 +456,23 @@ static gboolean gst_video_connector_new_buffer_probe(GstObject *pad, GstBuffer *
489 if (element->relinked)
490 GST_LOG_OBJECT(element, "rejected buffer because of new segment request");
491
492- return !element->relinked;
493+ return element->relinked ? GST_PAD_PROBE_DROP : GST_PAD_PROBE_OK;
494 }
495
496-
497 static GstFlowReturn
498+#if GST_CHECK_VERSION(1,0,0)
499+gst_video_connector_chain (GstPad * pad, GstObject* parent, GstBuffer * buf)
500+#else
501 gst_video_connector_chain (GstPad * pad, GstBuffer * buf)
502+#endif
503 {
504 GstFlowReturn res;
505 GstVideoConnector *element;
506
507+#if GST_CHECK_VERSION(1,0,0)
508+ (void)parent;
509+#endif
510+
511 element = GST_VIDEO_CONNECTOR (gst_pad_get_parent (pad));
512
513 do {
514@@ -348,20 +484,29 @@ gst_video_connector_chain (GstPad * pad, GstBuffer * buf)
515 */
516 while (element->relinked) {
517 element->relinked = FALSE;
518-
519+#if GST_CHECK_VERSION(1,0,0)
520+ if (element->latest_buffer && GST_BUFFER_TIMESTAMP_IS_VALID(element->latest_buffer)) {
521+ element->segment.position = GST_BUFFER_TIMESTAMP (element->latest_buffer);
522+ }
523+#else
524 gint64 pos = element->segment.last_stop;
525-
526 if (element->latest_buffer && GST_BUFFER_TIMESTAMP_IS_VALID(element->latest_buffer)) {
527 pos = GST_BUFFER_TIMESTAMP (element->latest_buffer);
528 }
529+#endif
530
531 //push a new segment and last buffer
532+#if GST_CHECK_VERSION(1,0,0)
533+ GstEvent *ev = gst_event_new_segment (&element->segment);
534+
535+#else
536 GstEvent *ev = gst_event_new_new_segment (TRUE,
537 element->segment.rate,
538 element->segment.format,
539 pos, //start
540 element->segment.stop,
541 pos);
542+#endif
543
544 GST_DEBUG_OBJECT (element, "Pushing new segment event");
545 if (!gst_pad_push_event (element->srcpad, ev)) {
546@@ -424,8 +569,11 @@ gst_video_connector_change_state (GstElement * element,
547 GstStateChangeReturn result;
548
549 connector = GST_VIDEO_CONNECTOR(element);
550+#if GST_CHECK_VERSION(1,0,0)
551+ result = GST_ELEMENT_CLASS (gst_video_connector_parent_class)->change_state(element, transition);
552+#else
553 result = GST_ELEMENT_CLASS (parent_class)->change_state(element, transition);
554-
555+#endif
556 switch (transition) {
557 case GST_STATE_CHANGE_PAUSED_TO_READY:
558 gst_video_connector_reset (connector);
559@@ -440,9 +588,32 @@ gst_video_connector_change_state (GstElement * element,
560 return result;
561 }
562
563-static gboolean
564-gst_video_connector_handle_sink_event (GstPad * pad, GstEvent * event)
565+#if GST_CHECK_VERSION(1,0,0)
566+static gboolean gst_video_connector_handle_sink_event (GstPad * pad, GstObject* parent,
567+ GstEvent * event)
568+{
569+ GstVideoConnector *element = GST_VIDEO_CONNECTOR (gst_pad_get_parent (pad));
570+
571+ switch (GST_EVENT_TYPE (event)) {
572+ case GST_EVENT_SEGMENT:
573+ break;
574+ case GST_EVENT_CAPS:
575+ break;
576+ default:
577+ break;
578+ }
579+
580+ gst_object_unref (element);
581+ return gst_pad_event_default (pad, parent, event);
582+}
583+
584+#else
585+
586+static gboolean gst_video_connector_handle_sink_event (GstPad * pad,
587+ GstEvent * event)
588 {
589+ (void)parent;
590+
591 if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) {
592 GstVideoConnector *element = GST_VIDEO_CONNECTOR (gst_pad_get_parent (pad));
593
594@@ -453,7 +624,6 @@ gst_video_connector_handle_sink_event (GstPad * pad, GstEvent * event)
595
596 gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format,
597 &start, &stop, &time);
598-
599 GST_LOG_OBJECT (element,
600 "NEWSEGMENT update %d, rate %lf, applied rate %lf, "
601 "format %d, " "%" G_GINT64_FORMAT " -- %" G_GINT64_FORMAT ", time %"
602@@ -461,9 +631,10 @@ gst_video_connector_handle_sink_event (GstPad * pad, GstEvent * event)
603
604 gst_segment_set_newsegment_full (&element->segment, update,
605 rate, arate, format, start, stop, time);
606-
607 gst_object_unref (element);
608 }
609
610 return gst_pad_event_default (pad, event);
611 }
612+
613+#endif
614diff --git a/src/gsttools/qgstappsrc.cpp b/src/gsttools/qgstappsrc.cpp
615index 561a96f..d5e106f 100644
616--- a/src/gsttools/qgstappsrc.cpp
617+++ b/src/gsttools/qgstappsrc.cpp
618@@ -147,23 +147,44 @@ void QGstAppSrc::pushDataToAppSrc()
619 size = qMin(m_stream->bytesAvailable(), (qint64)m_dataRequestSize);
620
621 if (size) {
622- void *data = g_malloc(size);
623- GstBuffer* buffer = gst_app_buffer_new(data, size, g_free, data);
624+ GstBuffer* buffer = gst_buffer_new_and_alloc(size);
625+
626+#if GST_CHECK_VERSION(1,0,0)
627+ GstMapInfo mapInfo;
628+ gst_buffer_map(buffer, &mapInfo, GST_MAP_WRITE);
629+ void* bufferData = mapInfo.data;
630+#else
631+ void* bufferData = GST_BUFFER_DATA(buffer);
632+#endif
633+
634 buffer->offset = m_stream->pos();
635- qint64 bytesRead = m_stream->read((char*)GST_BUFFER_DATA(buffer), size);
636+ qint64 bytesRead = m_stream->read((char*)bufferData, size);
637 buffer->offset_end = buffer->offset + bytesRead - 1;
638
639+#if GST_CHECK_VERSION(1,0,0)
640+ gst_buffer_unmap(buffer, &mapInfo);
641+#endif
642+
643 if (bytesRead > 0) {
644 m_dataRequested = false;
645 m_enoughData = false;
646 GstFlowReturn ret = gst_app_src_push_buffer (GST_APP_SRC (element()), buffer);
647 if (ret == GST_FLOW_ERROR) {
648 qWarning()<<"appsrc: push buffer error";
649+#if GST_CHECK_VERSION(1,0,0)
650+ } else if (ret == GST_FLOW_FLUSHING) {
651+ qWarning()<<"appsrc: push buffer wrong state";
652+ }
653+#else
654 } else if (ret == GST_FLOW_WRONG_STATE) {
655 qWarning()<<"appsrc: push buffer wrong state";
656- } else if (ret == GST_FLOW_RESEND) {
657+ }
658+#endif
659+#if GST_VERSION_MAJOR < 1
660+ else if (ret == GST_FLOW_RESEND) {
661 qWarning()<<"appsrc: push buffer resend";
662 }
663+#endif
664 }
665 } else {
666 sendEOS();
667diff --git a/src/gsttools/qgstreameraudioprobecontrol.cpp b/src/gsttools/qgstreameraudioprobecontrol.cpp
668index 3baca53..be3de3f 100644
669--- a/src/gsttools/qgstreameraudioprobecontrol.cpp
670+++ b/src/gsttools/qgstreameraudioprobecontrol.cpp
671@@ -45,9 +45,14 @@ QGstreamerAudioProbeControl::~QGstreamerAudioProbeControl()
672
673 }
674
675+#if GST_CHECK_VERSION(1,0,0)
676+void QGstreamerAudioProbeControl::bufferProbed(GstBuffer* buffer, GstCaps* caps)
677+{
678+#else
679 void QGstreamerAudioProbeControl::bufferProbed(GstBuffer* buffer)
680 {
681- GstCaps* caps = gst_buffer_get_caps(buffer);
682+ gst_buffer_get_caps(buffer);
683+#endif
684 if (!caps)
685 return;
686
687@@ -56,8 +61,20 @@ void QGstreamerAudioProbeControl::bufferProbed(GstBuffer* buffer)
688 if (!format.isValid())
689 return;
690
691+ #if GST_CHECK_VERSION(1,0,0)
692+
693+ GstMapInfo info;
694+
695+ gst_buffer_map (buffer, &info, GST_MAP_READ);
696+ QAudioBuffer audioBuffer = QAudioBuffer(QByteArray((const char*)info.data, info.size), format);
697+ gst_buffer_unmap(buffer, &info);
698+
699+ #else
700+
701 QAudioBuffer audioBuffer = QAudioBuffer(QByteArray((const char*)buffer->data, buffer->size), format);
702
703+ #endif
704+
705 {
706 QMutexLocker locker(&m_bufferMutex);
707 m_pendingBuffer = audioBuffer;
708diff --git a/src/gsttools/qgstreamerbushelper.cpp b/src/gsttools/qgstreamerbushelper.cpp
709index 84eda46..eb1fc36 100644
710--- a/src/gsttools/qgstreamerbushelper.cpp
711+++ b/src/gsttools/qgstreamerbushelper.cpp
712@@ -154,13 +154,21 @@ QGstreamerBusHelper::QGstreamerBusHelper(GstBus* bus, QObject* parent):
713 QObject(parent)
714 {
715 d = new QGstreamerBusHelperPrivate(this, bus);
716+#if GST_CHECK_VERSION(1,0,0)
717+ gst_bus_set_sync_handler(bus, (GstBusSyncHandler)syncGstBusFilter, d, 0);
718+#else
719 gst_bus_set_sync_handler(bus, (GstBusSyncHandler)syncGstBusFilter, d);
720+#endif
721 gst_object_ref(GST_OBJECT(bus));
722 }
723
724 QGstreamerBusHelper::~QGstreamerBusHelper()
725 {
726+#if GST_CHECK_VERSION(1,0,0)
727+ gst_bus_set_sync_handler(d->bus(), 0, 0, 0);
728+#else
729 gst_bus_set_sync_handler(d->bus(),0,0);
730+#endif
731 gst_object_unref(GST_OBJECT(d->bus()));
732 }
733
734diff --git a/src/gsttools/qgstreamervideoprobecontrol.cpp b/src/gsttools/qgstreamervideoprobecontrol.cpp
735index a78a9da..9c31140 100644
736--- a/src/gsttools/qgstreamervideoprobecontrol.cpp
737+++ b/src/gsttools/qgstreamervideoprobecontrol.cpp
738@@ -67,12 +67,21 @@ void QGstreamerVideoProbeControl::stopFlushing()
739 m_flushing = false;
740 }
741
742+#if GST_CHECK_VERSION(1,0,0)
743+void QGstreamerVideoProbeControl::bufferProbed(GstBuffer* buffer, GstCaps* caps)
744+#else
745 void QGstreamerVideoProbeControl::bufferProbed(GstBuffer* buffer)
746+#endif
747 {
748 if (m_flushing)
749 return;
750
751+#if GST_CHECK_VERSION(1,0,0)
752+ // FIXME:
753+ // GstCaps* caps = NULL;//gst_buffer_get_caps(buffer);
754+#else
755 GstCaps* caps = gst_buffer_get_caps(buffer);
756+#endif
757 if (!caps)
758 return;
759
760diff --git a/src/gsttools/qgstreamervideorenderer.cpp b/src/gsttools/qgstreamervideorenderer.cpp
761index 2b66f76..804dce9 100644
762--- a/src/gsttools/qgstreamervideorenderer.cpp
763+++ b/src/gsttools/qgstreamervideorenderer.cpp
764@@ -35,8 +35,7 @@
765 #include <private/qvideosurfacegstsink_p.h>
766 #include <private/qgstutils_p.h>
767 #include <qabstractvideosurface.h>
768-
769-#include <QDebug>
770+#include <QtCore/qdebug.h>
771
772 #include <gst/gst.h>
773
774diff --git a/src/gsttools/qgstreamervideowidget.cpp b/src/gsttools/qgstreamervideowidget.cpp
775index aa2e2a3..14c1f04 100644
776--- a/src/gsttools/qgstreamervideowidget.cpp
777+++ b/src/gsttools/qgstreamervideowidget.cpp
778@@ -40,8 +40,13 @@
779 #include <QtGui/qpainter.h>
780
781 #include <gst/gst.h>
782+
783+#if !GST_CHECK_VERSION(1,0,0)
784 #include <gst/interfaces/xoverlay.h>
785 #include <gst/interfaces/propertyprobe.h>
786+#else
787+#include <gst/video/videooverlay.h>
788+#endif
789
790 QT_BEGIN_NAMESPACE
791
792@@ -169,9 +174,13 @@ bool QGstreamerVideoWidgetControl::processSyncMessage(const QGstreamerMessage &m
793 {
794 GstMessage* gm = message.rawMessage();
795
796+#if !GST_CHECK_VERSION(1,0,0)
797 if (gm && (GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) &&
798 gst_structure_has_name(gm->structure, "prepare-xwindow-id")) {
799-
800+#else
801+ if (gm && (GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) &&
802+ gst_structure_has_name(gst_message_get_structure(gm), "prepare-window-handle")) {
803+#endif
804 setOverlay();
805 QMetaObject::invokeMethod(this, "updateNativeVideoSize", Qt::QueuedConnection);
806 return true;
807@@ -199,18 +208,29 @@ bool QGstreamerVideoWidgetControl::processBusMessage(const QGstreamerMessage &me
808
809 void QGstreamerVideoWidgetControl::setOverlay()
810 {
811+#if !GST_CHECK_VERSION(1,0,0)
812 if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) {
813 gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(m_videoSink), m_windowId);
814 }
815+#else
816+ if (m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) {
817+ gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(m_videoSink), m_windowId);
818+ }
819+#endif
820 }
821
822 void QGstreamerVideoWidgetControl::updateNativeVideoSize()
823 {
824 if (m_videoSink) {
825 //find video native size to update video widget size hint
826- GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink");
827+ GstPad *pad = gst_element_get_static_pad(m_videoSink, "sink");
828+#if !GST_CHECK_VERSION(1,0,0)
829 GstCaps *caps = gst_pad_get_negotiated_caps(pad);
830 gst_object_unref(GST_OBJECT(pad));
831+#else
832+ GstCaps *caps = gst_pad_get_current_caps(pad);
833+ gst_object_unref(GST_OBJECT(pad));
834+#endif
835
836 if (caps) {
837 m_widget->setNativeSize(QGstUtils::capsCorrectedResolution(caps));
838@@ -225,8 +245,13 @@ void QGstreamerVideoWidgetControl::updateNativeVideoSize()
839
840 void QGstreamerVideoWidgetControl::windowExposed()
841 {
842+#if !GST_CHECK_VERSION(1,0,0)
843 if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink))
844 gst_x_overlay_expose(GST_X_OVERLAY(m_videoSink));
845+#else
846+ if (m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink))
847+ gst_video_overlay_expose(GST_VIDEO_OVERLAY(m_videoSink));
848+#endif
849 }
850
851 QWidget *QGstreamerVideoWidgetControl::videoWidget()
852diff --git a/src/gsttools/qgstreamervideowindow.cpp b/src/gsttools/qgstreamervideowindow.cpp
853index a373dcc..587b010 100644
854--- a/src/gsttools/qgstreamervideowindow.cpp
855+++ b/src/gsttools/qgstreamervideowindow.cpp
856@@ -37,8 +37,12 @@
857 #include <QtCore/qdebug.h>
858
859 #include <gst/gst.h>
860+#include <gst/video/videooverlay.h>
861+
862+#if !GST_CHECK_VERSION(1,0,0)
863 #include <gst/interfaces/xoverlay.h>
864 #include <gst/interfaces/propertyprobe.h>
865+#endif
866
867
868 QGstreamerVideoWindow::QGstreamerVideoWindow(QObject *parent, const char *elementName)
869@@ -49,18 +53,25 @@ QGstreamerVideoWindow::QGstreamerVideoWindow(QObject *parent, const char *elemen
870 , m_fullScreen(false)
871 , m_colorKey(QColor::Invalid)
872 {
873- if (elementName)
874+ if (elementName) {
875 m_videoSink = gst_element_factory_make(elementName, NULL);
876- else
877+ } else {
878 m_videoSink = gst_element_factory_make("xvimagesink", NULL);
879+ }
880
881 if (m_videoSink) {
882 qt_gst_object_ref_sink(GST_OBJECT(m_videoSink)); //Take ownership
883
884 GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink");
885+#if GST_CHECK_VERSION(1,0,0)
886+ m_bufferProbeId = gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, padBufferProbe, this, NULL);
887+#else
888 m_bufferProbeId = gst_pad_add_buffer_probe(pad, G_CALLBACK(padBufferProbe), this);
889+#endif
890 gst_object_unref(GST_OBJECT(pad));
891 }
892+ else
893+ qDebug() << "No m_videoSink available!";
894 }
895
896 QGstreamerVideoWindow::~QGstreamerVideoWindow()
897@@ -82,11 +93,15 @@ void QGstreamerVideoWindow::setWinId(WId id)
898 WId oldId = m_windowId;
899
900 m_windowId = id;
901-
902+#if GST_CHECK_VERSION(1,0,0)
903+ if (m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) {
904+ gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(m_videoSink), m_windowId);
905+ }
906+#else
907 if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) {
908 gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(m_videoSink), m_windowId);
909 }
910-
911+#endif
912 if (!oldId)
913 emit readyChanged(true);
914
915@@ -97,7 +112,20 @@ void QGstreamerVideoWindow::setWinId(WId id)
916 bool QGstreamerVideoWindow::processSyncMessage(const QGstreamerMessage &message)
917 {
918 GstMessage* gm = message.rawMessage();
919+#if GST_CHECK_VERSION(1,0,0)
920+ const GstStructure *s = gst_message_get_structure(gm);
921+ if ((GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) &&
922+ gst_structure_has_name(s, "prepare-window-handle") &&
923+ m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) {
924+
925+ gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(m_videoSink), m_windowId);
926
927+ GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink");
928+ m_bufferProbeId = gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, padBufferProbe, this, NULL);
929+
930+ return true;
931+ }
932+#else
933 if ((GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) &&
934 gst_structure_has_name(gm->structure, "prepare-xwindow-id") &&
935 m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) {
936@@ -110,7 +138,7 @@ bool QGstreamerVideoWindow::processSyncMessage(const QGstreamerMessage &message)
937
938 return true;
939 }
940-
941+#endif
942 return false;
943 }
944
945@@ -122,7 +150,19 @@ QRect QGstreamerVideoWindow::displayRect() const
946 void QGstreamerVideoWindow::setDisplayRect(const QRect &rect)
947 {
948 m_displayRect = rect;
949-
950+#if GST_CHECK_VERSION(1,0,0)
951+ if (m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) {
952+ if (m_displayRect.isEmpty())
953+ gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(m_videoSink), -1, -1, -1, -1);
954+ else
955+ gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(m_videoSink),
956+ m_displayRect.x(),
957+ m_displayRect.y(),
958+ m_displayRect.width(),
959+ m_displayRect.height());
960+ repaint();
961+ }
962+#else
963 if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) {
964 #if GST_VERSION_MICRO >= 29
965 if (m_displayRect.isEmpty())
966@@ -136,6 +176,7 @@ void QGstreamerVideoWindow::setDisplayRect(const QRect &rect)
967 repaint();
968 #endif
969 }
970+#endif
971 }
972
973 Qt::AspectRatioMode QGstreamerVideoWindow::aspectRatioMode() const
974@@ -157,6 +198,16 @@ void QGstreamerVideoWindow::setAspectRatioMode(Qt::AspectRatioMode mode)
975
976 void QGstreamerVideoWindow::repaint()
977 {
978+#if GST_CHECK_VERSION(1,0,0)
979+ if (m_videoSink && GST_IS_VIDEO_OVERLAY(m_videoSink)) {
980+ //don't call gst_x_overlay_expose if the sink is in null state
981+ GstState state = GST_STATE_NULL;
982+ GstStateChangeReturn res = gst_element_get_state(m_videoSink, &state, NULL, 1000000);
983+ if (res != GST_STATE_CHANGE_FAILURE && state != GST_STATE_NULL) {
984+ gst_video_overlay_expose(GST_VIDEO_OVERLAY(m_videoSink));
985+ }
986+ }
987+#else
988 if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) {
989 //don't call gst_x_overlay_expose if the sink is in null state
990 GstState state = GST_STATE_NULL;
991@@ -165,6 +216,7 @@ void QGstreamerVideoWindow::repaint()
992 gst_x_overlay_expose(GST_X_OVERLAY(m_videoSink));
993 }
994 }
995+#endif
996 }
997
998 QColor QGstreamerVideoWindow::colorKey() const
999@@ -296,11 +348,22 @@ QSize QGstreamerVideoWindow::nativeSize() const
1000 return m_nativeSize;
1001 }
1002
1003+#if GST_CHECK_VERSION(1,0,0)
1004+GstPadProbeReturn QGstreamerVideoWindow::padBufferProbe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data)
1005+#else
1006 void QGstreamerVideoWindow::padBufferProbe(GstPad *pad, GstBuffer * /* buffer */, gpointer user_data)
1007+#endif
1008 {
1009 QGstreamerVideoWindow *control = reinterpret_cast<QGstreamerVideoWindow*>(user_data);
1010 QMetaObject::invokeMethod(control, "updateNativeVideoSize", Qt::QueuedConnection);
1011+
1012+#if GST_CHECK_VERSION(1,0,0)
1013+ Q_UNUSED(pad);
1014+ Q_UNUSED(info);
1015+ return GST_PAD_PROBE_REMOVE;
1016+#else
1017 gst_pad_remove_buffer_probe(pad, control->m_bufferProbeId);
1018+#endif
1019 }
1020
1021 void QGstreamerVideoWindow::updateNativeVideoSize()
1022@@ -311,7 +374,11 @@ void QGstreamerVideoWindow::updateNativeVideoSize()
1023 if (m_videoSink) {
1024 //find video native size to update video widget size hint
1025 GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink");
1026+#if GST_CHECK_VERSION(1,0,0)
1027+ GstCaps *caps = gst_pad_get_current_caps(pad);
1028+#else
1029 GstCaps *caps = gst_pad_get_negotiated_caps(pad);
1030+#endif
1031 gst_object_unref(GST_OBJECT(pad));
1032
1033 if (caps) {
1034diff --git a/src/gsttools/qgstutils.cpp b/src/gsttools/qgstutils.cpp
1035index 1281d3f..fe3fba0 100644
1036--- a/src/gsttools/qgstutils.cpp
1037+++ b/src/gsttools/qgstutils.cpp
1038@@ -89,8 +89,13 @@ static void addTagToMap(const GstTagList *list,
1039 break;
1040 default:
1041 // GST_TYPE_DATE is a function, not a constant, so pull it out of the switch
1042+#if GST_CHECK_VERSION(1,0,0)
1043+ if (G_VALUE_TYPE(&val) == G_TYPE_DATE) {
1044+ const GDate *date = (const GDate *)g_value_get_boxed(&val);
1045+#else
1046 if (G_VALUE_TYPE(&val) == GST_TYPE_DATE) {
1047 const GDate *date = gst_value_get_date(&val);
1048+#endif
1049 if (g_date_valid(date)) {
1050 int year = g_date_get_year(date);
1051 int month = g_date_get_month(date);
1052@@ -254,6 +259,24 @@ QAudioFormat QGstUtils::audioFormatForCaps(const GstCaps *caps)
1053 }
1054
1055
1056+
1057+#if GST_CHECK_VERSION(1,0,0)
1058+/*!
1059+ Returns audio format for a buffer.
1060+ If the buffer doesn't have a valid audio format, an empty QAudioFormat is returned.
1061+*/
1062+
1063+QAudioFormat QGstUtils::audioFormatForSample(GstSample *sample)
1064+{
1065+ GstCaps* caps = gst_sample_get_caps(sample);
1066+ if (!caps)
1067+ return QAudioFormat();
1068+
1069+ QAudioFormat format = QGstUtils::audioFormatForCaps(caps);
1070+ gst_caps_unref(caps);
1071+ return format;
1072+}
1073+#else
1074 /*!
1075 Returns audio format for a buffer.
1076 If the buffer doesn't have a valid audio format, an empty QAudioFormat is returned.
1077@@ -269,7 +292,7 @@ QAudioFormat QGstUtils::audioFormatForBuffer(GstBuffer *buffer)
1078 gst_caps_unref(caps);
1079 return format;
1080 }
1081-
1082+#endif
1083
1084 /*!
1085 Builds GstCaps for an audio format.
1086@@ -581,7 +604,7 @@ QByteArray QGstUtils::cameraDriver(const QString &device, GstElementFactory *fac
1087
1088 void qt_gst_object_ref_sink(gpointer object)
1089 {
1090-#if (GST_VERSION_MAJOR >= 0) && (GST_VERSION_MINOR >= 10) && (GST_VERSION_MICRO >= 24)
1091+#if (GST_VERSION_MAJOR >= 0) && (GST_VERSION_MINOR >= 10) && (GST_VERSION_MICRO >= 24) || GST_CHECK_VERSION(1,0,0)
1092 gst_object_ref_sink(object);
1093 #else
1094 g_return_if_fail (GST_IS_OBJECT(object));
1095diff --git a/src/gsttools/qgstvideobuffer.cpp b/src/gsttools/qgstvideobuffer.cpp
1096index 18702ec..93f22f5 100644
1097--- a/src/gsttools/qgstvideobuffer.cpp
1098+++ b/src/gsttools/qgstvideobuffer.cpp
1099@@ -70,21 +70,33 @@ QAbstractVideoBuffer::MapMode QGstVideoBuffer::mapMode() const
1100 uchar *QGstVideoBuffer::map(MapMode mode, int *numBytes, int *bytesPerLine)
1101 {
1102 if (mode != NotMapped && m_mode == NotMapped) {
1103- if (numBytes)
1104- *numBytes = m_buffer->size;
1105+ m_mode = mode;
1106
1107 if (bytesPerLine)
1108 *bytesPerLine = m_bytesPerLine;
1109
1110- m_mode = mode;
1111+#if GST_CHECK_VERSION(1,0,0)
1112+ gst_buffer_map(m_buffer, &m_mapInfo, GST_MAP_READ);
1113+ if (numBytes)
1114+ *numBytes = m_mapInfo.size;
1115+
1116+ return m_mapInfo.data;
1117+#else
1118+ if (numBytes)
1119+ *numBytes = m_buffer->size;
1120
1121 return m_buffer->data;
1122+#endif
1123 } else {
1124 return 0;
1125 }
1126 }
1127 void QGstVideoBuffer::unmap()
1128 {
1129+#if GST_CHECK_VERSION(1,0,0)
1130+ if (m_mode != NotMapped)
1131+ gst_buffer_unmap(m_buffer, &m_mapInfo);
1132+#endif
1133 m_mode = NotMapped;
1134 }
1135
1136diff --git a/src/gsttools/qvideosurfacegstsink.cpp b/src/gsttools/qvideosurfacegstsink.cpp
1137index f3e2d88..94aaee7 100644
1138--- a/src/gsttools/qvideosurfacegstsink.cpp
1139+++ b/src/gsttools/qvideosurfacegstsink.cpp
1140@@ -43,7 +43,11 @@
1141
1142 #include "qvideosurfacegstsink_p.h"
1143
1144-//#define DEBUG_VIDEO_SURFACE_SINK
1145+#if GST_VERSION_MAJOR >=1
1146+#include <gst/video/video.h>
1147+#endif
1148+
1149+#define DEBUG_VIDEO_SURFACE_SINK
1150
1151 QT_BEGIN_NAMESPACE
1152
1153@@ -62,10 +66,12 @@ QVideoSurfaceGstDelegate::QVideoSurfaceGstDelegate(
1154 if (m_surface) {
1155 foreach (QObject *instance, bufferPoolLoader()->instances(QGstBufferPoolPluginKey)) {
1156 QGstBufferPoolInterface* plugin = qobject_cast<QGstBufferPoolInterface*>(instance);
1157+
1158 if (plugin) {
1159 m_pools.append(plugin);
1160 }
1161 }
1162+
1163 updateSupportedFormats();
1164 connect(m_surface, SIGNAL(supportedFormatsChanged()), this, SLOT(updateSupportedFormats()));
1165 }
1166@@ -198,6 +204,8 @@ GstFlowReturn QVideoSurfaceGstDelegate::render(GstBuffer *buffer)
1167 if (QThread::currentThread() == thread()) {
1168 if (!m_surface.isNull())
1169 m_surface->present(m_frame);
1170+ else
1171+ qWarning() << "m_surface.isNull().";
1172 } else {
1173 QMetaObject::invokeMethod(this, "queuedRender", Qt::QueuedConnection);
1174 m_renderCondition.wait(&m_mutex, 300);
1175@@ -283,6 +291,27 @@ void QVideoSurfaceGstDelegate::updateSupportedFormats()
1176 }
1177 }
1178
1179+#if GST_CHECK_VERSION(1,0,0)
1180+struct YuvFormat
1181+{
1182+ QVideoFrame::PixelFormat pixelFormat;
1183+ GstVideoFormat vfmt;
1184+ guint32 fourcc;
1185+ int bitsPerPixel;
1186+};
1187+
1188+static const YuvFormat qt_yuvColorLookup[] =
1189+{
1190+ { QVideoFrame::Format_YUV420P, GST_VIDEO_FORMAT_I420, GST_MAKE_FOURCC('I','4','2','0'), 8 },
1191+ { QVideoFrame::Format_YV12, GST_VIDEO_FORMAT_YV12, GST_MAKE_FOURCC('Y','V','1','2'), 8 },
1192+ { QVideoFrame::Format_UYVY, GST_VIDEO_FORMAT_UYVY, GST_MAKE_FOURCC('U','Y','V','Y'), 16 },
1193+ { QVideoFrame::Format_YUYV, GST_VIDEO_FORMAT_YUY2, GST_MAKE_FOURCC('Y','U','Y','2'), 16 },
1194+ { QVideoFrame::Format_NV12, GST_VIDEO_FORMAT_NV12, GST_MAKE_FOURCC('N','V','1','2'), 8 },
1195+ { QVideoFrame::Format_NV21, GST_VIDEO_FORMAT_NV21, GST_MAKE_FOURCC('N','V','2','1'), 8 },
1196+ { QVideoFrame::Format_AYUV444, GST_VIDEO_FORMAT_AYUV, GST_MAKE_FOURCC('A','Y','U','V'), 32 },
1197+};
1198+
1199+#else
1200 struct YuvFormat
1201 {
1202 QVideoFrame::PixelFormat pixelFormat;
1203@@ -300,6 +329,7 @@ static const YuvFormat qt_yuvColorLookup[] =
1204 { QVideoFrame::Format_NV21, GST_MAKE_FOURCC('N','V','2','1'), 8 },
1205 { QVideoFrame::Format_AYUV444, GST_MAKE_FOURCC('A','Y','U','V'), 32 }
1206 };
1207+#endif
1208
1209 static int indexOfYuvColor(QVideoFrame::PixelFormat format)
1210 {
1211@@ -312,12 +342,20 @@ static int indexOfYuvColor(QVideoFrame::PixelFormat format)
1212 return -1;
1213 }
1214
1215+#if GST_VERSION_MAJOR >=1
1216+static int indexOfYuvColor(GstVideoFormat vfmt)
1217+#else
1218 static int indexOfYuvColor(guint32 fourcc)
1219+#endif
1220 {
1221 const int count = sizeof(qt_yuvColorLookup) / sizeof(YuvFormat);
1222
1223 for (int i = 0; i < count; ++i)
1224+#if GST_VERSION_MAJOR >=1
1225+ if (qt_yuvColorLookup[i].vfmt == vfmt)
1226+#else
1227 if (qt_yuvColorLookup[i].fourcc == fourcc)
1228+#endif
1229 return i;
1230
1231 return -1;
1232@@ -388,13 +426,13 @@ GType QVideoSurfaceGstSink::get_type()
1233 if (type == 0) {
1234 static const GTypeInfo info =
1235 {
1236- sizeof(QVideoSurfaceGstSinkClass), // class_size
1237+ sizeof(QVideoSurfaceGstSinkClass), // class_size
1238 base_init, // base_init
1239 NULL, // base_finalize
1240 class_init, // class_init
1241 NULL, // class_finalize
1242 NULL, // class_data
1243- sizeof(QVideoSurfaceGstSink), // instance_size
1244+ sizeof(QVideoSurfaceGstSink), // instance_size
1245 0, // n_preallocs
1246 instance_init, // instance_init
1247 0 // value_table
1248@@ -419,7 +457,11 @@ void QVideoSurfaceGstSink::class_init(gpointer g_class, gpointer class_data)
1249 GstBaseSinkClass *base_sink_class = reinterpret_cast<GstBaseSinkClass *>(g_class);
1250 base_sink_class->get_caps = QVideoSurfaceGstSink::get_caps;
1251 base_sink_class->set_caps = QVideoSurfaceGstSink::set_caps;
1252+// FIXME:
1253+#if GST_CHECK_VERSION(1,0,0)
1254+#else
1255 base_sink_class->buffer_alloc = QVideoSurfaceGstSink::buffer_alloc;
1256+#endif
1257 base_sink_class->start = QVideoSurfaceGstSink::start;
1258 base_sink_class->stop = QVideoSurfaceGstSink::stop;
1259
1260@@ -434,6 +476,18 @@ void QVideoSurfaceGstSink::base_init(gpointer g_class)
1261 {
1262 static GstStaticPadTemplate sink_pad_template = GST_STATIC_PAD_TEMPLATE(
1263 "sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS(
1264+#if GST_CHECK_VERSION(1,0,0)
1265+ "video/x-raw, "
1266+ "format = (string) RGBA,"
1267+ "framerate = (fraction) [ 0, MAX ], "
1268+ "width = (int) [ 1, MAX ], "
1269+ "height = (int) [ 1, MAX ]; "
1270+ "video/x-raw, "
1271+ "format = (string) I420,"
1272+ "framerate = (fraction) [ 0, MAX ], "
1273+ "width = (int) [ 1, MAX ], "
1274+ "height = (int) [ 1, MAX ]"));
1275+#else
1276 "video/x-raw-rgb, "
1277 "framerate = (fraction) [ 0, MAX ], "
1278 "width = (int) [ 1, MAX ], "
1279@@ -442,6 +496,7 @@ void QVideoSurfaceGstSink::base_init(gpointer g_class)
1280 "framerate = (fraction) [ 0, MAX ], "
1281 "width = (int) [ 1, MAX ], "
1282 "height = (int) [ 1, MAX ]"));
1283+#endif
1284
1285 gst_element_class_add_pad_template(
1286 GST_ELEMENT_CLASS(g_class), gst_static_pad_template_get(&sink_pad_template));
1287@@ -490,7 +545,11 @@ GstStateChangeReturn QVideoSurfaceGstSink::change_state(
1288 element, transition);
1289 }
1290
1291-GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base)
1292+GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base
1293+#if GST_CHECK_VERSION(1,0,0)
1294+ , GstCaps* /*filterCaps*/
1295+#endif
1296+)
1297 {
1298 VO_SINK(base);
1299
1300@@ -503,6 +562,7 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base)
1301 QList<QVideoFrame::PixelFormat> poolHandleFormats;
1302 sink->delegate->poolMutex()->lock();
1303 QGstBufferPoolInterface *pool = sink->delegate->pool();
1304+
1305 if (pool)
1306 poolHandleFormats = sink->delegate->supportedPixelFormats(pool->handleType());
1307 sink->delegate->poolMutex()->unlock();
1308@@ -518,11 +578,19 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base)
1309
1310 if (index != -1) {
1311 gst_caps_append_structure(caps, gst_structure_new(
1312+#if GST_CHECK_VERSION(1,0,0)
1313+ "video/x-raw",
1314+#else
1315 "video/x-raw-yuv",
1316+#endif
1317 "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, INT_MAX, 1,
1318 "width" , GST_TYPE_INT_RANGE, 1, INT_MAX,
1319 "height" , GST_TYPE_INT_RANGE, 1, INT_MAX,
1320+#if GST_CHECK_VERSION(1,0,0)
1321+ "format" , G_TYPE_STRING, gst_video_format_to_string(qt_yuvColorLookup[index].vfmt),
1322+#else
1323 "format" , GST_TYPE_FOURCC, qt_yuvColorLookup[index].fourcc,
1324+#endif
1325 NULL));
1326 continue;
1327 }
1328@@ -532,7 +600,18 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base)
1329 for (int i = 0; i < count; ++i) {
1330 if (qt_rgbColorLookup[i].pixelFormat == format) {
1331 GstStructure *structure = gst_structure_new(
1332+#if GST_CHECK_VERSION(1,0,0)
1333+ "video/x-raw",
1334+ "format" , G_TYPE_STRING, gst_video_format_to_string(gst_video_format_from_masks(qt_rgbColorLookup[i].depth,
1335+ qt_rgbColorLookup[i].bitsPerPixel,
1336+ qt_rgbColorLookup[i].endianness,
1337+ qt_rgbColorLookup[i].red,
1338+ qt_rgbColorLookup[i].green,
1339+ qt_rgbColorLookup[i].blue,
1340+ qt_rgbColorLookup[i].alpha)),
1341+#else
1342 "video/x-raw-rgb",
1343+#endif
1344 "framerate" , GST_TYPE_FRACTION_RANGE, 0, 1, INT_MAX, 1,
1345 "width" , GST_TYPE_INT_RANGE, 1, INT_MAX,
1346 "height" , GST_TYPE_INT_RANGE, 1, INT_MAX,
1347@@ -553,6 +632,7 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base)
1348 }
1349 }
1350
1351+// printf("get Caps %"GST_PTR_FORMAT"\n", caps);
1352 return caps;
1353 }
1354
1355@@ -592,7 +672,7 @@ gboolean QVideoSurfaceGstSink::set_caps(GstBaseSink *base, GstCaps *caps)
1356 sink->lastRequestedCaps = 0;
1357
1358 #ifdef DEBUG_VIDEO_SURFACE_SINK
1359- qDebug() << "Staring video surface, format:";
1360+ qDebug() << "Starting video surface, format:";
1361 qDebug() << format;
1362 qDebug() << "bytesPerLine:" << bytesPerLine;
1363 #endif
1364@@ -617,11 +697,49 @@ QVideoSurfaceFormat QVideoSurfaceGstSink::formatForCaps(GstCaps *caps, int *byte
1365 gst_structure_get_int(structure, "width", &size.rwidth());
1366 gst_structure_get_int(structure, "height", &size.rheight());
1367
1368+#if GST_CHECK_VERSION(1, 0, 0)
1369+ GstVideoInfo info;
1370+ gst_video_info_from_caps(&info, caps);
1371+
1372+ if (info.finfo->format == GST_VIDEO_FORMAT_I420) {
1373+ int index = indexOfYuvColor(GST_VIDEO_FORMAT_I420);
1374+
1375+ if (index != -1) {
1376+ pixelFormat = qt_yuvColorLookup[index].pixelFormat;
1377+ bitsPerPixel = qt_yuvColorLookup[index].bitsPerPixel;
1378+ }
1379+ } else if (info.finfo->format == GST_VIDEO_FORMAT_RGBx) {
1380+ int depth = 0;
1381+ int endianness = 0;
1382+ int red = 0;
1383+ int green = 0;
1384+ int blue = 0;
1385+ int alpha = 0;
1386+
1387+ gst_structure_get_int(structure, "bpp", &bitsPerPixel);
1388+ gst_structure_get_int(structure, "depth", &depth);
1389+ gst_structure_get_int(structure, "endianness", &endianness);
1390+ gst_structure_get_int(structure, "red_mask", &red);
1391+ gst_structure_get_int(structure, "green_mask", &green);
1392+ gst_structure_get_int(structure, "blue_mask", &blue);
1393+ gst_structure_get_int(structure, "alpha_mask", &alpha);
1394+
1395+ int index = indexOfRgbColor(bitsPerPixel, depth, endianness, red, green, blue, alpha);
1396+ printf("INDEX %x\n", index);
1397+ if (index != -1)
1398+ pixelFormat = qt_rgbColorLookup[index].pixelFormat;
1399+ }
1400+#else
1401+
1402 if (qstrcmp(gst_structure_get_name(structure), "video/x-raw-yuv") == 0) {
1403 guint32 fourcc = 0;
1404+#if GST_CHECK_VERSION(1, 0, 0)
1405+ int index = indexOfYuvColor(gst_video_format_from_string(gst_structure_get_string(structure, "format")));
1406+#else
1407 gst_structure_get_fourcc(structure, "format", &fourcc);
1408
1409 int index = indexOfYuvColor(fourcc);
1410+#endif
1411 if (index != -1) {
1412 pixelFormat = qt_yuvColorLookup[index].pixelFormat;
1413 bitsPerPixel = qt_yuvColorLookup[index].bitsPerPixel;
1414@@ -647,6 +765,7 @@ QVideoSurfaceFormat QVideoSurfaceGstSink::formatForCaps(GstCaps *caps, int *byte
1415 if (index != -1)
1416 pixelFormat = qt_rgbColorLookup[index].pixelFormat;
1417 }
1418+#endif
1419
1420 if (pixelFormat != QVideoFrame::Format_Invalid) {
1421 QVideoSurfaceFormat format(size, pixelFormat, handleType);
1422@@ -722,7 +841,11 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc(
1423
1424 poolLock.unlock();
1425
1426+#if GST_CHECK_VERSION(1,0,0)
1427+ GstCaps *intersection = gst_caps_intersect(get_caps(GST_BASE_SINK(sink), NULL), caps);
1428+#else
1429 GstCaps *intersection = gst_caps_intersect(get_caps(GST_BASE_SINK(sink)), caps);
1430+#endif
1431
1432 if (gst_caps_is_empty (intersection)) {
1433 gst_caps_unref(intersection);
1434@@ -763,7 +886,7 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc(
1435 QVideoSurfaceFormat surfaceFormat = sink->delegate->surfaceFormat();
1436
1437 if (!pool->isFormatSupported(surfaceFormat)) {
1438- //qDebug() << "sink doesn't support native pool format, skip custom buffers allocation";
1439+ qDebug() << "sink doesn't support native pool format, skip custom buffers allocation";
1440 return GST_FLOW_OK;
1441 }
1442
1443@@ -787,7 +910,6 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc(
1444 gboolean QVideoSurfaceGstSink::start(GstBaseSink *base)
1445 {
1446 Q_UNUSED(base);
1447-
1448 return TRUE;
1449 }
1450
1451diff --git a/src/multimedia/gsttools_headers/qgstappsrc_p.h b/src/multimedia/gsttools_headers/qgstappsrc_p.h
1452index 4af9252..0e0fc0a 100644
1453--- a/src/multimedia/gsttools_headers/qgstappsrc_p.h
1454+++ b/src/multimedia/gsttools_headers/qgstappsrc_p.h
1455@@ -39,7 +39,10 @@
1456
1457 #include <gst/gst.h>
1458 #include <gst/app/gstappsrc.h>
1459+
1460+#if GST_VERSION_MAJOR < 1
1461 #include <gst/app/gstappbuffer.h>
1462+#endif
1463
1464 QT_BEGIN_NAMESPACE
1465
1466diff --git a/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h b/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h
1467index 34669b8..0f3b165 100644
1468--- a/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h
1469+++ b/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h
1470@@ -47,8 +47,11 @@ class QGstreamerAudioProbeControl : public QMediaAudioProbeControl
1471 public:
1472 explicit QGstreamerAudioProbeControl(QObject *parent);
1473 virtual ~QGstreamerAudioProbeControl();
1474-
1475+#if GST_CHECK_VERSION(1,0,0)
1476+ void bufferProbed(GstBuffer* buffer, GstCaps* caps);
1477+#else
1478 void bufferProbed(GstBuffer* buffer);
1479+#endif
1480
1481 private slots:
1482 void bufferProbed();
1483diff --git a/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h b/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h
1484index 49064f9..fce6309 100644
1485--- a/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h
1486+++ b/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h
1487@@ -48,7 +48,11 @@ public:
1488 explicit QGstreamerVideoProbeControl(QObject *parent);
1489 virtual ~QGstreamerVideoProbeControl();
1490
1491+#if GST_CHECK_VERSION(1,0,0)
1492+ void bufferProbed(GstBuffer* buffer, GstCaps*);
1493+#else
1494 void bufferProbed(GstBuffer* buffer);
1495+#endif
1496 void startFlushing();
1497 void stopFlushing();
1498
1499diff --git a/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h b/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h
1500index 81e5764..c9fdb5c 100644
1501--- a/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h
1502+++ b/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h
1503@@ -104,7 +104,11 @@ private slots:
1504 void updateNativeVideoSize();
1505
1506 private:
1507+#if GST_CHECK_VERSION(1,0,0)
1508+ static GstPadProbeReturn padBufferProbe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data);
1509+#else
1510 static void padBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data);
1511+#endif
1512
1513 GstElement *m_videoSink;
1514 WId m_windowId;
1515diff --git a/src/multimedia/gsttools_headers/qgstutils_p.h b/src/multimedia/gsttools_headers/qgstutils_p.h
1516index 65ff759..6015980 100644
1517--- a/src/multimedia/gsttools_headers/qgstutils_p.h
1518+++ b/src/multimedia/gsttools_headers/qgstutils_p.h
1519@@ -73,7 +73,11 @@ namespace QGstUtils {
1520 QSize capsResolution(const GstCaps *caps);
1521 QSize capsCorrectedResolution(const GstCaps *caps);
1522 QAudioFormat audioFormatForCaps(const GstCaps *caps);
1523+#if GST_CHECK_VERSION(1,0,0)
1524+ QAudioFormat audioFormatForSample(GstSample *sample);
1525+#else
1526 QAudioFormat audioFormatForBuffer(GstBuffer *buffer);
1527+#endif
1528 GstCaps *capsForAudioFormat(QAudioFormat format);
1529 void initializeGst();
1530 QMultimedia::SupportEstimate hasSupport(const QString &mimeType,
1531diff --git a/src/multimedia/gsttools_headers/qgstvideobuffer_p.h b/src/multimedia/gsttools_headers/qgstvideobuffer_p.h
1532index 1e0fda8..be48820 100644
1533--- a/src/multimedia/gsttools_headers/qgstvideobuffer_p.h
1534+++ b/src/multimedia/gsttools_headers/qgstvideobuffer_p.h
1535@@ -71,6 +71,9 @@ private:
1536 int m_bytesPerLine;
1537 MapMode m_mode;
1538 QVariant m_handle;
1539+#if GST_CHECK_VERSION(1,0,0)
1540+ GstMapInfo m_mapInfo;
1541+#endif
1542 };
1543
1544 QT_END_NAMESPACE
1545diff --git a/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h b/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h
1546index 11b305d..01935f7 100644
1547--- a/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h
1548+++ b/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h
1549@@ -131,7 +131,11 @@ private:
1550
1551 static GstStateChangeReturn change_state(GstElement *element, GstStateChange transition);
1552
1553- static GstCaps *get_caps(GstBaseSink *sink);
1554+ static GstCaps *get_caps(GstBaseSink *sink
1555+#if GST_CHECK_VERSION(1,0,0)
1556+ , GstCaps* /*filterCaps*/
1557+#endif
1558+ );
1559 static gboolean set_caps(GstBaseSink *sink, GstCaps *caps);
1560
1561 static GstFlowReturn buffer_alloc(
1562diff --git a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp
1563index 3098aab..9c54663 100644
1564--- a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp
1565+++ b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp
1566@@ -74,29 +74,42 @@ void QGstreamerAudioDecoderServicePlugin::updateSupportedMimeTypes() const
1567 gst_init(NULL, NULL);
1568
1569 GList *plugins, *orig_plugins;
1570+#if GST_CHECK_VERSION(1,0,0)
1571+ orig_plugins = plugins = gst_registry_get_plugin_list (gst_registry_get());
1572+#else
1573 orig_plugins = plugins = gst_default_registry_get_plugin_list ();
1574-
1575+#endif
1576 while (plugins) {
1577 GList *features, *orig_features;
1578
1579 GstPlugin *plugin = (GstPlugin *) (plugins->data);
1580 plugins = g_list_next (plugins);
1581
1582+#if GST_CHECK_VERSION(1,0,0)
1583+ if (GST_OBJECT_FLAG_IS_SET(plugin, GST_PLUGIN_FLAG_BLACKLISTED))
1584+ continue;
1585+#else
1586 if (plugin->flags & (1<<1)) //GST_PLUGIN_FLAG_BLACKLISTED
1587 continue;
1588-
1589- orig_features = features = gst_registry_get_feature_list_by_plugin(gst_registry_get_default (),
1590- plugin->desc.name);
1591+#endif
1592+ orig_features = features = gst_registry_get_feature_list_by_plugin(gst_registry_get (),
1593+ gst_plugin_get_name(plugin));
1594 while (features) {
1595 if (!G_UNLIKELY(features->data == NULL)) {
1596 GstPluginFeature *feature = GST_PLUGIN_FEATURE(features->data);
1597 if (GST_IS_ELEMENT_FACTORY (feature)) {
1598 GstElementFactory *factory = GST_ELEMENT_FACTORY(gst_plugin_feature_load(feature));
1599 if (factory
1600- && factory->numpadtemplates > 0
1601+ && gst_element_factory_get_num_pad_templates(factory) > 0
1602+#if GST_CHECK_VERSION(1,0,0)
1603+ && (qstrcmp(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS), "Codec/Decoder/Audio") == 0
1604+ || qstrcmp(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS), "Codec/Demux") == 0 )
1605+#else
1606 && (qstrcmp(factory->details.klass, "Codec/Decoder/Audio") == 0
1607- || qstrcmp(factory->details.klass, "Codec/Demux") == 0 )) {
1608- const GList *pads = factory->staticpadtemplates;
1609+ || qstrcmp(factory->details.klass, "Codec/Demux") == 0 )
1610+#endif
1611+ ) {
1612+ const GList *pads = gst_element_factory_get_static_pad_templates(factory);
1613 while (pads) {
1614 GstStaticPadTemplate *padtemplate = (GstStaticPadTemplate*)(pads->data);
1615 pads = g_list_next (pads);
1616diff --git a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp
1617index f944a60..72d1cf1 100644
1618--- a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp
1619+++ b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp
1620@@ -446,21 +446,40 @@ QAudioBuffer QGstreamerAudioDecoderSession::read()
1621 if (buffersAvailable == 1)
1622 emit bufferAvailableChanged(false);
1623
1624+ const char* bufferData = 0;
1625+ int bufferSize = 0;
1626+
1627+#if GST_CHECK_VERSION(1,0,0)
1628+ GstSample *sample = gst_app_sink_pull_sample(m_appSink);
1629+ GstBuffer *buffer = gst_sample_get_buffer(sample);
1630+ GstMapInfo mapInfo;
1631+ gst_buffer_map(buffer, &mapInfo, GST_MAP_READ);
1632+ bufferData = (const char*)mapInfo.data;
1633+ bufferSize = mapInfo.size;
1634+ QAudioFormat format = QGstUtils::audioFormatForSample(sample);
1635+#else
1636 GstBuffer *buffer = gst_app_sink_pull_buffer(m_appSink);
1637-
1638+ bufferData = (const char*)buffer->data;
1639+ bufferSize = buffer->size;
1640 QAudioFormat format = QGstUtils::audioFormatForBuffer(buffer);
1641+#endif
1642+
1643 if (format.isValid()) {
1644 // XXX At the moment we have to copy data from GstBuffer into QAudioBuffer.
1645 // We could improve performance by implementing QAbstractAudioBuffer for GstBuffer.
1646 qint64 position = getPositionFromBuffer(buffer);
1647- audioBuffer = QAudioBuffer(QByteArray((const char*)buffer->data, buffer->size), format, position);
1648+ audioBuffer = QAudioBuffer(QByteArray((const char*)bufferData, bufferSize), format, position);
1649 position /= 1000; // convert to milliseconds
1650 if (position != m_position) {
1651 m_position = position;
1652 emit positionChanged(m_position);
1653 }
1654 }
1655+#if GST_CHECK_VERSION(1,0,0)
1656+ gst_sample_unref(sample);
1657+#else
1658 gst_buffer_unref(buffer);
1659+#endif
1660 }
1661
1662 return audioBuffer;
1663@@ -531,7 +550,12 @@ void QGstreamerAudioDecoderSession::addAppSink()
1664
1665 GstAppSinkCallbacks callbacks;
1666 memset(&callbacks, 0, sizeof(callbacks));
1667+#if GST_CHECK_VERSION(1,0,0)
1668+ // ### Should perhaps also rename new_buffer to new_sample.
1669+ callbacks.new_sample = &new_buffer;
1670+#else
1671 callbacks.new_buffer = &new_buffer;
1672+#endif
1673 gst_app_sink_set_callbacks(m_appSink, &callbacks, this, NULL);
1674 gst_app_sink_set_max_buffers(m_appSink, MAX_BUFFERS_IN_QUEUE);
1675 gst_base_sink_set_sync(GST_BASE_SINK(m_appSink), FALSE);
1676@@ -557,8 +581,13 @@ void QGstreamerAudioDecoderSession::updateDuration()
1677 gint64 gstDuration = 0;
1678 int duration = -1;
1679
1680+#if GST_CHECK_VERSION(1,0,0)
1681+ if (m_playbin && gst_element_query_duration(m_playbin, format, &gstDuration))
1682+ duration = gstDuration / 1000000;
1683+#else
1684 if (m_playbin && gst_element_query_duration(m_playbin, &format, &gstDuration))
1685 duration = gstDuration / 1000000;
1686+#endif
1687
1688 if (m_duration != duration) {
1689 m_duration = duration;
1690diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
1691index 1ed663b..e0c6b50 100644
1692--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp
1693+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
1694@@ -796,7 +796,11 @@ qint64 CameraBinSession::duration() const
1695 if (fileSink) {
1696 GstFormat format = GST_FORMAT_TIME;
1697 gint64 duration = 0;
1698+#if GST_CHECK_VERSION(1,0,0)
1699+ bool ret = gst_element_query_duration(fileSink, format, &duration);
1700+#else
1701 bool ret = gst_element_query_position(fileSink, &format, &duration);
1702+#endif
1703 gst_object_unref(GST_OBJECT(fileSink));
1704 if (ret)
1705 return duration / 1000000;
1706@@ -833,8 +837,13 @@ void CameraBinSession::setMetaData(const QMap<QByteArray, QVariant> &data)
1707
1708 if (m_camerabin) {
1709 GstIterator *elements = gst_bin_iterate_all_by_interface(GST_BIN(m_camerabin), GST_TYPE_TAG_SETTER);
1710+#if GST_CHECK_VERSION(1,0,0)
1711+ GValue *element = 0;
1712+ while (gst_iterator_next(elements, element) == GST_ITERATOR_OK) {
1713+#else
1714 GstElement *element = 0;
1715 while (gst_iterator_next(elements, (void**)&element) == GST_ITERATOR_OK) {
1716+#endif
1717 gst_tag_setter_reset_tags(GST_TAG_SETTER(element));
1718
1719 QMapIterator<QByteArray, QVariant> it(data);
1720@@ -895,7 +904,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message)
1721
1722 if (gm && GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) {
1723 if (m_captureMode == QCamera::CaptureStillImage &&
1724+#if GST_CHECK_VERSION(1,0,0)
1725+ gst_message_has_name (gm, "preview-image")) {
1726+#else
1727 gst_structure_has_name(gm->structure, "preview-image")) {
1728+#endif
1729 st = gst_message_get_structure(gm);
1730
1731 if (gst_structure_has_field_typed(st, "buffer", GST_TYPE_BUFFER)) {
1732@@ -905,7 +918,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message)
1733
1734 QImage img;
1735
1736+#if GST_CHECK_VERSION(1,0,0)
1737 GstCaps *caps = gst_buffer_get_caps(buffer);
1738+#else
1739+ GstCaps *caps = gst_buffer_get_caps(buffer);
1740+#endif
1741 if (caps) {
1742 GstStructure *structure = gst_caps_get_structure(caps, 0);
1743 gint width = 0;
1744@@ -1178,7 +1195,11 @@ QList< QPair<int,int> > CameraBinSession::supportedFrameRates(const QSize &frame
1745 gst_structure_remove_all_fields(structure);
1746 gst_structure_set_value(structure, "framerate", &rate);
1747 }
1748+#if GST_CHECK_VERSION(1,0,0)
1749+ caps = gst_caps_simplify(caps);
1750+#else
1751 gst_caps_do_simplify(caps);
1752+#endif
1753
1754
1755 for (uint i=0; i<gst_caps_get_size(caps); i++) {
1756@@ -1298,7 +1319,11 @@ QList<QSize> CameraBinSession::supportedResolutions(QPair<int,int> rate,
1757 gst_structure_set_value(structure, "width", &w);
1758 gst_structure_set_value(structure, "height", &h);
1759 }
1760+#if GST_CHECK_VERSION(1,0,0)
1761+ caps = gst_caps_simplify(caps);
1762+#else
1763 gst_caps_do_simplify(caps);
1764+#endif
1765
1766 for (uint i=0; i<gst_caps_get_size(caps); i++) {
1767 GstStructure *structure = gst_caps_get_structure(caps, i);
1768diff --git a/src/plugins/gstreamer/common.pri b/src/plugins/gstreamer/common.pri
1769index 8b421b8..2e7f746 100644
1770--- a/src/plugins/gstreamer/common.pri
1771+++ b/src/plugins/gstreamer/common.pri
1772@@ -12,14 +12,17 @@ LIBS += -lqgsttools_p
1773 CONFIG += link_pkgconfig
1774
1775 PKGCONFIG += \
1776- gstreamer-0.10 \
1777- gstreamer-base-0.10 \
1778- gstreamer-interfaces-0.10 \
1779- gstreamer-audio-0.10 \
1780- gstreamer-video-0.10 \
1781- gstreamer-pbutils-0.10
1782+ gstreamer-$$GST_VERSION \
1783+ gstreamer-base-$$GST_VERSION \
1784+ gstreamer-audio-$$GST_VERSION \
1785+ gstreamer-video-$$GST_VERSION \
1786+ gstreamer-pbutils-$$GST_VERSION
1787
1788-maemo*:PKGCONFIG +=gstreamer-plugins-bad-0.10
1789+maemo*:PKGCONFIG +=gstreamer-plugins-bad-$$GST_VERSION
1790+
1791+mir: {
1792+ DEFINES += HAVE_MIR
1793+}
1794
1795 config_resourcepolicy {
1796 DEFINES += HAVE_RESOURCE_POLICY
1797@@ -27,8 +30,8 @@ config_resourcepolicy {
1798 }
1799
1800 config_gstreamer_appsrc {
1801- PKGCONFIG += gstreamer-app-0.10
1802+ PKGCONFIG += gstreamer-app-$$GST_VERSION
1803 DEFINES += HAVE_GST_APPSRC
1804- LIBS += -lgstapp-0.10
1805+ LIBS += -lgstapp-$$GST_VERSION
1806 }
1807
1808diff --git a/src/plugins/gstreamer/gstreamer.pro b/src/plugins/gstreamer/gstreamer.pro
1809index 7649010..fce55ac 100644
1810--- a/src/plugins/gstreamer/gstreamer.pro
1811+++ b/src/plugins/gstreamer/gstreamer.pro
1812@@ -2,11 +2,10 @@ TEMPLATE = subdirs
1813
1814 SUBDIRS += \
1815 audiodecoder \
1816- mediacapture \
1817 mediaplayer
1818
1819 config_gstreamer_encodingprofiles {
1820- SUBDIRS += camerabin
1821+# SUBDIRS += camerabin
1822 }
1823
1824 OTHER_FILES += \
1825diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
1826index a2bd80d..d12e9a5 100644
1827--- a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
1828+++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
1829@@ -498,6 +498,11 @@ GstElement *QGstreamerCaptureSession::buildImageCapture()
1830 gst_pad_add_buffer_probe(pad, G_CALLBACK(passImageFilter), this);
1831 gst_object_unref(GST_OBJECT(pad));
1832
1833+#if GST_CHECK_VERSION(1,0,0)
1834+ gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, passImageFilter, this);
1835+#else
1836+ gst_pad_add_buffer_probe(pad, G_CALLBACK(passImageFilter), this);
1837+#endif
1838 g_object_set(G_OBJECT(sink), "signal-handoffs", TRUE, NULL);
1839 g_signal_connect(G_OBJECT(sink), "handoff",
1840 G_CALLBACK(saveImageFilter), this);
1841diff --git a/src/plugins/gstreamer/mediaplayer/mediaplayer.pro b/src/plugins/gstreamer/mediaplayer/mediaplayer.pro
1842index 2ca9377..b986fc7 100644
1843--- a/src/plugins/gstreamer/mediaplayer/mediaplayer.pro
1844+++ b/src/plugins/gstreamer/mediaplayer/mediaplayer.pro
1845@@ -28,4 +28,3 @@ SOURCES += \
1846
1847 OTHER_FILES += \
1848 mediaplayer.json
1849-
1850diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
1851index fed756a..8239710 100644
1852--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
1853+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
1854@@ -537,6 +537,8 @@ void QGstreamerPlayerControl::processEOS()
1855 m_session->showPrerollFrames(false); // stop showing prerolled frames in stop state
1856 }
1857
1858+ qWarning() << "Processing EOS!";
1859+
1860 popAndNotifyState();
1861 }
1862
1863diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
1864index ce267d7..062de07 100644
1865--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
1866+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
1867@@ -51,7 +51,11 @@
1868 #include <private/qgstreamervideorenderer_p.h>
1869
1870 #if defined(Q_WS_MAEMO_6) && defined(__arm__)
1871-#include "qgstreamergltexturerenderer.h"
1872+#include "private/qgstreamergltexturerenderer.h"
1873+#endif
1874+
1875+#if defined(HAVE_MIR) && defined (__arm__)
1876+#include "private/qgstreamermirtexturerenderer_p.h"
1877 #endif
1878
1879 #include "qgstreamerstreamscontrol.h"
1880@@ -82,6 +86,9 @@ QGstreamerPlayerService::QGstreamerPlayerService(QObject *parent):
1881
1882 #if defined(Q_WS_MAEMO_6) && defined(__arm__)
1883 m_videoRenderer = new QGstreamerGLTextureRenderer(this);
1884+#elif defined(HAVE_MIR) && defined (__arm__)
1885+ //m_videoRenderer = new QGstreamerVideoRenderer(this);
1886+ m_videoRenderer = new QGstreamerMirTextureRenderer(this, m_session);
1887 #else
1888 m_videoRenderer = new QGstreamerVideoRenderer(this);
1889 #endif
1890diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp
1891index 7d20b6d..bf2f9f8 100644
1892--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp
1893+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp
1894@@ -87,7 +87,11 @@ void QGstreamerPlayerServicePlugin::updateSupportedMimeTypes() const
1895 gst_init(NULL, NULL);
1896
1897 GList *plugins, *orig_plugins;
1898+#if GST_CHECK_VERSION(1,0,0)
1899+ orig_plugins = plugins = gst_registry_get_plugin_list (gst_registry_get());
1900+#else
1901 orig_plugins = plugins = gst_default_registry_get_plugin_list ();
1902+#endif
1903
1904 while (plugins) {
1905 GList *features, *orig_features;
1906@@ -95,22 +99,33 @@ void QGstreamerPlayerServicePlugin::updateSupportedMimeTypes() const
1907 GstPlugin *plugin = (GstPlugin *) (plugins->data);
1908 plugins = g_list_next (plugins);
1909
1910+#if GST_CHECK_VERSION(1,0,0)
1911+ if (GST_OBJECT_FLAG_IS_SET(plugin, GST_PLUGIN_FLAG_BLACKLISTED))
1912+ continue;
1913+#else
1914 if (plugin->flags & (1<<1)) //GST_PLUGIN_FLAG_BLACKLISTED
1915 continue;
1916+#endif
1917
1918- orig_features = features = gst_registry_get_feature_list_by_plugin(gst_registry_get_default (),
1919- plugin->desc.name);
1920+ orig_features = features = gst_registry_get_feature_list_by_plugin(gst_registry_get(),
1921+ gst_plugin_get_name(plugin));
1922 while (features) {
1923 if (!G_UNLIKELY(features->data == NULL)) {
1924 GstPluginFeature *feature = GST_PLUGIN_FEATURE(features->data);
1925 if (GST_IS_ELEMENT_FACTORY (feature)) {
1926 GstElementFactory *factory = GST_ELEMENT_FACTORY(gst_plugin_feature_load(feature));
1927 if (factory
1928- && factory->numpadtemplates > 0
1929- && (qstrcmp(factory->details.klass, "Codec/Decoder/Audio") == 0
1930+#if GST_CHECK_VERSION(1,0,0)
1931+ && (qstrcmp(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS), "Codec/Decoder/Audio") == 0
1932+ || qstrcmp(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS),"Codec/Decoder/Video") == 0
1933+ || qstrcmp(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS), "Codec/Demux") == 0 )
1934+#else
1935+ && (qstrcmp(factory->details.klass, "Codec/Decoder/Audio") == 0
1936 || qstrcmp(factory->details.klass, "Codec/Decoder/Video") == 0
1937- || qstrcmp(factory->details.klass, "Codec/Demux") == 0 )) {
1938- const GList *pads = factory->staticpadtemplates;
1939+ || qstrcmp(factory->details.klass, "Codec/Demux") == 0 )
1940+#endif
1941+ ) {
1942+ const GList *pads = gst_element_factory_get_static_pad_templates(factory);
1943 while (pads) {
1944 GstStaticPadTemplate *padtemplate = (GstStaticPadTemplate*)(pads->data);
1945 pads = g_list_next (pads);
1946diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
1947index 15924a6..8013d0d 100644
1948--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
1949+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
1950@@ -85,6 +85,16 @@ typedef enum {
1951 GST_PLAY_FLAG_BUFFERING = 0x000000100
1952 } GstPlayFlags;
1953
1954+#if GST_CHECK_VERSION(1,0,0)
1955+#define DEFAULT_RAW_CAPS \
1956+ "video/x-surface; " \
1957+ "text/plain; " \
1958+ "text/x-pango-markup; " \
1959+ "video/x-dvd-subpicture; " \
1960+ "subpicture/x-pgs" \
1961+ "video/x-raw" \
1962+ "audio/x-raw"
1963+#else
1964 #define DEFAULT_RAW_CAPS \
1965 "video/x-raw-yuv; " \
1966 "video/x-raw-rgb; " \
1967@@ -97,6 +107,8 @@ typedef enum {
1968 "text/x-pango-markup; " \
1969 "video/x-dvd-subpicture; " \
1970 "subpicture/x-pgs"
1971+#endif
1972+
1973 static GstStaticCaps static_RawCaps = GST_STATIC_CAPS(DEFAULT_RAW_CAPS);
1974
1975 QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
1976@@ -137,8 +149,11 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
1977 gboolean result = gst_type_find_register(0, "playlist", GST_RANK_MARGINAL, playlistTypeFindFunction, 0, 0, this, 0);
1978 Q_ASSERT(result == TRUE);
1979 Q_UNUSED(result);
1980-
1981+#if GST_CHECK_VERSION(1,0,0)
1982+ m_playbin = gst_element_factory_make("playbin", NULL);
1983+#else
1984 m_playbin = gst_element_factory_make("playbin2", NULL);
1985+#endif
1986
1987 if (m_playbin) {
1988 //GST_PLAY_FLAG_NATIVE_VIDEO omits configuration of ffmpegcolorspace and videoscale,
1989@@ -188,7 +203,11 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
1990 m_videoIdentity = GST_ELEMENT(g_object_new(gst_video_connector_get_type(), 0)); // floating ref
1991 g_signal_connect(G_OBJECT(m_videoIdentity), "connection-failed", G_CALLBACK(insertColorSpaceElement), (gpointer)this);
1992
1993+#if GST_CHECK_VERSION(1,0,0)
1994+ m_colorSpace = gst_element_factory_make("videoconvert", "ffmpegcolorspace-vo");
1995+#else
1996 m_colorSpace = gst_element_factory_make("ffmpegcolorspace", "ffmpegcolorspace-vo");
1997+#endif
1998 // might not get a parent, take ownership to avoid leak
1999 qt_gst_object_ref_sink(GST_OBJECT(m_colorSpace));
2000
2001@@ -206,7 +225,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
2002
2003 // add ghostpads
2004 GstPad *pad = gst_element_get_static_pad(m_videoIdentity,"sink");
2005- gst_element_add_pad(GST_ELEMENT(m_videoOutputBin), gst_ghost_pad_new("videosink", pad));
2006+ gst_element_add_pad(GST_ELEMENT(m_videoOutputBin), gst_ghost_pad_new("sink", pad));
2007 gst_object_unref(GST_OBJECT(pad));
2008
2009 if (m_playbin != 0) {
2010@@ -218,7 +237,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
2011 g_object_set(G_OBJECT(m_playbin), "video-sink", m_videoOutputBin, NULL);
2012
2013 g_signal_connect(G_OBJECT(m_playbin), "notify::source", G_CALLBACK(playbinNotifySource), this);
2014- g_signal_connect(G_OBJECT(m_playbin), "element-added", G_CALLBACK(handleElementAdded), this);
2015+ //g_signal_connect(G_OBJECT(m_playbin), "element-added", G_CALLBACK(handleElementAdded), this);
2016
2017 if (usePlaybinVolume()) {
2018 updateVolume();
2019@@ -342,9 +361,13 @@ qint64 QGstreamerPlayerSession::position() const
2020 GstFormat format = GST_FORMAT_TIME;
2021 gint64 position = 0;
2022
2023+#if GST_CHECK_VERSION(1,0,0)
2024+ if ( m_playbin && gst_element_query_position(m_playbin, format, &position))
2025+ m_lastPosition = position / 1000000;
2026+#else
2027 if ( m_playbin && gst_element_query_position(m_playbin, &format, &position))
2028 m_lastPosition = position / 1000000;
2029-
2030+#endif
2031 return m_lastPosition;
2032 }
2033
2034@@ -474,9 +497,18 @@ bool QGstreamerPlayerSession::isAudioAvailable() const
2035 return m_audioAvailable;
2036 }
2037
2038+#if GST_CHECK_VERSION(1,0,0)
2039+static GstPadProbeReturn block_pad_cb(GstPad *pad, GstPadProbeInfo *info, gpointer user_data)
2040+#else
2041 static void block_pad_cb(GstPad *pad, gboolean blocked, gpointer user_data)
2042+#endif
2043 {
2044 Q_UNUSED(pad);
2045+#if GST_CHECK_VERSION(1,0,0)
2046+ Q_UNUSED(info);
2047+ Q_UNUSED(user_data);
2048+ return GST_PAD_PROBE_OK;
2049+#else
2050 #ifdef DEBUG_PLAYBIN
2051 qDebug() << "block_pad_cb, blocked:" << blocked;
2052 #endif
2053@@ -485,6 +517,7 @@ static void block_pad_cb(GstPad *pad, gboolean blocked, gpointer user_data)
2054 QGstreamerPlayerSession *session = reinterpret_cast<QGstreamerPlayerSession*>(user_data);
2055 QMetaObject::invokeMethod(session, "finishVideoOutputChange", Qt::QueuedConnection);
2056 }
2057+#endif
2058 }
2059
2060 void QGstreamerPlayerSession::updateVideoRenderer()
2061@@ -529,7 +562,7 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput)
2062 m_renderer = renderer;
2063
2064 #ifdef DEBUG_VO_BIN_DUMP
2065- _gst_debug_bin_to_dot_file_with_ts(GST_BIN(m_playbin),
2066+ gst_debug_bin_to_dot_file_with_ts(GST_BIN(m_playbin),
2067 GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES*/),
2068 "playbin_set");
2069 #endif
2070@@ -633,7 +666,11 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput)
2071
2072 //block pads, async to avoid locking in paused state
2073 GstPad *srcPad = gst_element_get_static_pad(m_videoIdentity, "src");
2074+#if GST_CHECK_VERSION(1,0,0)
2075+ this->pad_probe_id = gst_pad_add_probe(srcPad, (GstPadProbeType)(GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_BLOCK), block_pad_cb, this, NULL);
2076+#else
2077 gst_pad_set_blocked_async(srcPad, true, &block_pad_cb, this);
2078+#endif
2079 gst_object_unref(GST_OBJECT(srcPad));
2080
2081 //Unpause the sink to avoid waiting until the buffer is processed
2082@@ -674,7 +711,11 @@ void QGstreamerPlayerSession::finishVideoOutputChange()
2083 //video output was change back to the current one,
2084 //no need to torment the pipeline, just unblock the pad
2085 if (gst_pad_is_blocked(srcPad))
2086+#if GST_CHECK_VERSION(1,0,0)
2087+ gst_pad_remove_probe(srcPad, this->pad_probe_id);
2088+#else
2089 gst_pad_set_blocked_async(srcPad, false, &block_pad_cb, 0);
2090+#endif
2091
2092 m_pendingVideoSink = 0;
2093 gst_object_unref(GST_OBJECT(srcPad));
2094@@ -760,12 +801,17 @@ void QGstreamerPlayerSession::finishVideoOutputChange()
2095
2096 //don't have to wait here, it will unblock eventually
2097 if (gst_pad_is_blocked(srcPad))
2098- gst_pad_set_blocked_async(srcPad, false, &block_pad_cb, 0);
2099+#if GST_CHECK_VERSION(1,0,0)
2100+ gst_pad_remove_probe(srcPad, this->pad_probe_id);
2101+#else
2102+ gst_pad_set_blocked_async(srcPad, false, &block_pad_cb, 0);
2103+#endif
2104+
2105 gst_object_unref(GST_OBJECT(srcPad));
2106
2107 #ifdef DEBUG_VO_BIN_DUMP
2108- _gst_debug_bin_to_dot_file_with_ts(GST_BIN(m_playbin),
2109- GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES*/),
2110+ gst_debug_bin_to_dot_file_with_ts(GST_BIN(m_playbin),
2111+ GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* | GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES */),
2112 "playbin_finish");
2113 #endif
2114 }
2115@@ -830,6 +876,7 @@ bool QGstreamerPlayerSession::play()
2116 #ifdef DEBUG_PLAYBIN
2117 qDebug() << Q_FUNC_INFO;
2118 #endif
2119+
2120 m_everPlayed = false;
2121 if (m_playbin) {
2122 m_pendingState = QMediaPlayer::PlayingState;
2123@@ -1327,8 +1374,11 @@ void QGstreamerPlayerSession::getStreamsInfo()
2124 default:
2125 break;
2126 }
2127-
2128+#if GST_CHECK_VERSION(1,0,0)
2129+ if (tags && GST_IS_TAG_LIST(tags)) {
2130+#else
2131 if (tags && gst_is_tag_list(tags)) {
2132+#endif
2133 gchar *languageCode = 0;
2134 if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &languageCode))
2135 streamProperties[QMediaMetaData::Language] = QString::fromUtf8(languageCode);
2136@@ -1367,7 +1417,11 @@ void QGstreamerPlayerSession::updateVideoResolutionTag()
2137 QSize aspectRatio;
2138
2139 GstPad *pad = gst_element_get_static_pad(m_videoIdentity, "src");
2140+#if GST_CHECK_VERSION(1,0,0)
2141+ GstCaps *caps = gst_pad_get_current_caps(pad);
2142+#else
2143 GstCaps *caps = gst_pad_get_negotiated_caps(pad);
2144+#endif
2145
2146 if (caps) {
2147 const GstStructure *structure = gst_caps_get_structure(caps, 0);
2148@@ -1411,7 +1465,11 @@ void QGstreamerPlayerSession::updateDuration()
2149 gint64 gstDuration = 0;
2150 int duration = -1;
2151
2152+#if GST_CHECK_VERSION(1,0,0)
2153+ if (m_playbin && gst_element_query_duration(m_playbin, format, &gstDuration))
2154+#else
2155 if (m_playbin && gst_element_query_duration(m_playbin, &format, &gstDuration))
2156+#endif
2157 duration = gstDuration / 1000000;
2158
2159 if (m_duration != duration) {
2160@@ -1467,7 +1525,11 @@ void QGstreamerPlayerSession::playbinNotifySource(GObject *o, GParamSpec *p, gpo
2161
2162 // The rest
2163 if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "extra-headers") != 0) {
2164+#if GST_CHECK_VERSION(1,0,0)
2165+ GstStructure *extras = gst_structure_new_empty("extras");
2166+#else
2167 GstStructure *extras = gst_structure_empty_new("extras");
2168+#endif
2169
2170 foreach (const QByteArray &rawHeader, self->m_request.rawHeaderList()) {
2171 if (rawHeader == userAgentString) // Filter User-Agent
2172@@ -1623,7 +1685,11 @@ GstAutoplugSelectResult QGstreamerPlayerSession::handleAutoplugSelect(GstBin *bi
2173 const gchar *factoryName = gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(factory));
2174 if (g_str_has_prefix(factoryName, "vaapi")) {
2175 GstPad *sinkPad = gst_element_get_static_pad(session->m_videoSink, "sink");
2176+#if GST_CHECK_VERSION(1,0,0)
2177+ GstCaps *sinkCaps = gst_pad_query_caps(sinkPad, NULL);
2178+#else
2179 GstCaps *sinkCaps = gst_pad_get_caps(sinkPad);
2180+#endif
2181
2182 #if (GST_VERSION_MAJOR == 0) && ((GST_VERSION_MINOR < 10) || (GST_VERSION_MICRO < 33))
2183 if (!factory_can_src_any_caps(factory, sinkCaps))
2184@@ -1652,14 +1718,19 @@ void QGstreamerPlayerSession::handleElementAdded(GstBin *bin, GstElement *elemen
2185 // Disable on-disk buffering.
2186 g_object_set(G_OBJECT(element), "temp-template", NULL, NULL);
2187 } else if (g_str_has_prefix(elementName, "uridecodebin") ||
2188- g_str_has_prefix(elementName, "decodebin2")) {
2189-
2190+#if GST_CHECK_VERSION(1,0,0)
2191+ g_str_has_prefix(elementName, "decodebin")) {
2192+#else
2193+ g_str_has_prefix(elementName, "decodebin2")) {
2194+#endif
2195 if (g_str_has_prefix(elementName, "uridecodebin")) {
2196 // Add video/x-surface (VAAPI) to default raw formats
2197 g_object_set(G_OBJECT(element), "caps", gst_static_caps_get(&static_RawCaps), NULL);
2198 // listen for uridecodebin autoplug-select to skip VAAPI usage when the current
2199 // video sink doesn't support it
2200+#if !(GST_CHECK_VERSION(1,0,0))
2201 g_signal_connect(element, "autoplug-select", G_CALLBACK(handleAutoplugSelect), session);
2202+#endif
2203 }
2204
2205 //listen for queue2 element added to uridecodebin/decodebin2 as well.
2206@@ -1727,7 +1798,27 @@ void QGstreamerPlayerSession::removeProbe(QGstreamerVideoProbeControl* probe)
2207 // Assume user releases any outstanding references to video frames.
2208 }
2209
2210-gboolean QGstreamerPlayerSession::padVideoBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data)
2211+#if GST_CHECK_VERSION(1,0,0)
2212+GstPadProbeReturn QGstreamerPlayerSession::padVideoBufferProbe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data)
2213+{
2214+ Q_UNUSED(pad);
2215+ GstBuffer* buffer = GST_PAD_PROBE_INFO_BUFFER(info);
2216+
2217+ QGstreamerPlayerSession *session = reinterpret_cast<QGstreamerPlayerSession*>(user_data);
2218+ QMutexLocker locker(&session->m_videoProbeMutex);
2219+
2220+ if (session->m_videoProbes.isEmpty())
2221+ return GST_PAD_PROBE_OK;
2222+
2223+ foreach (QGstreamerVideoProbeControl* probe, session->m_videoProbes)
2224+ probe->bufferProbed(buffer, gst_pad_get_current_caps(pad));
2225+
2226+ return GST_PAD_PROBE_OK;
2227+}
2228+
2229+#else
2230+
2231+static gboolean QGstreamerPlayerSession::padVideoBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data)
2232 {
2233 Q_UNUSED(pad);
2234
2235@@ -1742,6 +1833,7 @@ gboolean QGstreamerPlayerSession::padVideoBufferProbe(GstPad *pad, GstBuffer *bu
2236
2237 return TRUE;
2238 }
2239+#endif
2240
2241 void QGstreamerPlayerSession::addProbe(QGstreamerAudioProbeControl* probe)
2242 {
2243@@ -1759,6 +1851,24 @@ void QGstreamerPlayerSession::removeProbe(QGstreamerAudioProbeControl* probe)
2244 m_audioProbes.removeOne(probe);
2245 }
2246
2247+#if GST_CHECK_VERSION(1,0,0)
2248+GstPadProbeReturn QGstreamerPlayerSession::padAudioBufferProbe(GstPad *pad, GstPadProbeInfo* info, gpointer user_data)
2249+{
2250+ Q_UNUSED(pad);
2251+ GstBuffer* buffer = GST_PAD_PROBE_INFO_BUFFER(info);
2252+
2253+ QGstreamerPlayerSession *session = reinterpret_cast<QGstreamerPlayerSession*>(user_data);
2254+ QMutexLocker locker(&session->m_audioProbeMutex);
2255+
2256+ if (session->m_audioProbes.isEmpty())
2257+ return GST_PAD_PROBE_OK;
2258+
2259+ foreach (QGstreamerAudioProbeControl* probe, session->m_audioProbes)
2260+ probe->bufferProbed(buffer, gst_pad_get_current_caps(pad));
2261+
2262+ return GST_PAD_PROBE_OK;
2263+}
2264+#else
2265 gboolean QGstreamerPlayerSession::padAudioBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data)
2266 {
2267 Q_UNUSED(pad);
2268@@ -1774,7 +1884,7 @@ gboolean QGstreamerPlayerSession::padAudioBufferProbe(GstPad *pad, GstBuffer *bu
2269
2270 return TRUE;
2271 }
2272-
2273+#endif
2274 // This function is similar to stop(),
2275 // but does not set m_everPlayed, m_lastPosition,
2276 // and setSeekable() values.
2277@@ -1807,7 +1917,11 @@ void QGstreamerPlayerSession::removeVideoBufferProbe()
2278
2279 GstPad *pad = gst_element_get_static_pad(m_videoSink, "sink");
2280 if (pad) {
2281+#if GST_CHECK_VERSION(1,0,0)
2282+ gst_pad_remove_probe(pad, m_videoBufferProbeId);
2283+#else
2284 gst_pad_remove_buffer_probe(pad, m_videoBufferProbeId);
2285+#endif
2286 gst_object_unref(GST_OBJECT(pad));
2287 }
2288
2289@@ -1822,7 +1936,11 @@ void QGstreamerPlayerSession::addVideoBufferProbe()
2290
2291 GstPad *pad = gst_element_get_static_pad(m_videoSink, "sink");
2292 if (pad) {
2293+#if GST_CHECK_VERSION(1,0,0)
2294+ m_videoBufferProbeId = gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, padVideoBufferProbe, this, NULL);
2295+#else
2296 m_videoBufferProbeId = gst_pad_add_buffer_probe(pad, G_CALLBACK(padVideoBufferProbe), this);
2297+#endif
2298 gst_object_unref(GST_OBJECT(pad));
2299 }
2300 }
2301@@ -1839,7 +1957,11 @@ void QGstreamerPlayerSession::removeAudioBufferProbe()
2302
2303 GstPad *pad = gst_element_get_static_pad(m_audioSink, "sink");
2304 if (pad) {
2305+#if GST_CHECK_VERSION(1,0,0)
2306+ gst_pad_remove_probe(pad, m_audioBufferProbeId);
2307+#else
2308 gst_pad_remove_buffer_probe(pad, m_audioBufferProbeId);
2309+#endif
2310 gst_object_unref(GST_OBJECT(pad));
2311 }
2312
2313@@ -1854,7 +1976,11 @@ void QGstreamerPlayerSession::addAudioBufferProbe()
2314
2315 GstPad *pad = gst_element_get_static_pad(m_audioSink, "sink");
2316 if (pad) {
2317+#if GST_CHECK_VERSION(1,0,0)
2318+ m_audioBufferProbeId = gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, padAudioBufferProbe, this, NULL);
2319+#else
2320 m_audioBufferProbeId = gst_pad_add_buffer_probe(pad, G_CALLBACK(padAudioBufferProbe), this);
2321+#endif
2322 gst_object_unref(GST_OBJECT(pad));
2323 }
2324 }
2325@@ -1887,7 +2013,7 @@ void QGstreamerPlayerSession::playlistTypeFindFunction(GstTypeFind *find, gpoint
2326 length = qMin(length, guint64(1024));
2327
2328 while (length > 0) {
2329- guint8 *data = gst_type_find_peek(find, 0, length);
2330+ const guint8 *data = gst_type_find_peek(find, 0, length);
2331 if (data) {
2332 session->m_isPlaylist = (QPlaylistFileParser::findPlaylistType(QString::fromUtf8(uri), 0, data, length) != QPlaylistFileParser::UNKNOWN);
2333 return;
2334diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h
2335index f2e760a..50bda3d 100644
2336--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h
2337+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h
2338@@ -119,11 +119,19 @@ public:
2339
2340 void addProbe(QGstreamerVideoProbeControl* probe);
2341 void removeProbe(QGstreamerVideoProbeControl* probe);
2342+#if GST_CHECK_VERSION(1,0,0)
2343+ static GstPadProbeReturn padVideoBufferProbe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data);
2344+#else
2345 static gboolean padVideoBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data);
2346+#endif
2347
2348 void addProbe(QGstreamerAudioProbeControl* probe);
2349 void removeProbe(QGstreamerAudioProbeControl* probe);
2350+#if GST_CHECK_VERSION(1,0,0)
2351+ static GstPadProbeReturn padAudioBufferProbe(GstPad *pad, GstPadProbeInfo* info, gpointer user_data);
2352+#else
2353 static gboolean padAudioBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data);
2354+#endif
2355
2356 void endOfMediaReset();
2357
2358@@ -252,6 +260,7 @@ private:
2359 bool m_isLiveSource;
2360
2361 bool m_isPlaylist;
2362+ gulong pad_probe_id;
2363 };
2364
2365 QT_END_NAMESPACE
2366--
23672.3.1
2368
diff --git a/recipes-qt/qt5/qtmultimedia_5.4.1.bb b/recipes-qt/qt5/qtmultimedia_5.4.1.bb
deleted file mode 100644
index c45ac009..00000000
--- a/recipes-qt/qt5/qtmultimedia_5.4.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "7412a5c62da71b44b9f29e29fdc6af4d"
5SRC_URI[sha256sum] = "3830dd4a11727cc4a3ab32dc10e4cd016739d0b1b0c59685512853e10f1e534e"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
diff --git a/recipes-qt/qt5/qtquick1_5.4.1.bb b/recipes-qt/qt5/qtquick1_5.4.1.bb
deleted file mode 100644
index 6912ef7f..00000000
--- a/recipes-qt/qt5/qtquick1_5.4.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "16d711d20238e3220fc4030dab608f0b"
5SRC_URI[sha256sum] = "eb5324c784eef15b3d0f7e2fc2265b0f2e823a31330e88e09379972313ca432d"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
12
diff --git a/recipes-qt/qt5/qtquickcontrols_5.4.1.bb b/recipes-qt/qt5/qtquickcontrols_5.4.1.bb
deleted file mode 100644
index a4ea78a1..00000000
--- a/recipes-qt/qt5/qtquickcontrols_5.4.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "2950c8df9da1e3d418a1e209d24f503a"
5SRC_URI[sha256sum] = "fe0852c510b7ab9111310d6880d1b1f34908274099aefa5a14316173b25cfbc2"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
12
diff --git a/recipes-qt/qt5/qtscript_5.4.1.bb b/recipes-qt/qt5/qtscript_5.4.1.bb
deleted file mode 100644
index a0113080..00000000
--- a/recipes-qt/qt5/qtscript_5.4.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "70165fd13fa0ba5b1f577f849f0c4f12"
5SRC_URI[sha256sum] = "f432acc8376b86279faee273ff4e26226059d0cffbaced35e05a559d2efbcbaf"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
diff --git a/recipes-qt/qt5/qtsensors_5.4.1.bb b/recipes-qt/qt5/qtsensors_5.4.1.bb
deleted file mode 100644
index 458b659e..00000000
--- a/recipes-qt/qt5/qtsensors_5.4.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "0787b72a67d1e38a3a47b54b84a6dc42"
5SRC_URI[sha256sum] = "ac4b8e2ef7520e674eb53848ec3d459d8ae92735093106b93104dec7f65edbf8"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
12
diff --git a/recipes-qt/qt5/qtserialport/0001-Unix-Clear-serial_struct-instances.patch b/recipes-qt/qt5/qtserialport/0001-Unix-Clear-serial_struct-instances.patch
deleted file mode 100644
index b14cf013..00000000
--- a/recipes-qt/qt5/qtserialport/0001-Unix-Clear-serial_struct-instances.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1From 53afe73154c7c00b54cd280fa3d6c9127a2bc84b Mon Sep 17 00:00:00 2001
2From: Jonathan Liu <net147@gmail.com>
3Date: Mon, 9 Mar 2015 22:35:56 +1100
4Subject: [PATCH] Unix: Clear serial_struct instances
5
6Silences the following Valgrind warning:
7Conditional jump or move depends on uninitialised value(s)
8
9Upstream-Status: Backport from 5.5 branch
10
11Change-Id: I8fd8cfd6aa6f75ed515e6151cfc282faca508bdc
12Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
13Signed-off-by: Jonathan Liu <net147@gmail.com>
14---
15 src/serialport/qserialport_unix.cpp | 4 ++++
16 1 file changed, 4 insertions(+)
17
18diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp
19index 34ef41d..7cf356b 100644
20--- a/src/serialport/qserialport_unix.cpp
21+++ b/src/serialport/qserialport_unix.cpp
22@@ -439,6 +439,8 @@ QSerialPortPrivate::setStandardBaudRate(qint32 baudRate, QSerialPort::Directions
23 {
24 struct serial_struct currentSerialInfo;
25
26+ ::memset(&currentSerialInfo, 0, sizeof(currentSerialInfo));
27+
28 if ((::ioctl(descriptor, TIOCGSERIAL, &currentSerialInfo) != -1)
29 && (currentSerialInfo.flags & ASYNC_SPD_CUST)) {
30 currentSerialInfo.flags &= ~ASYNC_SPD_CUST;
31@@ -469,6 +471,8 @@ QSerialPortPrivate::setCustomBaudRate(qint32 baudRate, QSerialPort::Directions d
32
33 struct serial_struct currentSerialInfo;
34
35+ ::memset(&currentSerialInfo, 0, sizeof(currentSerialInfo));
36+
37 if (::ioctl(descriptor, TIOCGSERIAL, &currentSerialInfo) == -1)
38 return decodeSystemError();
39
40--
412.3.2
42
diff --git a/recipes-qt/qt5/qtserialport_5.4.1.bb b/recipes-qt/qt5/qtserialport_5.4.1.bb
deleted file mode 100644
index 2349ad3d..00000000
--- a/recipes-qt/qt5/qtserialport_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "2333d25916a74260ce39b8a77c7c4288"
5SRC_URI[sha256sum] = "79d99e826bf49e469a651cdc2d499d8b54e52bb8aaa279719a3afa03eba5d0ff"
diff --git a/recipes-qt/qt5/qtsvg_5.4.1.bb b/recipes-qt/qt5/qtsvg_5.4.1.bb
deleted file mode 100644
index b7d1dc2e..00000000
--- a/recipes-qt/qt5/qtsvg_5.4.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "b4a1e4f5dae26a7500f4f61a550f67eb"
5SRC_URI[sha256sum] = "be8a90ccce2e873d3489a416d1748089f46e329519acb990cf851d6c9f9de12c"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
diff --git a/recipes-qt/qt5/qtsystems_5.4.1+git.bb b/recipes-qt/qt5/qtsystems_5.4.1+git.bb
deleted file mode 100644
index 7d46d7df..00000000
--- a/recipes-qt/qt5/qtsystems_5.4.1+git.bb
+++ /dev/null
@@ -1,14 +0,0 @@
1require qt5-git.inc
2require ${PN}.inc
3
4# this wasn't released, the PV is set just to signify that this SRCREV was tested together
5# with 5.4.1 version of other modules
6PV = "5.4.1"
7DEFAULT_PREFERENCE = "1"
8
9QT_MODULE_BRANCH = "dev"
10
11# qtsystems wasn't released yet, last tag before this SRCREV is 5.0.0-beta1
12# qt5-git PV is only to indicate that this recipe is compatible with qt5 5.4.0
13
14SRCREV = "44f70d99a2ecd5f3f320650461f1d69142d11bcc"
diff --git a/recipes-qt/qt5/qttools-native_5.4.1.bb b/recipes-qt/qt5/qttools-native_5.4.1.bb
deleted file mode 100644
index d3d549ee..00000000
--- a/recipes-qt/qt5/qttools-native_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "5b2fd42304e9294bc0f77095fdb35ad6"
5SRC_URI[sha256sum] = "11de0f8573843194b134e32af49594514498fadc4fc0b3b0333540fe1f671f72"
diff --git a/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch b/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch
deleted file mode 100644
index f2e5339b..00000000
--- a/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch
+++ /dev/null
@@ -1,155 +0,0 @@
1From 80d7d1844e6e088bde4c83881ea38a52a7e608c2 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.jansa@gmail.com>
3Date: Wed, 11 Sep 2013 18:30:08 +0200
4Subject: [PATCH 1/3] Allow to build only lrelease + lupdate + lconvert
5
6This is useful e.g. when cross compiling with OpenEmbedded where qtbase-native
7is built without GUI support (no-png is set) and we still want to build
8native lrelease + lupdate + lconvert tools.
9
10Upstream-Status: Pending
11
12Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
13---
14 examples/examples.pro | 3 ++-
15 src/designer/src/src.pro | 16 +++++++++-------
16 src/linguist/linguist.pro | 2 +-
17 src/src.pro | 14 ++++++++------
18 tests/auto/auto.pro | 24 +++++++++++++-----------
19 5 files changed, 33 insertions(+), 26 deletions(-)
20
21diff --git a/examples/examples.pro b/examples/examples.pro
22index 69365d1..da7b38b 100644
23--- a/examples/examples.pro
24+++ b/examples/examples.pro
25@@ -1,4 +1,5 @@
26 TEMPLATE = subdirs
27-qtHaveModule(widgets): SUBDIRS += help designer linguist uitools assistant
28+!linguistonly:qtHaveModule(widgets): SUBDIRS += help designer assistant
29+qtHaveModule(widgets): SUBDIRS += linguist uitools
30
31 winrt: SUBDIRS -= assistant designer
32diff --git a/src/designer/src/src.pro b/src/designer/src/src.pro
33index e02ca8e..49527c5 100644
34--- a/src/designer/src/src.pro
35+++ b/src/designer/src/src.pro
36@@ -1,18 +1,20 @@
37 TEMPLATE = subdirs
38
39-SUBDIRS = \
40- uitools \
41- lib \
42- components \
43- designer
44+!linguistonly {
45+ SUBDIRS = \
46+ lib \
47+ components \
48+ designer
49+}
50+SUBDIRS += uitools
51
52-contains(QT_CONFIG, shared): SUBDIRS += plugins
53+!linguistonly:contains(QT_CONFIG, shared): SUBDIRS += plugins
54
55 components.depends = lib
56 designer.depends = components
57 plugins.depends = lib
58
59-qtNomakeTools( \
60+!linguistonly:qtNomakeTools( \
61 lib \
62 components \
63 designer \
64diff --git a/src/linguist/linguist.pro b/src/linguist/linguist.pro
65index 3a70580..a977878 100644
66--- a/src/linguist/linguist.pro
67+++ b/src/linguist/linguist.pro
68@@ -3,7 +3,7 @@ SUBDIRS = \
69 lrelease \
70 lupdate \
71 lconvert
72-!no-png:qtHaveModule(widgets): SUBDIRS += linguist
73+!linguistonly:!no-png:qtHaveModule(widgets): SUBDIRS += linguist
74
75 qtNomakeTools( \
76 linguist \
77diff --git a/src/src.pro b/src/src.pro
78index 722b32e..9453152 100644
79--- a/src/src.pro
80+++ b/src/src.pro
81@@ -4,10 +4,12 @@ qtHaveModule(widgets) {
82 no-png {
83 message("Some graphics-related tools are unavailable without PNG support")
84 } else {
85- SUBDIRS = assistant \
86+ !linguistonly {
87+ SUBDIRS = assistant \
88 pixeltool \
89- qtestlib \
90- designer
91+ qtestlib
92+ }
93+ SUBDIRS += designer
94 # unix:!mac:!embedded:!qpa:SUBDIRS += qtconfig
95
96 linguist.depends = designer
97@@ -15,7 +17,7 @@ qtHaveModule(widgets) {
98 }
99
100 SUBDIRS += linguist
101-if(!android|android_app):!ios: SUBDIRS += qtpaths
102+if(!android|android_app):!linguistonly:!ios: SUBDIRS += qtpaths
103
104 mac {
105 SUBDIRS += macdeployqt
106@@ -25,11 +27,11 @@ android {
107 SUBDIRS += androiddeployqt
108 }
109
110-qtHaveModule(dbus): SUBDIRS += qdbus
111+!linguistonly:qtHaveModule(dbus): SUBDIRS += qdbus
112
113 win32|winrt:SUBDIRS += windeployqt
114 winrt:SUBDIRS += winrtrunner
115-qtHaveModule(gui):!android:!ios:!qnx:!wince*:!winrt*:SUBDIRS += qtdiag
116+!linguistonly:qtHaveModule(gui):!android:!ios:!qnx:!wince*:!winrt*:SUBDIRS += qtdiag
117
118 qtNomakeTools( \
119 pixeltool \
120diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
121index df240e3..27ee687 100644
122--- a/tests/auto/auto.pro
123+++ b/tests/auto/auto.pro
124@@ -1,15 +1,17 @@
125 TEMPLATE=subdirs
126-SUBDIRS=\
127- linguist \
128- host.pro \
129- qhelpcontentmodel \
130- qhelpenginecore \
131- qhelpgenerator \
132- qhelpindexmodel \
133- qhelpprojectdata \
134- cmake \
135- installed_cmake \
136- qtdiag
137+!linguistonly {
138+ SUBDIRS=\
139+ linguist \
140+ host.pro \
141+ qhelpcontentmodel \
142+ qhelpenginecore \
143+ qhelpgenerator \
144+ qhelpindexmodel \
145+ qhelpprojectdata \
146+ cmake \
147+ installed_cmake
148+ qtdiag
149+}
150
151 installed_cmake.depends = cmake
152
153--
1542.3.1
155
diff --git a/recipes-qt/qt5/qttools/0002-assistant-help-fix-linking-of-dependent-libraries.patch b/recipes-qt/qt5/qttools/0002-assistant-help-fix-linking-of-dependent-libraries.patch
deleted file mode 100644
index c6cf4a6d..00000000
--- a/recipes-qt/qt5/qttools/0002-assistant-help-fix-linking-of-dependent-libraries.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 21163294f5f1ae633db63c5d27b458ba189dcc16 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Fri, 17 Jan 2014 14:33:19 +0100
4Subject: [PATCH 2/3] assistant/help: fix linking of dependent libraries
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9else we get:
10| ...ld: warning: libQt5CLucene.so.5, needed by ...libQt5Help.so, not found (try using -rpath or -rpath-link)
11| ...undefined reference to `QCLucenePhraseQuery::getTerms() const'
12
13Upstream-Status: Inappropriate [configuration]
14
15Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
16---
17 src/assistant/help/help.pro | 2 ++
18 1 file changed, 2 insertions(+)
19
20diff --git a/src/assistant/help/help.pro b/src/assistant/help/help.pro
21index 168d23d..a9c3b59 100644
22--- a/src/assistant/help/help.pro
23+++ b/src/assistant/help/help.pro
24@@ -59,3 +59,5 @@ HEADERS += qhelpenginecore.h \
25 # access to clucene
26 HEADERS += qhelpsearchindexwriter_clucene_p.h \
27 qhelpsearchindexreader_clucene_p.h
28+
29+LIBS += -lQt5CLucene
30--
312.3.1
32
diff --git a/recipes-qt/qt5/qttools/0003-add-noqtwebkit-configuration.patch b/recipes-qt/qt5/qttools/0003-add-noqtwebkit-configuration.patch
deleted file mode 100644
index 2e3349ba..00000000
--- a/recipes-qt/qt5/qttools/0003-add-noqtwebkit-configuration.patch
+++ /dev/null
@@ -1,51 +0,0 @@
1From e3aba30a9cece54dd6a7edfcb39cbb1805b3dcac Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Wed, 4 Jun 2014 11:28:16 +0200
4Subject: [PATCH 3/3] add noqtwebkit configuration
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Upstream-Status: Inappropiate [configuration]
10
11Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
12Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
13---
14 src/assistant/assistant/assistant.pro | 4 ++--
15 src/designer/src/plugins/plugins.pro | 2 +-
16 2 files changed, 3 insertions(+), 3 deletions(-)
17
18diff --git a/src/assistant/assistant/assistant.pro b/src/assistant/assistant/assistant.pro
19index 6e82b07..56df78c 100644
20--- a/src/assistant/assistant/assistant.pro
21+++ b/src/assistant/assistant/assistant.pro
22@@ -1,4 +1,4 @@
23-qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static) {
24+qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static):!contains(CONFIG, noqtwebkit) {
25 QT += webkitwidgets
26 } else {
27 DEFINES += QT_NO_WEBKIT
28@@ -71,7 +71,7 @@ SOURCES += aboutdialog.cpp \
29 openpageswidget.cpp \
30 openpagesmanager.cpp \
31 openpagesswitcher.cpp
32-qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static) {
33+qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static):!contains(CONFIG, noqtwebkit) {
34 SOURCES += helpviewer_qwv.cpp
35 } else {
36 SOURCES += helpviewer_qtb.cpp
37diff --git a/src/designer/src/plugins/plugins.pro b/src/designer/src/plugins/plugins.pro
38index 500a153..b60fa2d 100644
39--- a/src/designer/src/plugins/plugins.pro
40+++ b/src/designer/src/plugins/plugins.pro
41@@ -1,6 +1,6 @@
42 TEMPLATE = subdirs
43
44 # qtHaveModule(opengl): SUBDIRS += tools/view3d
45-qtHaveModule(webkitwidgets): SUBDIRS += qwebview
46+qtHaveModule(webkitwidgets):!contains(CONFIG, noqtwebkit): SUBDIRS += qwebview
47 win32: qtHaveModule(axcontainer): SUBDIRS += activeqt
48 qtHaveModule(quickwidgets): SUBDIRS += qquickwidget
49--
502.3.1
51
diff --git a/recipes-qt/qt5/qttools_5.4.1.bb b/recipes-qt/qt5/qttools_5.4.1.bb
deleted file mode 100644
index d3d549ee..00000000
--- a/recipes-qt/qt5/qttools_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "5b2fd42304e9294bc0f77095fdb35ad6"
5SRC_URI[sha256sum] = "11de0f8573843194b134e32af49594514498fadc4fc0b3b0333540fe1f671f72"
diff --git a/recipes-qt/qt5/qttranslations_5.4.1.bb b/recipes-qt/qt5/qttranslations_5.4.1.bb
deleted file mode 100644
index d0afd037..00000000
--- a/recipes-qt/qt5/qttranslations_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "0bdd1b0a83b03a04a4ebeedfa3057d21"
5SRC_URI[sha256sum] = "3c4d045f974bc9ee76bb85d319737cf182b8697c4ba72d2c075d3609cfaf9041"
diff --git a/recipes-qt/qt5/qtwayland-native_5.4.1.bb b/recipes-qt/qt5/qtwayland-native_5.4.1.bb
deleted file mode 100644
index 6e498852..00000000
--- a/recipes-qt/qt5/qtwayland-native_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "a132295b896062d21ded0937a56d22a3"
5SRC_URI[sha256sum] = "653b5e600b1cbf3275d0858415570d2a2611823a4651ee911e684dcae870d792"
diff --git a/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch b/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch
deleted file mode 100644
index bcaf949e..00000000
--- a/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 9a9bc002354966b757bed13582f0bb927c3e7cc8 Mon Sep 17 00:00:00 2001
2From: Simon Busch <morphis@gravedo.de>
3Date: Fri, 19 Jul 2013 13:35:14 +0000
4Subject: [PATCH] Install the qtwaylandscanner tool to the native side
5
6Upstream-Status: Inappropiate [configuration]
7
8Signed-off-by: Simon Busch <morphis@gravedo.de>
9---
10 src/qtwaylandscanner/qtwaylandscanner.pro | 8 ++++++--
11 1 file changed, 6 insertions(+), 2 deletions(-)
12
13diff --git a/src/qtwaylandscanner/qtwaylandscanner.pro b/src/qtwaylandscanner/qtwaylandscanner.pro
14index ac2d07b..7a46a24 100644
15--- a/src/qtwaylandscanner/qtwaylandscanner.pro
16+++ b/src/qtwaylandscanner/qtwaylandscanner.pro
17@@ -1,6 +1,10 @@
18 option(host_build)
19
20-SOURCES += qtwaylandscanner.cpp
21+TARGET = qtwaylandscanner$$qtPlatformTargetSuffix()
22+CONFIG += console warn_off
23+QT = core
24
25-load(qt_tool)
26+SOURCES += qtwaylandscanner.cpp
27
28+target.path = $$[QT_HOST_BINS]
29+INSTALLS += target
30--
312.3.1
32
diff --git a/recipes-qt/qt5/qtwayland/0001-examples-wayland-include-server-buffer-only-when-bui.patch b/recipes-qt/qt5/qtwayland/0001-examples-wayland-include-server-buffer-only-when-bui.patch
deleted file mode 100644
index a55db122..00000000
--- a/recipes-qt/qt5/qtwayland/0001-examples-wayland-include-server-buffer-only-when-bui.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From c4876f42d841db36197e5cb8a84c70df40a0f21e Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 22 Feb 2014 17:47:44 +0100
4Subject: [PATCH] examples/wayland: include server-buffer only when building
5 with opengles2
6
7* it's using glBindBuffer in
8 server-buffer/client/serverbufferrenderer.cpp
9
10Change-Id: I8412dfd4ebb95c147328ac6e4dfff14a0cff4e78
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 examples/wayland/wayland.pro | 4 +++-
14 1 file changed, 3 insertions(+), 1 deletion(-)
15
16diff --git a/examples/wayland/wayland.pro b/examples/wayland/wayland.pro
17index d633fb9..643c7cd 100644
18--- a/examples/wayland/wayland.pro
19+++ b/examples/wayland/wayland.pro
20@@ -9,5 +9,7 @@ contains(CONFIG, wayland-compositor) {
21 SUBDIRS += qml-compositor
22 }
23
24- SUBDIRS += server-buffer
25+ contains(QT_CONFIG, opengles2) {
26+ SUBDIRS += server-buffer
27+ }
28 }
29--
302.3.1
31
diff --git a/recipes-qt/qt5/qtwayland_5.4.1.bb b/recipes-qt/qt5/qtwayland_5.4.1.bb
deleted file mode 100644
index 452851b8..00000000
--- a/recipes-qt/qt5/qtwayland_5.4.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "a132295b896062d21ded0937a56d22a3"
5SRC_URI[sha256sum] = "653b5e600b1cbf3275d0858415570d2a2611823a4651ee911e684dcae870d792"
6
7SRC_URI += " \
8 file://0001-examples-wayland-include-server-buffer-only-when-bui.patch \
9"
10QT_VERSION ?= "${PV}"
11
12do_install_append() {
13 # do install files created by qtwaylandscanner
14 install ${B}/include/QtCompositor/${QT_VERSION}/QtCompositor/private/qwayland-server-*.h ${D}${OE_QMAKE_PATH_QT_HEADERS}/QtCompositor/${QT_VERSION}/QtCompositor/private
15 install ${B}/include/QtCompositor/${QT_VERSION}/QtCompositor/private/*protocol*.h ${D}${OE_QMAKE_PATH_QT_HEADERS}/QtCompositor/${QT_VERSION}/QtCompositor/private
16}
diff --git a/recipes-qt/qt5/qtwebchannel_5.4.1.bb b/recipes-qt/qt5/qtwebchannel_5.4.1.bb
deleted file mode 100644
index feddcf38..00000000
--- a/recipes-qt/qt5/qtwebchannel_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "bb914134c164c6758a0074748cc678ff"
5SRC_URI[sha256sum] = "c4acb9ec9886fca6d0c2adc5b45970347ae1b3e4b5e0055ab370540faef7b251"
diff --git a/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch b/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch
deleted file mode 100644
index b4a8852e..00000000
--- a/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 21d008c31a262ddcaeb3a8457de49061361ed882 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Fri, 3 Oct 2014 03:52:11 +0200
4Subject: [PATCH] <chromium> base.gypi: include atomicops_internals_x86_gcc.cc
5 when building for x64 arch
6
7Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
8---
9 chromium/base/base.gypi | 2 +-
10 1 file changed, 1 insertion(+), 1 deletion(-)
11
12diff --git a/src/3rdparty/chromium/base/base.gypi b/src/3rdparty/chromium/base/base.gypi
13index a5a990a..af30cfa 100644
14--- a/src/3rdparty/chromium/base/base.gypi
15+++ b/src/3rdparty/chromium/base/base.gypi
16@@ -745,7 +745,7 @@
17 ['include', '^nix/'],
18 ],
19 }],
20- ['use_qt==1 and target_arch=="ia32"', {
21+ ['use_qt==1 and target_arch=="ia32" or target_arch=="x64"', {
22 'sources/': [
23 ['include', 'atomicops_internals_x86_gcc.cc'],
24 ],
25--
262.3.1
27
diff --git a/recipes-qt/qt5/qtwebengine/0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch b/recipes-qt/qt5/qtwebengine/0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch
deleted file mode 100644
index 83787f3a..00000000
--- a/recipes-qt/qt5/qtwebengine/0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 005fabe4148c78e8393c50ca6ebc9d0c2151c3cd Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Mon, 30 Jun 2014 20:08:17 +0200
4Subject: [PATCH 1/4] functions.prf: Don't match QMAKE_EXT_CPP or QMAKE_EXT_H
5 anywhere in path, but at the end
6
7Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
8---
9 tools/qmake/mkspecs/features/functions.prf | 4 ++--
10 1 file changed, 2 insertions(+), 2 deletions(-)
11
12diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf
13index 4c2547d..64c08ad 100644
14--- a/tools/qmake/mkspecs/features/functions.prf
15+++ b/tools/qmake/mkspecs/features/functions.prf
16@@ -87,8 +87,8 @@ defineReplace(findIncludedMocFiles) {
17 defineReplace(mocOutput) {
18 out = $$1
19 # The order is important, since the output of the second replace would end up accidentaly transformed by the first one
20- out = $$replace(out, ^(.*)($$join(QMAKE_EXT_CPP,|)), $${QMAKE_CPP_MOD_MOC}\\1$${QMAKE_EXT_CPP_MOC})
21- out = $$replace(out, ^(.*)($$join(QMAKE_EXT_H,|)), $${QMAKE_H_MOD_MOC}\\1$${first(QMAKE_EXT_CPP)})
22+ out = $$replace(out, ^(.*)($$join(QMAKE_EXT_CPP,|))$, $${QMAKE_CPP_MOD_MOC}\\1$${QMAKE_EXT_CPP_MOC})
23+ out = $$replace(out, ^(.*)($$join(QMAKE_EXT_H,|))$, $${QMAKE_H_MOD_MOC}\\1$${first(QMAKE_EXT_CPP)})
24 return($$out)
25 }
26
27--
282.3.1
29
diff --git a/recipes-qt/qt5/qtwebengine/0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch b/recipes-qt/qt5/qtwebengine/0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch
deleted file mode 100644
index 8cdf4ca8..00000000
--- a/recipes-qt/qt5/qtwebengine/0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 323f3d4fbd00b8655a1928c389d5f05ef4526044 Mon Sep 17 00:00:00 2001
2From: Simon Busch <morphis@gravedo.de>
3Date: Tue, 18 Nov 2014 10:38:18 +0100
4Subject: [PATCH 2/4] functions.prf: Make sure we only use the file name to
5 generate it's moc'ed abbreviation
6
7Signed-off-by: Simon Busch <morphis@gravedo.de>
8Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
9---
10 tools/qmake/mkspecs/features/functions.prf | 3 ++-
11 1 file changed, 2 insertions(+), 1 deletion(-)
12
13diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf
14index 64c08ad..b46478b 100644
15--- a/tools/qmake/mkspecs/features/functions.prf
16+++ b/tools/qmake/mkspecs/features/functions.prf
17@@ -85,7 +85,8 @@ defineReplace(findIncludedMocFiles) {
18 }
19
20 defineReplace(mocOutput) {
21- out = $$1
22+ in = $$1
23+ out = $$basename(in)
24 # The order is important, since the output of the second replace would end up accidentaly transformed by the first one
25 out = $$replace(out, ^(.*)($$join(QMAKE_EXT_CPP,|))$, $${QMAKE_CPP_MOD_MOC}\\1$${QMAKE_EXT_CPP_MOC})
26 out = $$replace(out, ^(.*)($$join(QMAKE_EXT_H,|))$, $${QMAKE_H_MOD_MOC}\\1$${first(QMAKE_EXT_CPP)})
27--
282.3.1
29
diff --git a/recipes-qt/qt5/qtwebengine/0003-functions.prf-allow-build-for-linux-oe-g-platform.patch b/recipes-qt/qt5/qtwebengine/0003-functions.prf-allow-build-for-linux-oe-g-platform.patch
deleted file mode 100644
index 684b796d..00000000
--- a/recipes-qt/qt5/qtwebengine/0003-functions.prf-allow-build-for-linux-oe-g-platform.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 762c943fbe1bee878275788f376b33abce46e25a Mon Sep 17 00:00:00 2001
2From: Frieder Schrempf <frieder.schrempf@online.de>
3Date: Mon, 1 Dec 2014 14:34:40 +0000
4Subject: [PATCH 3/4] functions.prf: allow build for linux-oe-g++ platform
5
6Upstream-Status: Inappropriate [OE specific]
7
8Signed-off-by: Frieder Schrempf <frieder.schrempf@online.de>
9Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
10---
11 tools/qmake/mkspecs/features/functions.prf | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf
15index b46478b..6205bf4 100644
16--- a/tools/qmake/mkspecs/features/functions.prf
17+++ b/tools/qmake/mkspecs/features/functions.prf
18@@ -10,7 +10,7 @@ defineTest(isPlatformSupported) {
19
20 linux-g++*:!isGCCVersionSupported(): return(false)
21 !isPythonVersionSupported(): return(false)
22- linux-g++*|win32-msvc2013|macx-clang: return(true)
23+ linux-g++*|linux-oe-g++*|win32-msvc2013|macx-clang: return(true)
24 boot2qt: return(true)
25
26 skipBuild("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.")
27--
282.3.1
29
diff --git a/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch b/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
deleted file mode 100644
index 63387c75..00000000
--- a/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
+++ /dev/null
@@ -1,532 +0,0 @@
1From 6ba64ed2e7136c5a9067d7e1793c0db15e762403 Mon Sep 17 00:00:00 2001
2From: Stephan Binner <stephan.binner@basyskom.com>
3Date: Wed, 4 Mar 2015 12:39:29 +0100
4Subject: [PATCH 4/4] Enable building Qt WebEngine without accessiblity
5 enabled.
6
7This adds guards that for QT_NO_ACCESSIBILITY being not defined
8around the code that uses accessibility types.
9
10It disables the quicknanobrowser and quicktestbrowser examples
11which need Qt QuickControls, which has a hard dependency to
12accessibility being enabled.
13
14Upstream-Status: Backport from 5.5
15https://codereview.qt-project.org/#/c/104207/
16
17Backport of d95b9295c970401939d2779cbdc9e2a8c7965277 from 5.5
18
19Change-Id: I2a2a0a6196fcb3baa39603d9c929183b454f39ed
20Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
21---
22 examples/webengine/quicknanobrowser/quicknanobrowser.pro | 2 ++
23 src/core/browser_accessibility_manager_qt.cpp | 6 ++++++
24 src/core/browser_accessibility_manager_qt.h | 2 ++
25 src/core/browser_accessibility_qt.cpp | 4 ++++
26 src/core/browser_accessibility_qt.h | 3 +++
27 src/core/render_widget_host_view_qt.cpp | 11 ++++++++++-
28 src/core/render_widget_host_view_qt.h | 6 +++++-
29 src/core/web_contents_adapter.cpp | 2 ++
30 src/core/web_contents_adapter_client.h | 2 ++
31 src/webengine/api/qquickwebengineview.cpp | 12 ++++++++++++
32 src/webengine/api/qquickwebengineview_p.h | 2 ++
33 src/webengine/api/qquickwebengineview_p_p.h | 5 ++++-
34 src/webenginewidgets/api/qwebenginepage.cpp | 3 +++
35 src/webenginewidgets/api/qwebenginepage.h | 2 ++
36 src/webenginewidgets/api/qwebenginepage_p.h | 2 ++
37 src/webenginewidgets/api/qwebengineview.cpp | 7 ++++++-
38 src/webenginewidgets/api/qwebengineview_p.h | 3 ++-
39 tests/quicktestbrowser/quicktestbrowser.pro | 2 ++
40 18 files changed, 71 insertions(+), 5 deletions(-)
41
42diff --git a/examples/webengine/quicknanobrowser/quicknanobrowser.pro b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
43index 3628b81..a8e57b0 100644
44--- a/examples/webengine/quicknanobrowser/quicknanobrowser.pro
45+++ b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
46@@ -1,3 +1,5 @@
47+requires(contains(QT_CONFIG, accessibility))
48+
49 TEMPLATE = app
50 TARGET = quicknanobrowser
51
52diff --git a/src/core/browser_accessibility_manager_qt.cpp b/src/core/browser_accessibility_manager_qt.cpp
53index 28d0dd7..6729866 100644
54--- a/src/core/browser_accessibility_manager_qt.cpp
55+++ b/src/core/browser_accessibility_manager_qt.cpp
56@@ -45,9 +45,14 @@ namespace content {
57
58 BrowserAccessibility *BrowserAccessibilityFactoryQt::Create()
59 {
60+#ifndef QT_NO_ACCESSIBILITY
61 return new BrowserAccessibilityQt();
62+#else
63+ return 0;
64+#endif // QT_NO_ACCESSIBILITY
65 }
66
67+#ifndef QT_NO_ACCESSIBILITY
68 BrowserAccessibilityManagerQt::BrowserAccessibilityManagerQt(
69 QObject* parentObject,
70 const ui::AXTreeUpdate& initialTree,
71@@ -131,5 +136,6 @@ void BrowserAccessibilityManagerQt::NotifyAccessibilityEvent(ui::AXEvent event_t
72 break;
73 }
74 }
75+#endif // QT_NO_ACCESSIBILITY
76
77 }
78diff --git a/src/core/browser_accessibility_manager_qt.h b/src/core/browser_accessibility_manager_qt.h
79index 5d8498d..49b3af3 100644
80--- a/src/core/browser_accessibility_manager_qt.h
81+++ b/src/core/browser_accessibility_manager_qt.h
82@@ -38,6 +38,7 @@
83 #define BROWSER_ACCESSIBILITY_MANAGER_QT_H
84
85 #include "content/browser/accessibility/browser_accessibility_manager.h"
86+#ifndef QT_NO_ACCESSIBILITY
87 #include <QtCore/qobject.h>
88
89 QT_BEGIN_NAMESPACE
90@@ -74,4 +75,5 @@ private:
91
92 }
93
94+#endif // QT_NO_ACCESSIBILITY
95 #endif
96diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp
97index b5cd26f..4b8e97a 100644
98--- a/src/core/browser_accessibility_qt.cpp
99+++ b/src/core/browser_accessibility_qt.cpp
100@@ -40,6 +40,8 @@
101
102 #include "browser_accessibility_qt.h"
103
104+#ifndef QT_NO_ACCESSIBILITY
105+
106 #include "third_party/WebKit/public/web/WebAXEnums.h"
107 #include "ui/accessibility/ax_node_data.h"
108
109@@ -898,3 +900,5 @@ void BrowserAccessibilityQt::modelChange(QAccessibleTableModelChangeEvent *)
110 }
111
112 } // namespace content
113+
114+#endif // QT_NO_ACCESSIBILITY
115diff --git a/src/core/browser_accessibility_qt.h b/src/core/browser_accessibility_qt.h
116index db190ff..e87b5d8 100644
117--- a/src/core/browser_accessibility_qt.h
118+++ b/src/core/browser_accessibility_qt.h
119@@ -38,6 +38,8 @@
120 #define BROWSER_ACCESSIBILITY_QT_H
121
122 #include <QtGui/qaccessible.h>
123+
124+#ifndef QT_NO_ACCESSIBILITY
125 #include "content/browser/accessibility/browser_accessibility.h"
126
127 namespace content {
128@@ -145,4 +147,5 @@ public:
129
130 }
131
132+#endif // QT_NO_ACCESSIBILITY
133 #endif
134diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
135index c221e94..4c8a2c1 100644
136--- a/src/core/render_widget_host_view_qt.cpp
137+++ b/src/core/render_widget_host_view_qt.cpp
138@@ -198,15 +198,18 @@ RenderWidgetHostViewQt::RenderWidgetHostViewQt(content::RenderWidgetHost* widget
139 , m_initPending(false)
140 {
141 m_host->SetView(this);
142-
143+#ifndef QT_NO_ACCESSIBILITY
144 QAccessible::installActivationObserver(this);
145 if (QAccessible::isActive())
146 content::BrowserAccessibilityStateImpl::GetInstance()->EnableAccessibility();
147+#endif // QT_NO_ACCESSIBILITY
148 }
149
150 RenderWidgetHostViewQt::~RenderWidgetHostViewQt()
151 {
152+#ifndef QT_NO_ACCESSIBILITY
153 QAccessible::removeActivationObserver(this);
154+#endif // QT_NO_ACCESSIBILITY
155 }
156
157 void RenderWidgetHostViewQt::setDelegate(RenderWidgetHostViewQtDelegate* delegate)
158@@ -296,6 +299,7 @@ gfx::NativeViewAccessible RenderWidgetHostViewQt::GetNativeViewAccessible()
159
160 void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded()
161 {
162+#ifndef QT_NO_ACCESSIBILITY
163 if (GetBrowserAccessibilityManager())
164 return;
165
166@@ -303,6 +307,7 @@ void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded()
167 m_adapterClient->accessibilityParentObject(),
168 content::BrowserAccessibilityManagerQt::GetEmptyDocument(),
169 this));
170+#endif // QT_NO_ACCESSIBILITY
171 }
172
173 // Set focus to the associated View component.
174@@ -953,6 +958,7 @@ void RenderWidgetHostViewQt::AccessibilityFatalError()
175 SetBrowserAccessibilityManager(NULL);
176 }
177
178+#ifndef QT_NO_ACCESSIBILITY
179 void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active)
180 {
181 if (active)
182@@ -960,6 +966,7 @@ void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active)
183 else
184 content::BrowserAccessibilityStateImpl::GetInstance()->DisableAccessibility();
185 }
186+#endif // QT_NO_ACCESSIBILITY
187
188 void RenderWidgetHostViewQt::handleWheelEvent(QWheelEvent *ev)
189 {
190@@ -1042,6 +1049,7 @@ void RenderWidgetHostViewQt::handleFocusEvent(QFocusEvent *ev)
191 }
192 }
193
194+#ifndef QT_NO_ACCESSIBILITY
195 QAccessibleInterface *RenderWidgetHostViewQt::GetQtAccessible()
196 {
197 // Assume we have a screen reader doing stuff
198@@ -1051,6 +1059,7 @@ QAccessibleInterface *RenderWidgetHostViewQt::GetQtAccessible()
199 content::BrowserAccessibilityQt *accQt = static_cast<content::BrowserAccessibilityQt*>(acc);
200 return accQt;
201 }
202+#endif // QT_NO_ACCESSIBILITY
203
204 void RenderWidgetHostViewQt::didFirstVisuallyNonEmptyLayout()
205 {
206diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
207index d4a3ff2..fac7efd 100644
208--- a/src/core/render_widget_host_view_qt.h
209+++ b/src/core/render_widget_host_view_qt.h
210@@ -50,6 +50,7 @@
211 #include <QRect>
212 #include <QtGlobal>
213 #include <QtGui/qaccessible.h>
214+#include <QtGui/QTouchEvent>
215
216 #include "delegated_frame_node.h"
217
218@@ -59,7 +60,6 @@ class QFocusEvent;
219 class QHoverEvent;
220 class QKeyEvent;
221 class QMouseEvent;
222-class QTouchEvent;
223 class QVariant;
224 class QWheelEvent;
225 class QAccessibleInterface;
226@@ -93,7 +93,9 @@ class RenderWidgetHostViewQt
227 , public RenderWidgetHostViewQtDelegateClient
228 , public content::BrowserAccessibilityDelegate
229 , public base::SupportsWeakPtr<RenderWidgetHostViewQt>
230+#ifndef QT_NO_ACCESSIBILITY
231 , public QAccessible::ActivationObserver
232+#endif // QT_NO_ACCESSIBILITY
233 {
234 public:
235 RenderWidgetHostViewQt(content::RenderWidgetHost* widget);
236@@ -213,9 +215,11 @@ public:
237 virtual gfx::Point AccessibilityOriginInScreen(const gfx::Rect& bounds) const Q_DECL_OVERRIDE { return gfx::Point(); }
238 virtual void AccessibilityHitTest(const gfx::Point& point) Q_DECL_OVERRIDE { }
239 virtual void AccessibilityFatalError() Q_DECL_OVERRIDE;
240+#ifndef QT_NO_ACCESSIBILITY
241 virtual void accessibilityActiveChanged(bool active) Q_DECL_OVERRIDE;
242
243 QAccessibleInterface *GetQtAccessible();
244+#endif // QT_NO_ACCESSIBILITY
245
246 void didFirstVisuallyNonEmptyLayout();
247
248diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
249index 3f223f7..e41acd0 100644
250--- a/src/core/web_contents_adapter.cpp
251+++ b/src/core/web_contents_adapter.cpp
252@@ -628,12 +628,14 @@ void WebContentsAdapter::enableInspector(bool enable)
253 ContentBrowserClientQt::Get()->enableInspector(enable);
254 }
255
256+#ifndef QT_NO_ACCESSIBILITY
257 QAccessibleInterface *WebContentsAdapter::browserAccessible()
258 {
259 Q_D(const WebContentsAdapter);
260 RenderWidgetHostViewQt *rwhv = static_cast<RenderWidgetHostViewQt*>(d->webContents->GetRenderWidgetHostView());
261 return rwhv ? rwhv->GetQtAccessible() : Q_NULLPTR;
262 }
263+#endif // QT_NO_ACCESSIBILITY
264
265 void WebContentsAdapter::runJavaScript(const QString &javaScript)
266 {
267diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h
268index 8fd401f..df18980 100644
269--- a/src/core/web_contents_adapter_client.h
270+++ b/src/core/web_contents_adapter_client.h
271@@ -168,7 +168,9 @@ public:
272 virtual void passOnFocus(bool reverse) = 0;
273 // returns the last QObject (QWidget/QQuickItem) based object in the accessibility
274 // hierarchy before going into the BrowserAccessibility tree
275+#ifndef QT_NO_ACCESSIBILITY
276 virtual QObject *accessibilityParentObject() = 0;
277+#endif // QT_NO_ACCESSIBILITY
278 virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) = 0;
279 virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) = 0;
280 virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) = 0;
281diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
282index 3497c16..a35cfc3 100644
283--- a/src/webengine/api/qquickwebengineview.cpp
284+++ b/src/webengine/api/qquickwebengineview.cpp
285@@ -61,16 +61,20 @@
286 #include <QScreen>
287 #include <QStringBuilder>
288 #include <QUrl>
289+#ifndef QT_NO_ACCESSIBILITY
290 #include <private/qquickaccessibleattached_p.h>
291+#endif // QT_NO_ACCESSIBILITY
292
293 QT_BEGIN_NAMESPACE
294
295+#ifndef QT_NO_ACCESSIBILITY
296 static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *object)
297 {
298 if (QQuickWebEngineView *v = qobject_cast<QQuickWebEngineView*>(object))
299 return new QQuickWebEngineViewAccessible(v);
300 return 0;
301 }
302+#endif // QT_NO_ACCESSIBILITY
303
304 QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
305 : adapter(new WebContentsAdapter)
306@@ -102,7 +106,9 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
307 // 1x, 2x, 3x etc assets that fit an integral number of pixels.
308 setDevicePixelRatio(qMax(1, qRound(webPixelRatio)));
309 }
310+#ifndef QT_NO_ACCESSIBILITY
311 QAccessible::installFactory(&webAccessibleFactory);
312+#endif // QT_NO_ACCESSIBILITY
313 }
314
315 QQuickWebEngineViewPrivate::~QQuickWebEngineViewPrivate()
316@@ -395,11 +401,13 @@ void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &sec
317 Q_EMIT e->featurePermissionRequested(securityOrigin, feature);
318 }
319
320+#ifndef QT_NO_ACCESSIBILITY
321 QObject *QQuickWebEngineViewPrivate::accessibilityParentObject()
322 {
323 Q_Q(QQuickWebEngineView);
324 return q;
325 }
326+#endif // QT_NO_ACCESSIBILITY
327
328 WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const
329 {
330@@ -414,6 +422,7 @@ void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio)
331 m_dpiScale = devicePixelRatio / screen->devicePixelRatio();
332 }
333
334+#ifndef QT_NO_ACCESSIBILITY
335 QQuickWebEngineViewAccessible::QQuickWebEngineViewAccessible(QQuickWebEngineView *o)
336 : QAccessibleObject(o)
337 {}
338@@ -460,6 +469,7 @@ QAccessible::State QQuickWebEngineViewAccessible::state() const
339 QAccessible::State s;
340 return s;
341 }
342+#endif // QT_NO_ACCESSIBILITY
343
344 void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContents)
345 {
346@@ -497,8 +507,10 @@ QQuickWebEngineView::QQuickWebEngineView(QQuickItem *parent)
347 this->setActiveFocusOnTab(true);
348 this->setFlag(QQuickItem::ItemIsFocusScope);
349
350+#ifndef QT_NO_ACCESSIBILITY
351 QQuickAccessibleAttached *accessible = QQuickAccessibleAttached::qmlAttachedProperties(this);
352 accessible->setRole(QAccessible::Grouping);
353+#endif // QT_NO_ACCESSIBILITY
354 }
355
356 QQuickWebEngineView::~QQuickWebEngineView()
357diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h
358index 22713ee..f3ceb2c 100644
359--- a/src/webengine/api/qquickwebengineview_p.h
360+++ b/src/webengine/api/qquickwebengineview_p.h
361@@ -155,7 +155,9 @@ private:
362 friend class QQuickWebEngineViewExperimental;
363 friend class QQuickWebEngineViewExperimentalExtension;
364 friend class QQuickWebEngineNewViewRequest;
365+#ifndef QT_NO_ACCESSIBILITY
366 friend class QQuickWebEngineViewAccessible;
367+#endif // QT_NO_ACCESSIBILITY
368 };
369
370 QT_END_NAMESPACE
371diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h
372index 6662f1f..3ab95c6 100644
373--- a/src/webengine/api/qquickwebengineview_p_p.h
374+++ b/src/webengine/api/qquickwebengineview_p_p.h
375@@ -175,7 +175,9 @@ public:
376 virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
377 virtual void authenticationRequired(const QUrl&, const QString&, bool, const QString&, QString*, QString*) Q_DECL_OVERRIDE { }
378 virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) Q_DECL_OVERRIDE;
379+#ifndef QT_NO_ACCESSIBILITY
380 virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE;
381+#endif // QT_NO_ACCESSIBILITY
382 virtual WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE;
383 virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &errorController);
384
385@@ -202,6 +204,7 @@ private:
386 qreal m_dpiScale;
387 };
388
389+#ifndef QT_NO_ACCESSIBILITY
390 class QQuickWebEngineViewAccessible : public QAccessibleObject
391 {
392 public:
393@@ -217,7 +220,7 @@ public:
394 private:
395 QQuickWebEngineView *engineView() const { return static_cast<QQuickWebEngineView*>(object()); }
396 };
397-
398+#endif // QT_NO_ACCESSIBILITY
399 QT_END_NAMESPACE
400
401 QML_DECLARE_TYPE(QQuickWebEngineViewExperimental)
402diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
403index 72b16f2..068c175 100644
404--- a/src/webenginewidgets/api/qwebenginepage.cpp
405+++ b/src/webenginewidgets/api/qwebenginepage.cpp
406@@ -39,6 +39,7 @@
407 #include <QApplication>
408 #include <QAuthenticator>
409 #include <QClipboard>
410+#include <QContextMenuEvent>
411 #include <QFileDialog>
412 #include <QIcon>
413 #include <QInputDialog>
414@@ -342,10 +343,12 @@ void QWebEnginePagePrivate::runMediaAccessPermissionRequest(const QUrl &security
415 Q_EMIT q->featurePermissionRequested(securityOrigin, requestedFeature);
416 }
417
418+#ifndef QT_NO_ACCESSIBILITY
419 QObject *QWebEnginePagePrivate::accessibilityParentObject()
420 {
421 return view;
422 }
423+#endif // QT_NO_ACCESSIBILITY
424
425 void QWebEnginePagePrivate::updateAction(QWebEnginePage::WebAction action) const
426 {
427diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
428index 7856b82..9fd81b0 100644
429--- a/src/webenginewidgets/api/qwebenginepage.h
430+++ b/src/webenginewidgets/api/qwebenginepage.h
431@@ -258,7 +258,9 @@ private:
432
433 friend class QWebEngineView;
434 friend class QWebEngineViewPrivate;
435+#ifndef QT_NO_ACCESSIBILITY
436 friend class QWebEngineViewAccessible;
437+#endif // QT_NO_ACCESSIBILITY
438 };
439
440
441diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h
442index 5412922..2307e7a 100644
443--- a/src/webenginewidgets/api/qwebenginepage_p.h
444+++ b/src/webenginewidgets/api/qwebenginepage_p.h
445@@ -135,7 +135,9 @@ public:
446 virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
447 virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE;
448 virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) Q_DECL_OVERRIDE;
449+#ifndef QT_NO_ACCESSIBILITY
450 virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE;
451+#endif // QT_NO_ACCESSIBILITY
452 virtual WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE;
453 virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &controller) Q_DECL_OVERRIDE;
454
455diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
456index 8d21989..63ac405 100644
457--- a/src/webenginewidgets/api/qwebengineview.cpp
458+++ b/src/webenginewidgets/api/qwebengineview.cpp
459@@ -85,19 +85,22 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page)
460 }
461 }
462
463-
464+#ifndef QT_NO_ACCESSIBILITY
465 static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *object)
466 {
467 if (QWebEngineView *v = qobject_cast<QWebEngineView*>(object))
468 return new QWebEngineViewAccessible(v);
469 return Q_NULLPTR;
470 }
471+#endif // QT_NO_ACCESSIBILITY
472
473 QWebEngineViewPrivate::QWebEngineViewPrivate()
474 : page(0)
475 , m_pendingContextMenuEvent(false)
476 {
477+#ifndef QT_NO_ACCESSIBILITY
478 QAccessible::installFactory(&webAccessibleFactory);
479+#endif // QT_NO_ACCESSIBILITY
480 }
481
482 QWebEngineView::QWebEngineView(QWidget *parent)
483@@ -274,6 +277,7 @@ void QWebEngineView::contextMenuEvent(QContextMenuEvent *event)
484 menu->popup(event->globalPos());
485 }
486
487+#ifndef QT_NO_ACCESSIBILITY
488 int QWebEngineViewAccessible::childCount() const
489 {
490 if (view() && child(0))
491@@ -294,6 +298,7 @@ int QWebEngineViewAccessible::indexOfChild(const QAccessibleInterface *c) const
492 return 0;
493 return -1;
494 }
495+#endif // QT_NO_ACCESSIBILITY
496
497 QT_END_NAMESPACE
498
499diff --git a/src/webenginewidgets/api/qwebengineview_p.h b/src/webenginewidgets/api/qwebengineview_p.h
500index 9db971f..e0cc3f4 100644
501--- a/src/webenginewidgets/api/qwebengineview_p.h
502+++ b/src/webenginewidgets/api/qwebengineview_p.h
503@@ -59,6 +59,7 @@ public:
504 bool m_pendingContextMenuEvent;
505 };
506
507+#ifndef QT_NO_ACCESSIBILITY
508 class QWebEngineViewAccessible : public QAccessibleWidget
509 {
510 public:
511@@ -72,7 +73,7 @@ public:
512 private:
513 QWebEngineView *view() const { return static_cast<QWebEngineView*>(object()); }
514 };
515-
516+#endif // QT_NO_ACCESSIBILITY
517
518 QT_END_NAMESPACE
519
520diff --git a/tests/quicktestbrowser/quicktestbrowser.pro b/tests/quicktestbrowser/quicktestbrowser.pro
521index ac8fe74..51ea5a2 100644
522--- a/tests/quicktestbrowser/quicktestbrowser.pro
523+++ b/tests/quicktestbrowser/quicktestbrowser.pro
524@@ -1,3 +1,5 @@
525+requires(contains(QT_CONFIG, accessibility))
526+
527 TEMPLATE = app
528 TARGET = quicktestbrowser
529
530--
5312.3.1
532
diff --git a/recipes-qt/qt5/qtwebengine_5.4.1.bb b/recipes-qt/qt5/qtwebengine_5.4.1.bb
deleted file mode 100644
index 867d5bdd..00000000
--- a/recipes-qt/qt5/qtwebengine_5.4.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "bf3ad162f85537d55310d0aef9ee4515"
5SRC_URI[sha256sum] = "3242abcab5b5f2a80529d16cadd5003600d3f6720220d3aa38ec756e609faab0"
6
7SRC_URI += " \
8 file://0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch \
9 file://0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch \
10 file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \
11 file://0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch \
12 file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \
13"
diff --git a/recipes-qt/qt5/qtwebkit-examples_5.4.1.bb b/recipes-qt/qt5/qtwebkit-examples_5.4.1.bb
deleted file mode 100644
index b3b89214..00000000
--- a/recipes-qt/qt5/qtwebkit-examples_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "783bfd27e79769f3ceeb206a4921400b"
5SRC_URI[sha256sum] = "19187bb31c349c67f90c92df896f14f9167b982bdef5187e83fd68407826720a"
diff --git a/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch b/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch
deleted file mode 100644
index f1b9bdb7..00000000
--- a/recipes-qt/qt5/qtwebkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From 97d4af4ea8708829d6df276ae741c2076cb472e8 Mon Sep 17 00:00:00 2001
2From: Trevor Woerner <trevor.woerner@linaro.org>
3Date: Fri, 7 Feb 2014 04:07:17 +0100
4Subject: [PATCH 1/2] qtwebkit: fix QA issue (bad RPATH)
5
6Building qtwebkit causes a QA issue such that QtWebPluginProcess and
7QtWebProcess contain bad RPATHs which point into the build location. This fix
8adds a patch to not include the rpath.prf which causes this problem.
9
10Signed-off-by: Trevor Woerner <trevor.woerner@linaro.org>
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 Tools/qmake/mkspecs/features/unix/default_post.prf | 1 -
14 1 file changed, 1 deletion(-)
15
16diff --git a/Tools/qmake/mkspecs/features/unix/default_post.prf b/Tools/qmake/mkspecs/features/unix/default_post.prf
17index fd66af6..ef754c3 100644
18--- a/Tools/qmake/mkspecs/features/unix/default_post.prf
19+++ b/Tools/qmake/mkspecs/features/unix/default_post.prf
20@@ -61,7 +61,6 @@ linux-*g++* {
21 }
22 }
23
24-contains(TEMPLATE, app): CONFIG += rpath
25
26 CONFIG(debug, debug|release)|force_debug_info {
27 # Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase.
28--
292.3.1
30
diff --git a/recipes-qt/qt5/qtwebkit/0002-Remove-TEXTREL-tag-in-x86.patch b/recipes-qt/qt5/qtwebkit/0002-Remove-TEXTREL-tag-in-x86.patch
deleted file mode 100644
index 64bfa3e7..00000000
--- a/recipes-qt/qt5/qtwebkit/0002-Remove-TEXTREL-tag-in-x86.patch
+++ /dev/null
@@ -1,79 +0,0 @@
1From ecb13fa1c9fa45b7e307232b24331c040c88330b Mon Sep 17 00:00:00 2001
2From: Magnus Granberg <zorry@gentoo.org>
3Date: Fri, 27 Feb 2015 11:55:09 +0100
4Subject: [PATCH 2/2] Remove TEXTREL tag in x86
5
6Fix textrel QA warnings when building qtwebkit for x86:
7
8 WARNING: QA Issue: ELF binary '/home/andre/rdk/rdk-master/build-vbox32/tmp/work/core2-32-rdk-linux/qtwebkit/5.4.0-r0/packages-split/qtwebkit/usr/lib/libQt5WebKit.so.5.4.0' has relocations in .text [textrel]
9
10Patch from upstream webkit:
11
12 https://bugs.webkit.org/show_bug.cgi?id=70610
13
14Minor refresh required to apply cleanly to the older webkit sources used
15by qtwebkit. Specifically, the patch needed to be modified to account
16for PLATFORM(MAC) -> OS(DARWIN) renaming in recent webkit which is not
17part of qtwebkit yet ( https://bugs.webkit.org/show_bug.cgi?id=99683 ).
18
19Upstream status [webkit] : backport
20Upstream status [qtwebkit] : unclear
21
22Bug: https://bugs.webkit.org/show_bug.cgi?id=70610
23Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
24---
25 Source/JavaScriptCore/jit/ThunkGenerators.cpp | 24 ++++++++++++++++++++++++
26 Source/WTF/wtf/InlineASM.h | 2 ++
27 2 files changed, 26 insertions(+)
28
29diff --git a/Source/JavaScriptCore/jit/ThunkGenerators.cpp b/Source/JavaScriptCore/jit/ThunkGenerators.cpp
30index 9684df2..8af82d8 100644
31--- a/Source/JavaScriptCore/jit/ThunkGenerators.cpp
32+++ b/Source/JavaScriptCore/jit/ThunkGenerators.cpp
33@@ -524,6 +524,30 @@ double jsRound(double d)
34 } \
35 static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk;
36
37+#elif CPU(X86) && COMPILER(GCC) && OS(LINUX) && defined(__PIC__)
38+#define defineUnaryDoubleOpWrapper(function) \
39+ asm( \
40+ ".text\n" \
41+ ".globl " SYMBOL_STRING(function##Thunk) "\n" \
42+ HIDE_SYMBOL(function##Thunk) "\n" \
43+ SYMBOL_STRING(function##Thunk) ":" "\n" \
44+ "pushl %ebx\n" \
45+ "subl $20, %esp\n" \
46+ "movsd %xmm0, (%esp) \n" \
47+ "call __x86.get_pc_thunk.bx\n" \
48+ "addl $_GLOBAL_OFFSET_TABLE_, %ebx\n" \
49+ "call " GLOBAL_REFERENCE(function) "\n" \
50+ "fstpl (%esp) \n" \
51+ "movsd (%esp), %xmm0 \n" \
52+ "addl $20, %esp\n" \
53+ "popl %ebx\n" \
54+ "ret\n" \
55+ );\
56+ extern "C" { \
57+ MathThunkCallingConvention function##Thunk(MathThunkCallingConvention); \
58+ } \
59+ static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk;
60+
61 #elif CPU(X86) && COMPILER(GCC) && (PLATFORM(MAC) || OS(LINUX))
62 #define defineUnaryDoubleOpWrapper(function) \
63 asm( \
64diff --git a/Source/WTF/wtf/InlineASM.h b/Source/WTF/wtf/InlineASM.h
65index 0a2fe78..2dc40ef 100644
66--- a/Source/WTF/wtf/InlineASM.h
67+++ b/Source/WTF/wtf/InlineASM.h
68@@ -46,6 +46,8 @@
69 #define GLOBAL_REFERENCE(name) #name "@plt"
70 #elif CPU(X86) && COMPILER(MINGW)
71 #define GLOBAL_REFERENCE(name) "@" #name "@4"
72+#elif OS(LINUX) && CPU(X86) && defined(__PIC__)
73+#define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) "@plt"
74 #else
75 #define GLOBAL_REFERENCE(name) SYMBOL_STRING(name)
76 #endif
77--
782.3.1
79
diff --git a/recipes-qt/qt5/qtwebkit/0003-Fix-building-with-glib-2.43.patch b/recipes-qt/qt5/qtwebkit/0003-Fix-building-with-glib-2.43.patch
deleted file mode 100644
index 12034704..00000000
--- a/recipes-qt/qt5/qtwebkit/0003-Fix-building-with-glib-2.43.patch
+++ /dev/null
@@ -1,238 +0,0 @@
1From ef94c178a7ba0bd43a677ec90fde334ce2c90810 Mon Sep 17 00:00:00 2001
2From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
3Date: Fri, 27 Feb 2015 14:14:44 +0100
4Subject: [PATCH 3/3] Fix building with glib 2.43+
5
6The newest version of glib have introduced their own GMutexLocker
7conflicting with the one defined in WebCore.
8
9Task-number: QTBUG-44714
10Change-Id: Ibdd1646e129eaed84c65dc0d96bebe80f2a61f4b
11Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
12---
13 .../gstreamer/WebKitWebSourceGStreamer.cpp | 48 +++++++++++-----------
14 1 file changed, 24 insertions(+), 24 deletions(-)
15
16diff --git a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
17index 5625873..a6d961f 100644
18--- a/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
19+++ b/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
20@@ -354,7 +354,7 @@ static void webKitWebSrcSetProperty(GObject* object, guint propID, const GValue*
21
22 switch (propID) {
23 case PROP_IRADIO_MODE: {
24- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
25+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
26 priv->iradioMode = g_value_get_boolean(value);
27 break;
28 }
29@@ -376,7 +376,7 @@ static void webKitWebSrcGetProperty(GObject* object, guint propID, GValue* value
30 WebKitWebSrc* src = WEBKIT_WEB_SRC(object);
31 WebKitWebSrcPrivate* priv = src->priv;
32
33- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
34+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
35 switch (propID) {
36 case PROP_IRADIO_MODE:
37 g_value_set_boolean(value, priv->iradioMode);
38@@ -429,7 +429,7 @@ static gboolean webKitWebSrcStop(WebKitWebSrc* src)
39
40 ASSERT(isMainThread());
41
42- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
43+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
44
45 bool seeking = priv->seekID;
46
47@@ -493,7 +493,7 @@ static gboolean webKitWebSrcStart(WebKitWebSrc* src)
48
49 ASSERT(isMainThread());
50
51- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
52+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
53
54 priv->startID = 0;
55
56@@ -584,7 +584,7 @@ static GstStateChangeReturn webKitWebSrcChangeState(GstElement* element, GstStat
57 return ret;
58 }
59
60- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
61+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
62 switch (transition) {
63 case GST_STATE_CHANGE_READY_TO_PAUSED:
64 GST_DEBUG_OBJECT(src, "READY->PAUSED");
65@@ -615,7 +615,7 @@ static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ
66 gst_query_parse_duration(query, &format, NULL);
67
68 GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format));
69- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
70+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
71 if (format == GST_FORMAT_BYTES && src->priv->size > 0) {
72 gst_query_set_duration(query, format, src->priv->size);
73 result = TRUE;
74@@ -623,7 +623,7 @@ static gboolean webKitWebSrcQueryWithParent(GstPad* pad, GstObject* parent, GstQ
75 break;
76 }
77 case GST_QUERY_URI: {
78- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
79+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
80 gst_query_set_uri(query, src->priv->uri);
81 result = TRUE;
82 break;
83@@ -668,7 +668,7 @@ static gchar* webKitWebSrcGetUri(GstURIHandler* handler)
84 WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
85 gchar* ret;
86
87- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
88+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
89 ret = g_strdup(src->priv->uri);
90 return ret;
91 }
92@@ -683,7 +683,7 @@ static gboolean webKitWebSrcSetUri(GstURIHandler* handler, const gchar* uri, GEr
93 return FALSE;
94 }
95
96- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
97+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
98
99 g_free(priv->uri);
100 priv->uri = 0;
101@@ -719,7 +719,7 @@ static const gchar* webKitWebSrcGetUri(GstURIHandler* handler)
102 WebKitWebSrc* src = WEBKIT_WEB_SRC(handler);
103 gchar* ret;
104
105- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
106+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
107 ret = g_strdup(src->priv->uri);
108 return ret;
109 }
110@@ -734,7 +734,7 @@ static gboolean webKitWebSrcSetUri(GstURIHandler* handler, const gchar* uri)
111 return FALSE;
112 }
113
114- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
115+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
116
117 g_free(priv->uri);
118 priv->uri = 0;
119@@ -772,7 +772,7 @@ static gboolean webKitWebSrcNeedDataMainCb(WebKitWebSrc* src)
120
121 ASSERT(isMainThread());
122
123- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
124+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
125 // already stopped
126 if (!priv->needDataID)
127 return FALSE;
128@@ -793,7 +793,7 @@ static void webKitWebSrcNeedDataCb(GstAppSrc*, guint length, gpointer userData)
129
130 GST_DEBUG_OBJECT(src, "Need more data: %u", length);
131
132- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
133+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
134 if (priv->needDataID || !priv->paused) {
135 return;
136 }
137@@ -807,7 +807,7 @@ static gboolean webKitWebSrcEnoughDataMainCb(WebKitWebSrc* src)
138
139 ASSERT(isMainThread());
140
141- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
142+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
143 // already stopped
144 if (!priv->enoughDataID)
145 return FALSE;
146@@ -828,7 +828,7 @@ static void webKitWebSrcEnoughDataCb(GstAppSrc*, gpointer userData)
147
148 GST_DEBUG_OBJECT(src, "Have enough data");
149
150- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
151+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
152 if (priv->enoughDataID || priv->paused) {
153 return;
154 }
155@@ -842,7 +842,7 @@ static gboolean webKitWebSrcSeekMainCb(WebKitWebSrc* src)
156
157 ASSERT(isMainThread());
158
159- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
160+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
161 // already stopped
162 if (!priv->seekID)
163 return FALSE;
164@@ -860,7 +860,7 @@ static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user
165 WebKitWebSrcPrivate* priv = src->priv;
166
167 GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset);
168- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
169+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
170 if (offset == priv->offset && priv->requestedOffset == priv->offset)
171 return TRUE;
172
173@@ -879,7 +879,7 @@ static gboolean webKitWebSrcSeekDataCb(GstAppSrc*, guint64 offset, gpointer user
174 void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player)
175 {
176 ASSERT(player);
177- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
178+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
179 src->priv->player = player;
180 s_cachedResourceLoader = player->cachedResourceLoader();
181 }
182@@ -906,7 +906,7 @@ char* StreamingClient::createReadBuffer(size_t requestedSize, size_t& actualSize
183 mapGstBuffer(buffer);
184 #endif
185
186- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
187+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
188 priv->buffer = adoptGRef(buffer);
189 locker.unlock();
190
191@@ -921,7 +921,7 @@ void StreamingClient::handleResponseReceived(const ResourceResponse& response)
192
193 GST_DEBUG_OBJECT(src, "Received response: %d", response.httpStatusCode());
194
195- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
196+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
197
198 // If we seeked we need 206 == PARTIAL_CONTENT
199 if (priv->requestedOffset && response.httpStatusCode() != 206) {
200@@ -1020,7 +1020,7 @@ void StreamingClient::handleDataReceived(const char* data, int length)
201 WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src.get());
202 WebKitWebSrcPrivate* priv = src->priv;
203
204- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
205+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
206
207 GST_LOG_OBJECT(src, "Have %d bytes of data", priv->buffer ? getGstBufferSize(priv->buffer.get()) : length);
208
209@@ -1074,7 +1074,7 @@ void StreamingClient::handleNotifyFinished()
210
211 GST_DEBUG_OBJECT(src, "Have EOS");
212
213- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
214+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
215 if (!priv->seekID) {
216 locker.unlock();
217 gst_app_src_end_of_stream(priv->appsrc);
218@@ -1210,7 +1210,7 @@ void ResourceHandleStreamingClient::wasBlocked(ResourceHandle*)
219
220 GST_ERROR_OBJECT(src, "Request was blocked");
221
222- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
223+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
224 uri.set(g_strdup(src->priv->uri));
225 locker.unlock();
226
227@@ -1224,7 +1224,7 @@ void ResourceHandleStreamingClient::cannotShowURL(ResourceHandle*)
228
229 GST_ERROR_OBJECT(src, "Cannot show URL");
230
231- GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
232+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src));
233 uri.set(g_strdup(src->priv->uri));
234 locker.unlock();
235
236--
2372.3.5
238
diff --git a/recipes-qt/qt5/qtwebkit/0004-gcc5-qtbug-44829.patch b/recipes-qt/qt5/qtwebkit/0004-gcc5-qtbug-44829.patch
deleted file mode 100644
index 81295d1c..00000000
--- a/recipes-qt/qt5/qtwebkit/0004-gcc5-qtbug-44829.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From 650c6ee8e76bb574d3a1bea09e2494992d8f070e Mon Sep 17 00:00:00 2001
2From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
3Date: Fri, 6 Mar 2015 11:20:13 +0100
4Subject: Fix g++ 5.0 build
5
6A non-inline template needs to be explicitly instantiated if used
7outside the object where it is declared.
8
9Patch suggested by Khem Raj.
10
11Task-number: QTBUG-44829
12Change-Id: Ib0adbd9273bd1cef01e5863bc8aaa9c373022792
13Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
14---
15 Source/JavaScriptCore/runtime/JSObject.cpp | 5 +++++
16 1 file changed, 5 insertions(+)
17
18diff --git a/Source/JavaScriptCore/runtime/JSObject.cpp b/Source/JavaScriptCore/runtime/JSObject.cpp
19index 5637e20..bd55919 100644
20--- a/Source/JavaScriptCore/runtime/JSObject.cpp
21+++ b/Source/JavaScriptCore/runtime/JSObject.cpp
22@@ -1909,6 +1909,11 @@ void JSObject::putByIndexBeyondVectorLengthWithoutAttributes(ExecState* exec, un
23 }
24 }
25
26+// Used in JSArray.cpp so we must instantiate explicit
27+template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<Int32Shape>(ExecState* exec, unsigned i, JSValue value);
28+template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<DoubleShape>(ExecState* exec, unsigned i, JSValue value);
29+template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<ContiguousShape>(ExecState* exec, unsigned i, JSValue value);
30+
31 void JSObject::putByIndexBeyondVectorLengthWithArrayStorage(ExecState* exec, unsigned i, JSValue value, bool shouldThrow, ArrayStorage* storage)
32 {
33 VM& vm = exec->vm();
34--
35cgit v0.11.0
36
diff --git a/recipes-qt/qt5/qtwebkit_5.4.1.bb b/recipes-qt/qt5/qtwebkit_5.4.1.bb
deleted file mode 100644
index 454e4708..00000000
--- a/recipes-qt/qt5/qtwebkit_5.4.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI += "\
5 file://0003-Fix-building-with-glib-2.43.patch \
6 file://0004-gcc5-qtbug-44829.patch \
7"
8
9SRC_URI[md5sum] = "186627b1ea5b614811fbd0cfa9b4d073"
10SRC_URI[sha256sum] = "6607211ef8a913dc778617bf4ba0970e34cc71e1da3abb477eabe0035e7119bf"
diff --git a/recipes-qt/qt5/qtwebsockets_5.4.1.bb b/recipes-qt/qt5/qtwebsockets_5.4.1.bb
deleted file mode 100644
index 33f6122c..00000000
--- a/recipes-qt/qt5/qtwebsockets_5.4.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "308e1e9126e6fab8b06616db9810973e"
5SRC_URI[sha256sum] = "daf56f98c5e267253bd2d2e421472fc02faa1703a9063cc14cf8afce6967ab44"
diff --git a/recipes-qt/qt5/qtx11extras_5.4.1.bb b/recipes-qt/qt5/qtx11extras_5.4.1.bb
deleted file mode 100644
index fa9f32a5..00000000
--- a/recipes-qt/qt5/qtx11extras_5.4.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "87d555e0c7eccaa462a9bba85fb2d4de"
5SRC_URI[sha256sum] = "20a61cdb9f925e9ab959bed1e7aeb1855b721619d5dc5f3691b8c1ce186e8c2e"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"
12
diff --git a/recipes-qt/qt5/qtxmlpatterns_5.4.1.bb b/recipes-qt/qt5/qtxmlpatterns_5.4.1.bb
deleted file mode 100644
index 583879da..00000000
--- a/recipes-qt/qt5/qtxmlpatterns_5.4.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
1require qt5-${PV}.inc
2require ${PN}.inc
3
4SRC_URI[md5sum] = "ec2970e9e9c38f88be74f18101937c28"
5SRC_URI[sha256sum] = "f5142ff4d3f1154550530eddf310d2ff149c6f0055d3d028ad48cb5491c65318"
6
7# License files in this module still contain 2014 as year
8LIC_FILES_CHKSUM = "file://LICENSE.LGPLv21;md5=cff17b12416c896e10ae2c17a64252e7 \
9 file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \
11 file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"