qt/qt5base: force gstreamer on configure
PATCH 1/2 qt/qt5base: force gstreamer on configure
--- package/qt5/qt5base/qt5base.mk | 10 ++++++++++ 1 file changed, 10 insertions(+)
package/qt5/qt5base/qt5base.mk +10 -0
@@ -152,6 +152,16 @@ QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBGLIB2),libglib2) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_ICU),-icu,-no-icu) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_ICU),icu) +ifeq ($(BR2_PACKAGE_GSTREAMER),y) +QT5BASE_CONFIGURE_OPTS += -gstreamer 0.10 +QT5BASE_DEPENDENCIES += gstreamer +else ifeq ($(BR2_PACKAGE_GSTREAMER1),y) +QT5BASE_CONFIGURE_OPTS += -gstreamer 1.0 +QT5BASE_DEPENDENCIES += gstreamer1 +else +QT5BASE_CONFIGURE_OPTS += -no-gstreamer +endif + QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_EXAMPLES),-make,-nomake) examples # Build the list of libraries to be installed on the target
Signature · 1 line
2.1.0
PATCH 2/2 qt/qt5multimedia: install gsttools for gstreamer1
--- package/qt5/qt5multimedia/qt5multimedia.mk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
package/qt5/qt5multimedia/qt5multimedia.mk +5 -1
@@ -22,6 +22,10 @@ ifeq ($(BR2_PACKAGE_GST_PLUGINS_BASE),y) QT5MULTIMEDIA_DEPENDENCIES += gst-plugins-base endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) +QT5MULTIMEDIA_DEPENDENCIES += gst1-plugins-base +endif + ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5MULTIMEDIA_DEPENDENCIES += qt5declarative endif
@@ -40,7 +44,7 @@ define QT5MULTIMEDIA_INSTALL_STAGING_CMDS endef ifeq ($(BR2_STATIC_LIBS),) -ifeq ($(BR2_PACKAGE_GST_PLUGINS_BASE),y) +ifeq ($(BR2_PACKAGE_GST_PLUGINS_BASE)$(BR2_PACKAGE_GST1_PLUGINS_BASE),y) define QT5MULTIMEDIA_INSTALL_TARGET_QGSTTOOLS_LIB cp -dpf $(STAGING_DIR)/usr/lib/libqgsttools*.so.* $(TARGET_DIR)/usr/lib endef
Signature · 1 line
2.1.0
PATCH 1/2 qt/qt5base: force gstreamer on configure
In reply to Julien CorjonHi Julien,
package/qt5/qt5base/qt5base.mk QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBGLIB2),libglib2) · line 163
Quoted 9 lines · Julien Corjon
package/qt5/qt5base/qt5base.mk +9
-0+ifeq ($(BR2_PACKAGE_GSTREAMER),y) +QT5BASE_CONFIGURE_OPTS += -gstreamer 0.10 +QT5BASE_DEPENDENCIES += gstreamer +else ifeq ($(BR2_PACKAGE_GSTREAMER1),y) +QT5BASE_CONFIGURE_OPTS += -gstreamer 1.0 +QT5BASE_DEPENDENCIES += gstreamer1 +else +QT5BASE_CONFIGURE_OPTS += -no-gstreamer +endif
Shouldn't we default to gstreamer 1.0 when both are enabled?
baruch
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -PATCH 1/2 qt/qt5base: force gstreamer on configure
In reply to Julien CorjonDear Julien Corjon,
Quoted 6 lines · Julien Corjon
Signed-off-by Julien Corjon <[email protected]>--- package/qt5/qt5base/qt5base.mk | 10 ++++++++++ 1 file changed, 10 insertions(+)
I'm sorry, but I don't think this is really the source of the problem. I did reproduce this build failure, and even if GStreamer is built before Qt5 (which is the case in the build failure you're linking in the commit log), Qt5 concludes that GStreamer is not available.
And this is because for some reason, Qt5 now seems to ignore the PKG_CONFIG environment variable that we pass to it. I've added some debugging messages to the packagesExist() function, and it uses just "pkg-config" (i.e the system pkg-config, not the one built and installed by Buildroot in $(HOST_DIR)/usr/bin).
While I think that your patch should be applied (it's good to make optional dependencies explicit), I also think the pkg-config problem should be investigated and fixed.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/2 qt/qt5base: force gstreamer on configure
Quoted 21 lines · Thomas Petazzoni
Dear Julien Corjon,
Quoted 6 lines · Julien Corjon
Signed-off-by Julien Corjon <[email protected]>--- package/qt5/qt5base/qt5base.mk | 10 ++++++++++ 1 file changed, 10 insertions(+)I'm sorry, but I don't think this is really the source of the problem. I did reproduce this build failure, and even if GStreamer is built before Qt5 (which is the case in the build failure you're linking in the commit log), Qt5 concludes that GStreamer is not available.
And this is because for some reason, Qt5 now seems to ignore the
PKG_CONFIGenvironment variable that we pass to it. I've added some debugging messages to thepackagesExist()function, and it uses just "pkg-config" (i.e the system pkg-config, not the one built and installed by Buildroot in $(HOST_DIR)/usr/bin).
Quoted 4 lines
While I think that your patch should be applied (it's good to make optional dependencies explicit), I also think the pkg-config problem should be investigated and fixed.
I have just been testing 2015.08 and have immediately hit exactly the same issue. I have done some digging into qt5 and I think I see the issue. The problem is that qmake never looks at environment variables, only things passed on the command line. The patch below fixes the issue for me by explicitly passing PKG_CONFIG on the command line. What is unclear is why I am suddenly seeing the issue in 5.5.0 but not 5.4.1 as that bit of code seems the same in both versions.
I'll report the issue upstream and see what they say.
Should I spin this into a patch?
--- qt5base-5.5.0/config.tests/unix/compile.test.orig 2015-09-15
08:53:45.202320408 +0100
+++ qt5base-5.5.0/config.tests/unix/compile.test 2015-09-15
08:54:02.720770491 +0100
@@ -67,7 +67,7 @@ test -r Makefile && $MAKE distclean >/de
# Make sure output from possible previous tests is gone rm -f "$EXE" "${EXE}.exe"
-set -- "$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG+=android_app" "CONFIG-=debug_and_release app_bundle lib_bundle" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
+set -- "$OUTDIR/bin/qmake" "PKG_CONFIG=$PKG_CONFIG" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG+=android_app" "CONFIG-=debug_and_release app_bundle lib_bundle" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
if [ "$VERBOSE" = "yes" ]; then
OUTDIR=$OUTDIR "$@" && $MAKE && SUCCESS=yes
else
Regards
Will
Signature · 12 lines
------------------------------------------------------------------------ Will Wagner will_wagner at carallon.com Development Manager Office Tel: +44 (0)20 7471 9224 Carallon Ltd, Studio G20, Shepherds Building, Rockley Rd, London W14 0DA ------------------------------------------------------------------------ -- ------------------------------------------------------------------------ Will Wagner will_wagner at carallon.com Development Manager Office Tel: +44 (0)20 7471 9224 Carallon Ltd, Studio G20, Shepherds Building, Rockley Rd, London W14 0DA ------------------------------------------------------------------------
PATCH 1/2 qt/qt5base: force gstreamer on configure
Dear Will Wagner,
Le 15/09/2015 10:37, Will Wagner a ?crit :
Quoted 29 lines · Thomas Petazzoni
Quoted 23 lines
Dear Julien Corjon,
Quoted 8 lines · Julien Corjon
Fixes:
http://autobuild.buildroot.net/results/0ee0f879e8563954c64b3940cdec39d2e6de937a/Signed-off-by Julien Corjon <[email protected]>--- package/qt5/qt5base/qt5base.mk | 10 ++++++++++ 1 file changed, 10 insertions(+)I'm sorry, but I don't think this is really the source of the problem. I did reproduce this build failure, and even if GStreamer is built before Qt5 (which is the case in the build failure you're linking in the commit log), Qt5 concludes that GStreamer is not available.
And this is because for some reason, Qt5 now seems to ignore the
PKG_CONFIGenvironment variable that we pass to it. I've added some debugging messages to thepackagesExist()function, and it uses just "pkg-config" (i.e the system pkg-config, not the one built and installed by Buildroot in $(HOST_DIR)/usr/bin).Quoted 4 lines
While I think that your patch should be applied (it's good to make optional dependencies explicit), I also think the pkg-config problem should be investigated and fixed.
Quoted 7 lines
I have just been testing 2015.08 and have immediately hit exactly the same issue. I have done some digging into qt5 and I think I see the issue. The problem is that qmake never looks at environment variables, only things passed on the command line. The patch below fixes the issue for me by explicitly passing
PKG_CONFIGon the command line. What is unclear is why I am suddenly seeing the issue in 5.5.0 but not 5.4.1 as that bit of code seems the same in both versions.
I also do not understand why this bug has shows up suddenly...
Quoted 2 lines
I'll report the issue upstream and see what they say.
I already report a bug on Qt bug-tracking system[1]. Feel free to reply to it with your investigation
Quoted 2 lines
Should I spin this into a patch?
Sure you should spin thin into a patch for Buildroot and for Qt mainline.
Regards,
Julien
[1] https://bugreports.qt.io/browse/QTBUG-48046
Quoted 30 lines
--- qt5base-5.5.0/config.tests/unix/compile.test.orig 2015-09-15
08:53:45.202320408 +0100
+++ qt5base-5.5.0/config.tests/unix/compile.test 2015-09-15
08:54:02.720770491 +0100(quoted diff) +0
-1@@ -67,7 +67,7 @@ test -r Makefile && $MAKE distclean >/de # Make sure output from possible previous tests is gone rm -f "$EXE" "${EXE}.exe" -set -- "$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC""CONFIG+=$QMAKE_CONFIG" "CONFIG+=android_app" "CONFIG-=debug_and_release
app_bundlelib_bundle" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
+set -- "$OUTDIR/bin/qmake" "PKG_CONFIG=$PKG_CONFIG" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG+=android_app" "CONFIG-=debug_and_releaseapp_bundlelib_bundle" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
if [ "$VERBOSE" = "yes" ]; thenOUTDIR=$OUTDIR "$@" && $MAKE && SUCCESS=yeselse
Regards
Will
PATCH 1/2 qt/qt5base: force gstreamer on configure
In reply to Julien CorjonJulien, All,
On 2015-08-06 12:06 +0200, Julien Corjon spake thusly:
As Thomas said, this does not really fix that issue.
However, still following Thomas comment, I think this is a valid patch, and it should be applied with a tweaked commit log;
package/qt5base: add support for optional gstreamer
qt5base can optionally support gstreamer-0.10 or gstreamer-1.0. Upstreamer still considers gstreamer-0.10 to be preferred over 1.0.
Ensure that gstreamer, when enabled, is built before qt5base; tell qt5base to use the proper gstreamer variant, or none if gstreamer is not enabled.
With that fixed, you can add my:
Reviewed-by: "Yann E. MORIN" <[email protected]>
Regards,
Yann E. MORIN.
Quoted 33 lines
Signed-off-by Julien Corjon <[email protected]>--- package/qt5/qt5base/qt5base.mk | 10 ++++++++++ 1 file changed, 10 insertions(+)package/qt5/qt5base/qt5base.mk +10
-0@@ -152,6 +152,16 @@ QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBGLIB2),libglib2) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_ICU),-icu,-no-icu) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_ICU),icu) +ifeq ($(BR2_PACKAGE_GSTREAMER),y) +QT5BASE_CONFIGURE_OPTS += -gstreamer 0.10 +QT5BASE_DEPENDENCIES += gstreamer +else ifeq ($(BR2_PACKAGE_GSTREAMER1),y) +QT5BASE_CONFIGURE_OPTS += -gstreamer 1.0 +QT5BASE_DEPENDENCIES += gstreamer1 +else +QT5BASE_CONFIGURE_OPTS += -no-gstreamer +endif + QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_EXAMPLES),-make,-nomake) examples # Build the list of libraries to be installed on the targetSignature · 6 lines
2.1.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/2 qt/qt5base: force gstreamer on configure
Yann, Peter, All
Le 10/01/2016 17:19, Yann E. MORIN a ?crit :
Quoted 8 lines
Julien, All,
On 2015-08-06 12:06 +0200, Julien Corjon spake thusly:
As Thomas said, this does not really fix that issue.
However, still following Thomas comment, I think this is a valid patch,
Patch was valid back then.
Quoted 4 lines
and it should be applied with a tweaked commit log;
package/qt5base: add support for optional gstreamer
Quoted 9 lines
qt5base can optionally support gstreamer-0.10 or gstreamer-1.0. Upstreamer still considers gstreamer-0.10 to be preferred over 1.0.
Ensure that gstreamer, when enabled, is built before qt5base; tell qt5base to use the proper gstreamer variant, or none if gstreamer is not enabled.
Signed-off-by You
Peter already patch gstreamer for qt5base and he have removed gstreamer0.1 support[1]. I'm not sure this was the good solution because gstreamer0.1 is still the default choise for Qt[2] but no buildroot user seems to complain about that.
Quoted 6 lines
With that fixed, you can add my:
Reviewed-by: "Yann E. MORIN" <[email protected]>Regards,
Yann E. MORIN.
Regards,
Julien Corjon
[1]
https://git.busybox.net/buildroot/commit/?id=da9f034d5d1df10ad6c3e249a9a488dc7ef1c42a
[2] https://wiki.qt.io/New_Features_in_Qt_5.5
PATCH 1/2 qt/qt5base: force gstreamer on configure
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Julien" == Julien CORJON <[email protected]> writes:
Hi,
Quoted 4 lines
Peter already patch gstreamer for qt5base and he have removed gstreamer0.1 support[1]. I'm not sure this was the good solution because gstreamer0.1 is still the default choise for Qt[2] but no buildroot user seems to complain about that.
As I explained in the commit message, the reason for disabling the gstreamer 0.10.x support was that it was broken in qt5multimedia. If this is (or gets in the future) fixed, then I have no problem adding it again.
With that said, we should use prefer gstreamer 1.x support over 0.10.x if both are enabled.
Signature · 2 lines
Venlig hilsen, Peter Korsgaard
PATCH 1/2 qt/qt5base: force gstreamer on configure
In reply to Julien CorjonJulien, All,
On 2015-08-06 12:06 +0200, Julien Corjon spake thusly:
Given the feedback in this thread, I'm marking this patch as rejected in Patchwork:
- we already have support for gstreamer-1.x
- gstreamer-0.10.x seems to be broken.
Thanks for spawning the discussion with your patch! :-)
Regards,
Yann E. MORIN.
Quoted 33 lines
Signed-off-by Julien Corjon <[email protected]>--- package/qt5/qt5base/qt5base.mk | 10 ++++++++++ 1 file changed, 10 insertions(+)package/qt5/qt5base/qt5base.mk +10
-0@@ -152,6 +152,16 @@ QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBGLIB2),libglib2) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_ICU),-icu,-no-icu) QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_ICU),icu) +ifeq ($(BR2_PACKAGE_GSTREAMER),y) +QT5BASE_CONFIGURE_OPTS += -gstreamer 0.10 +QT5BASE_DEPENDENCIES += gstreamer +else ifeq ($(BR2_PACKAGE_GSTREAMER1),y) +QT5BASE_CONFIGURE_OPTS += -gstreamer 1.0 +QT5BASE_DEPENDENCIES += gstreamer1 +else +QT5BASE_CONFIGURE_OPTS += -no-gstreamer +endif + QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_EXAMPLES),-make,-nomake) examples # Build the list of libraries to be installed on the targetSignature · 6 lines
2.1.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'