Patchwork [meta-qt5,3/3] qtwebkit: add packageconfig for gstreamer, qtlocation and qtsensors

login
register
mail settings
Submitter Andreas Oberritter
Date Feb. 28, 2014, 8:15 p.m.
Message ID <1393618507-29414-3-git-send-email-obi@opendreambox.org>
Download mbox | patch
Permalink /patch/67767/
State Accepted, archived
Headers show

Comments

Andreas Oberritter - Feb. 28, 2014, 8:15 p.m.
Use gstreamer for 1.x, gstreamer010 for 0.10.x.

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
---
 recipes-qt/qt5/qtwebkit.inc | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)
Andre McCurdy - March 28, 2014, 6:16 a.m.
On Fri, Feb 28, 2014 at 12:15 PM, Andreas Oberritter
<obi@opendreambox.org> wrote:
> Use gstreamer for 1.x, gstreamer010 for 0.10.x.
>
> Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
> ---
>  recipes-qt/qt5/qtwebkit.inc | 24 +++++++++++++++++++++++-
>  1 file changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/recipes-qt/qt5/qtwebkit.inc b/recipes-qt/qt5/qtwebkit.inc
> index c35504e..90bd981 100644
> --- a/recipes-qt/qt5/qtwebkit.inc
> +++ b/recipes-qt/qt5/qtwebkit.inc
> @@ -5,7 +5,29 @@ LIC_FILES_CHKSUM = "file://Source/WebCore/rendering/RenderApplet.h;endline=22;md
>                      file://Source/WebKit/gtk/webkit/webkit.h;endline=21;md5=b4fbe9f4a944f1d071dba1d2c76b3351 \
>                      file://Source/JavaScriptCore/parser/Parser.h;endline=21;md5=bd69f72183a7af673863f057576e21ee"
>
> -DEPENDS += "qtdeclarative qtlocation qtsensors icu ruby-native sqlite3 glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base libxslt"
> +DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt"
> +
> +PACKAGECONFIG ??= "gstreamer qtlocation qtsensors"
> +PACKAGECONFIG[gstreamer] = ",,gstreamer1.0 gstreamer1.0-plugins-base"
> +PACKAGECONFIG[gstreamer010] = ",,gstreamer gst-plugins-base"
> +PACKAGECONFIG[qtlocation] = ",,qtlocation"
> +PACKAGECONFIG[qtsensors] = ",,qtsensors"
> +
> +do_configure_prepend() {
> +    # disable gstreamer-1.0 test if it isn't enabled by PACKAGECONFIG
> +    sed -e 's/\s\(packagesExist(".*\<gstreamer-1.0\>.*")\)/ OE_GSTREAMER_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
> +    # disable gstreamer-0.10 test if it isn't enabled by PACKAGECONFIG
> +    sed -e 's/\s\(packagesExist(".*\<gstreamer-0.10\>.*")\)/ OE_GSTREAMER010_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
> +    # disable qtlocation test if it isn't enabled by PACKAGECONFIG
> +    sed -e 's/\s\(qtHaveModule(positioning)\)/ OE_QTLOCATION_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
> +    # disable qtsensors test if it isn't enabled by PACKAGECONFIG
> +    sed -e 's/\s\(qtHaveModule(sensors)\)/ OE_QTSENSORS_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
> +}
> +
> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer', 'CONFIG+=OE_GSTREAMER_ENABLED', '', d)}"
> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer010', 'CONFIG+=OE_GSTREAMER010_ENABLED', '', d)}"
> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtlocation', 'CONFIG+=OE_QTLOCATION_ENABLED', '', d)}"
> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtsensors', 'CONFIG+=OE_QTSENSORS_ENABLED', '', d)}"
>
>  # qtwebkit gets terribly big when linking with all debug info, disable by default
>  QTWEBKIT_DEBUG = "QMAKE_CFLAGS+=-g0 QMAKE_CXXFLAGS+=-g0"
> --
> 1.8.3.2
>

Hi,

With this change I'm seeing that the CONFIG+= options from the qmake
command line are being added to CONFIG after features.prf has already
been evaluated. Therefore OE_GSTREAMER_ENABLED etc evaluates as false
and qtwebkit is always configured without video support.

From the configure log:

> ! Missing GStreamer or QtMultimedia, disabling HTML5 media element support

From the qmake debug log:

> DEBUG 1: ... features.prf:106: condition "OE_GSTREAMER_ENABLED" is false (around line 5480 of the log)
> ...
> DEBUG 1: (command line):65535: CONFIG := ... OE_GSTREAMER_ENABLED (around line 5802 of the log, just prior to starting on WebKit.pro).

I'm testing with dora + master branch of meta-qt5.

Andre
--
Andre McCurdy - April 4, 2014, 3:34 a.m.
> On Fri, Feb 28, 2014 at 12:15 PM, Andreas Oberritter
> <obi@opendreambox.org> wrote:
>> Use gstreamer for 1.x, gstreamer010 for 0.10.x.
>>
>> Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
>> ---
>>  recipes-qt/qt5/qtwebkit.inc | 24 +++++++++++++++++++++++-
>>  1 file changed, 23 insertions(+), 1 deletion(-)
>>
>> diff --git a/recipes-qt/qt5/qtwebkit.inc b/recipes-qt/qt5/qtwebkit.inc
>> index c35504e..90bd981 100644
>> --- a/recipes-qt/qt5/qtwebkit.inc
>> +++ b/recipes-qt/qt5/qtwebkit.inc
>> @@ -5,7 +5,29 @@ LIC_FILES_CHKSUM = "file://Source/WebCore/rendering/RenderApplet.h;endline=22;md
>>                      file://Source/WebKit/gtk/webkit/webkit.h;endline=21;md5=b4fbe9f4a944f1d071dba1d2c76b3351 \
>>                      file://Source/JavaScriptCore/parser/Parser.h;endline=21;md5=bd69f72183a7af673863f057576e21ee"
>>
>> -DEPENDS += "qtdeclarative qtlocation qtsensors icu ruby-native sqlite3 glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base libxslt"
>> +DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt"
>> +
>> +PACKAGECONFIG ??= "gstreamer qtlocation qtsensors"
>> +PACKAGECONFIG[gstreamer] = ",,gstreamer1.0 gstreamer1.0-plugins-base"
>> +PACKAGECONFIG[gstreamer010] = ",,gstreamer gst-plugins-base"
>> +PACKAGECONFIG[qtlocation] = ",,qtlocation"
>> +PACKAGECONFIG[qtsensors] = ",,qtsensors"
>> +
>> +do_configure_prepend() {
>> +    # disable gstreamer-1.0 test if it isn't enabled by PACKAGECONFIG
>> +    sed -e 's/\s\(packagesExist(".*\<gstreamer-1.0\>.*")\)/ OE_GSTREAMER_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
>> +    # disable gstreamer-0.10 test if it isn't enabled by PACKAGECONFIG
>> +    sed -e 's/\s\(packagesExist(".*\<gstreamer-0.10\>.*")\)/ OE_GSTREAMER010_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
>> +    # disable qtlocation test if it isn't enabled by PACKAGECONFIG
>> +    sed -e 's/\s\(qtHaveModule(positioning)\)/ OE_QTLOCATION_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
>> +    # disable qtsensors test if it isn't enabled by PACKAGECONFIG
>> +    sed -e 's/\s\(qtHaveModule(sensors)\)/ OE_QTSENSORS_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
>> +}
>> +
>> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer', 'CONFIG+=OE_GSTREAMER_ENABLED', '', d)}"
>> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer010', 'CONFIG+=OE_GSTREAMER010_ENABLED', '', d)}"
>> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtlocation', 'CONFIG+=OE_QTLOCATION_ENABLED', '', d)}"
>> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtsensors', 'CONFIG+=OE_QTSENSORS_ENABLED', '', d)}"
>>
>>  # qtwebkit gets terribly big when linking with all debug info, disable by default
>>  QTWEBKIT_DEBUG = "QMAKE_CFLAGS+=-g0 QMAKE_CXXFLAGS+=-g0"
>> --
>
> With this change I'm seeing that the CONFIG+= options from the qmake
> command line are being added to CONFIG after features.prf has already
> been evaluated. Therefore OE_GSTREAMER_ENABLED etc evaluates as false
> and qtwebkit is always configured without video support.
>
> From the configure log:
>
>> ! Missing GStreamer or QtMultimedia, disabling HTML5 media element support
>
> From the qmake debug log:
>
>> DEBUG 1: ... features.prf:106: condition "OE_GSTREAMER_ENABLED" is false (around line 5480 of the log)
>> ...
>> DEBUG 1: (command line):65535: CONFIG := ... OE_GSTREAMER_ENABLED (around line 5802 of the log, just prior to starting on WebKit.pro).
>
> I'm testing with dora + master branch of meta-qt5.
>

Hi all,

I'm still seeing problems since this commit. Even when these new
options are enabled via PACKAGECONFIG, qtwebkit is being configured as
if they were all disabled.

The issue seems to be that the "CONFIG+=OE_xxx_ENABLED" options on the
qmake command line don't work as intended. The options are added to
CONFIG _after_ features.prf is parsed, so testing them in features.prf
always evaluates to false.

Symptoms are "disabling HTML5 media element support" showing up in the
qtwebkit configure log and libQt5WebKit.so.5.2.1 not having any
runtime dependency on libgstreamer, etc.

Is anyone else seeing the same thing ?
Andreas Oberritter - April 4, 2014, 8:37 p.m.
Hello Andre,

On 04.04.2014 05:34, Andre McCurdy wrote:
>> On Fri, Feb 28, 2014 at 12:15 PM, Andreas Oberritter
>> <obi@opendreambox.org> wrote:
>>> Use gstreamer for 1.x, gstreamer010 for 0.10.x.
>>>
>>> Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
>>> ---
>>>  recipes-qt/qt5/qtwebkit.inc | 24 +++++++++++++++++++++++-
>>>  1 file changed, 23 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/recipes-qt/qt5/qtwebkit.inc b/recipes-qt/qt5/qtwebkit.inc
>>> index c35504e..90bd981 100644
>>> --- a/recipes-qt/qt5/qtwebkit.inc
>>> +++ b/recipes-qt/qt5/qtwebkit.inc
>>> @@ -5,7 +5,29 @@ LIC_FILES_CHKSUM = "file://Source/WebCore/rendering/RenderApplet.h;endline=22;md
>>>                      file://Source/WebKit/gtk/webkit/webkit.h;endline=21;md5=b4fbe9f4a944f1d071dba1d2c76b3351 \
>>>                      file://Source/JavaScriptCore/parser/Parser.h;endline=21;md5=bd69f72183a7af673863f057576e21ee"
>>>
>>> -DEPENDS += "qtdeclarative qtlocation qtsensors icu ruby-native sqlite3 glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base libxslt"
>>> +DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt"
>>> +
>>> +PACKAGECONFIG ??= "gstreamer qtlocation qtsensors"
>>> +PACKAGECONFIG[gstreamer] = ",,gstreamer1.0 gstreamer1.0-plugins-base"
>>> +PACKAGECONFIG[gstreamer010] = ",,gstreamer gst-plugins-base"
>>> +PACKAGECONFIG[qtlocation] = ",,qtlocation"
>>> +PACKAGECONFIG[qtsensors] = ",,qtsensors"
>>> +
>>> +do_configure_prepend() {
>>> +    # disable gstreamer-1.0 test if it isn't enabled by PACKAGECONFIG
>>> +    sed -e 's/\s\(packagesExist(".*\<gstreamer-1.0\>.*")\)/ OE_GSTREAMER_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
>>> +    # disable gstreamer-0.10 test if it isn't enabled by PACKAGECONFIG
>>> +    sed -e 's/\s\(packagesExist(".*\<gstreamer-0.10\>.*")\)/ OE_GSTREAMER010_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
>>> +    # disable qtlocation test if it isn't enabled by PACKAGECONFIG
>>> +    sed -e 's/\s\(qtHaveModule(positioning)\)/ OE_QTLOCATION_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
>>> +    # disable qtsensors test if it isn't enabled by PACKAGECONFIG
>>> +    sed -e 's/\s\(qtHaveModule(sensors)\)/ OE_QTSENSORS_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
>>> +}
>>> +
>>> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer', 'CONFIG+=OE_GSTREAMER_ENABLED', '', d)}"
>>> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer010', 'CONFIG+=OE_GSTREAMER010_ENABLED', '', d)}"
>>> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtlocation', 'CONFIG+=OE_QTLOCATION_ENABLED', '', d)}"
>>> +EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtsensors', 'CONFIG+=OE_QTSENSORS_ENABLED', '', d)}"
>>>
>>>  # qtwebkit gets terribly big when linking with all debug info, disable by default
>>>  QTWEBKIT_DEBUG = "QMAKE_CFLAGS+=-g0 QMAKE_CXXFLAGS+=-g0"
>>> --
>>
>> With this change I'm seeing that the CONFIG+= options from the qmake
>> command line are being added to CONFIG after features.prf has already
>> been evaluated. Therefore OE_GSTREAMER_ENABLED etc evaluates as false
>> and qtwebkit is always configured without video support.
>>
>> From the configure log:
>>
>>> ! Missing GStreamer or QtMultimedia, disabling HTML5 media element support
>>
>> From the qmake debug log:
>>
>>> DEBUG 1: ... features.prf:106: condition "OE_GSTREAMER_ENABLED" is false (around line 5480 of the log)
>>> ...
>>> DEBUG 1: (command line):65535: CONFIG := ... OE_GSTREAMER_ENABLED (around line 5802 of the log, just prior to starting on WebKit.pro).
>>
>> I'm testing with dora + master branch of meta-qt5.
>>
> 
> Hi all,
> 
> I'm still seeing problems since this commit. Even when these new
> options are enabled via PACKAGECONFIG, qtwebkit is being configured as
> if they were all disabled.
> 
> The issue seems to be that the "CONFIG+=OE_xxx_ENABLED" options on the
> qmake command line don't work as intended. The options are added to
> CONFIG _after_ features.prf is parsed, so testing them in features.prf
> always evaluates to false.
> 
> Symptoms are "disabling HTML5 media element support" showing up in the
> qtwebkit configure log and libQt5WebKit.so.5.2.1 not having any
> runtime dependency on libgstreamer, etc.
> 
> Is anyone else seeing the same thing ?

thanks for your reminder. After your first mail I got distracted and
forgot about looking into this.

I was able to reproduce it and just submitted a patch to the mailing
list. I build-tested it with PACKAGECONFIG = "", "gstreamer" and
"gstreamer qtlocation" on dora.

Regards,
Andreas

Patch

diff --git a/recipes-qt/qt5/qtwebkit.inc b/recipes-qt/qt5/qtwebkit.inc
index c35504e..90bd981 100644
--- a/recipes-qt/qt5/qtwebkit.inc
+++ b/recipes-qt/qt5/qtwebkit.inc
@@ -5,7 +5,29 @@  LIC_FILES_CHKSUM = "file://Source/WebCore/rendering/RenderApplet.h;endline=22;md
                     file://Source/WebKit/gtk/webkit/webkit.h;endline=21;md5=b4fbe9f4a944f1d071dba1d2c76b3351 \
                     file://Source/JavaScriptCore/parser/Parser.h;endline=21;md5=bd69f72183a7af673863f057576e21ee"
 
-DEPENDS += "qtdeclarative qtlocation qtsensors icu ruby-native sqlite3 glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base libxslt"
+DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt"
+
+PACKAGECONFIG ??= "gstreamer qtlocation qtsensors"
+PACKAGECONFIG[gstreamer] = ",,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[gstreamer010] = ",,gstreamer gst-plugins-base"
+PACKAGECONFIG[qtlocation] = ",,qtlocation"
+PACKAGECONFIG[qtsensors] = ",,qtsensors"
+
+do_configure_prepend() {
+    # disable gstreamer-1.0 test if it isn't enabled by PACKAGECONFIG
+    sed -e 's/\s\(packagesExist(".*\<gstreamer-1.0\>.*")\)/ OE_GSTREAMER_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+    # disable gstreamer-0.10 test if it isn't enabled by PACKAGECONFIG
+    sed -e 's/\s\(packagesExist(".*\<gstreamer-0.10\>.*")\)/ OE_GSTREAMER010_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+    # disable qtlocation test if it isn't enabled by PACKAGECONFIG
+    sed -e 's/\s\(qtHaveModule(positioning)\)/ OE_QTLOCATION_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+    # disable qtsensors test if it isn't enabled by PACKAGECONFIG
+    sed -e 's/\s\(qtHaveModule(sensors)\)/ OE_QTSENSORS_ENABLED:\1/' -i ${S}/Tools/qmake/mkspecs/features/features.prf
+}
+
+EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer', 'CONFIG+=OE_GSTREAMER_ENABLED', '', d)}"
+EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer010', 'CONFIG+=OE_GSTREAMER010_ENABLED', '', d)}"
+EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtlocation', 'CONFIG+=OE_QTLOCATION_ENABLED', '', d)}"
+EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtsensors', 'CONFIG+=OE_QTSENSORS_ENABLED', '', d)}"
 
 # qtwebkit gets terribly big when linking with all debug info, disable by default
 QTWEBKIT_DEBUG = "QMAKE_CFLAGS+=-g0 QMAKE_CXXFLAGS+=-g0"