* [Buildroot] [PATCH v2 1/1] qt5wayland: add fix from upstream to compile without QtQuick
@ 2018-08-06 0:36 Floris Bos
2018-08-09 21:47 ` Thomas Petazzoni
0 siblings, 1 reply; 4+ messages in thread
From: Floris Bos @ 2018-08-06 0:36 UTC (permalink / raw)
To: buildroot
Compiling qt5wayland fails if you do not have the QtQuick module:
==
.obj/qwaylandquickhardwarelayer.o: In function `QWaylandQuickHardwareLayer::classBegin()':
qwaylandquickhardwarelayer.cpp:(.text+0x170): undefined reference to `QWaylandQuickItem::staticMetaObject'
.obj/qwaylandquickhardwarelayer.o: In function `non-virtual thunk to QWaylandQuickHardwareLayer::classBegin()':
qwaylandquickhardwarelayer.cpp:(.text+0x1cc): undefined reference to `QWaylandQuickItem::staticMetaObject'
.obj/qwaylandquickhardwarelayer.o: In function `QWaylandQuickHardwareLayer::disableSceneGraphPainting()':
qwaylandquickhardwarelayer.cpp:(.text+0x1e0): undefined reference to `QWaylandQuickItem::setPaintEnabled(bool)'
.obj/qwaylandquickhardwarelayer.o: In function `QWaylandQuickHardwareLayerPrivate::layerIntegration()':
qwaylandquickhardwarelayer.cpp:(.text+0x22c): undefined reference to `QtWayland::HardwareLayerIntegrationFactory::keys(QString const&)'
qwaylandquickhardwarelayer.cpp:(.text+0x408): undefined reference to `QtWayland::HardwareLayerIntegrationFactory::create(QString const&, QStringList const&, QString const&)'
qwaylandquickhardwarelayer.cpp:(.text+0x890): undefined reference to `QtWayland::HardwareLayerIntegrationFactory::create(QString const&, QStringList const&, QString const&)'
collect2: error: ld returned 1 exit status
Makefile:375: recipe for target '../../lib/libQt5WaylandCompositor.so.5.11.1' failed
make[4]: *** [../../lib/libQt5WaylandCompositor.so.5.11.1] Error 1
==
Fix taken from upstream's git:
http://code.qt.io/cgit/qt/qtwayland.git/commit/?id=2c48ee65e8c3b894caec214641723d0777fc60b8
No longer depends on declarative after applying either.
Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
---
v1 -> v2:
- do add dependency in .mk if quick is enabled, so it is build first.
---
.../0001-fix-compilation-without-QtQuick.patch | 68 ++++++++++++++++++++++
package/qt5/qt5wayland/Config.in | 2 -
package/qt5/qt5wayland/qt5wayland.mk | 6 +-
3 files changed, 73 insertions(+), 3 deletions(-)
create mode 100644 package/qt5/qt5wayland/0001-fix-compilation-without-QtQuick.patch
diff --git a/package/qt5/qt5wayland/0001-fix-compilation-without-QtQuick.patch b/package/qt5/qt5wayland/0001-fix-compilation-without-QtQuick.patch
new file mode 100644
index 0000000..a72e053
--- /dev/null
+++ b/package/qt5/qt5wayland/0001-fix-compilation-without-QtQuick.patch
@@ -0,0 +1,68 @@
+From 2c48ee65e8c3b894caec214641723d0777fc60b8 Mon Sep 17 00:00:00 2001
+From: Alexander Schlarb <alexander@ninetailed.ninja>
+Date: Sun, 29 Jul 2018 21:27:28 +0200
+Subject: Fix compilation of QtWayland without QtQuick
+
+Change-Id: I0baf542f89274f48bf7d02121a07d64f0f3a001b
+Reviewed-by: Johan Helsing <johan.helsing@qt.io>
+---
+ src/compositor/compositor_api/compositor_api.pri | 10 +++++-----
+ .../hardware_integration/qwlhardwarelayerintegration_p.h | 1 -
+ 2 files changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/src/compositor/compositor_api/compositor_api.pri b/src/compositor/compositor_api/compositor_api.pri
+index e5df0f1f..4a0c0aa6 100644
+--- a/src/compositor/compositor_api/compositor_api.pri
++++ b/src/compositor/compositor_api/compositor_api.pri
+@@ -27,7 +27,6 @@ HEADERS += \
+ compositor_api/qwaylandresource.h \
+ compositor_api/qwaylandsurfacegrabber.h \
+ compositor_api/qwaylandoutputmode_p.h \
+- compositor_api/qwaylandquickhardwarelayer_p.h \
+
+ SOURCES += \
+ compositor_api/qwaylandcompositor.cpp \
+@@ -44,8 +43,7 @@ SOURCES += \
+ compositor_api/qwaylanddestroylistener.cpp \
+ compositor_api/qwaylandview.cpp \
+ compositor_api/qwaylandresource.cpp \
+- compositor_api/qwaylandsurfacegrabber.cpp \
+- compositor_api/qwaylandquickhardwarelayer.cpp
++ compositor_api/qwaylandsurfacegrabber.cpp
+
+ qtConfig(im) {
+ HEADERS += \
+@@ -71,14 +69,16 @@ qtHaveModule(quick):qtConfig(opengl) {
+ compositor_api/qwaylandquickcompositor.cpp \
+ compositor_api/qwaylandquicksurface.cpp \
+ compositor_api/qwaylandquickoutput.cpp \
+- compositor_api/qwaylandquickitem.cpp
++ compositor_api/qwaylandquickitem.cpp \
++ compositor_api/qwaylandquickhardwarelayer.cpp
+
+ HEADERS += \
+ compositor_api/qwaylandquickcompositor.h \
+ compositor_api/qwaylandquicksurface.h \
+ compositor_api/qwaylandquickoutput.h \
+ compositor_api/qwaylandquickitem.h \
+- compositor_api/qwaylandquickitem_p.h
++ compositor_api/qwaylandquickitem_p.h \
++ compositor_api/qwaylandquickhardwarelayer_p.h
+
+ QT += qml qml-private quick quick-private
+ }
+diff --git a/src/compositor/hardware_integration/qwlhardwarelayerintegration_p.h b/src/compositor/hardware_integration/qwlhardwarelayerintegration_p.h
+index 02de8e8b..1e5fb1a1 100644
+--- a/src/compositor/hardware_integration/qwlhardwarelayerintegration_p.h
++++ b/src/compositor/hardware_integration/qwlhardwarelayerintegration_p.h
+@@ -54,7 +54,6 @@
+ #include <QtWaylandCompositor/qtwaylandcompositorglobal.h>
+
+ #include <QObject>
+-#include <QQmlParserStatus>
+
+ QT_BEGIN_NAMESPACE
+
+--
+cgit v1.1-6-g87c4
+
diff --git a/package/qt5/qt5wayland/Config.in b/package/qt5/qt5wayland/Config.in
index 0182d3c..9f144ac 100644
--- a/package/qt5/qt5wayland/Config.in
+++ b/package/qt5/qt5wayland/Config.in
@@ -5,8 +5,6 @@ comment "qt5wayland needs an OpenGL-capable backend"
config BR2_PACKAGE_QT5WAYLAND
bool "qt5wayland"
depends on BR2_PACKAGE_QT5_GL_AVAILABLE
- depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative
- select BR2_PACKAGE_QT5DECLARATIVE
select BR2_PACKAGE_WAYLAND
help
Qt is a cross-platform application and UI framework for
diff --git a/package/qt5/qt5wayland/qt5wayland.mk b/package/qt5/qt5wayland/qt5wayland.mk
index 98e592f..d6fb6e1 100644
--- a/package/qt5/qt5wayland/qt5wayland.mk
+++ b/package/qt5/qt5wayland/qt5wayland.mk
@@ -7,9 +7,13 @@
QT5WAYLAND_VERSION = $(QT5_VERSION)
QT5WAYLAND_SITE = $(QT5_SITE)
QT5WAYLAND_SOURCE = qtwayland-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5WAYLAND_VERSION).tar.xz
-QT5WAYLAND_DEPENDENCIES = qt5base qt5declarative wayland
+QT5WAYLAND_DEPENDENCIES = qt5base wayland
QT5WAYLAND_INSTALL_STAGING = YES
+ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y)
+QT5WAYLAND_DEPENDENCIES += qt5declarative
+endif
+
ifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y)
QT5WAYLAND_DEPENDENCIES += libxkbcommon
endif
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v2 1/1] qt5wayland: add fix from upstream to compile without QtQuick
2018-08-06 0:36 [Buildroot] [PATCH v2 1/1] qt5wayland: add fix from upstream to compile without QtQuick Floris Bos
@ 2018-08-09 21:47 ` Thomas Petazzoni
2018-08-09 21:55 ` Floris Bos
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2018-08-09 21:47 UTC (permalink / raw)
To: buildroot
Hello Floris,
On Mon, 6 Aug 2018 02:36:53 +0200, Floris Bos wrote:
> diff --git a/package/qt5/qt5wayland/Config.in b/package/qt5/qt5wayland/Config.in
> index 0182d3c..9f144ac 100644
> --- a/package/qt5/qt5wayland/Config.in
> +++ b/package/qt5/qt5wayland/Config.in
> @@ -5,8 +5,6 @@ comment "qt5wayland needs an OpenGL-capable backend"
You forgot to drop the "depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE"
dependency from this comment, which only existed because of the
qt5declarative dependency. I've fixed that before applying.
> config BR2_PACKAGE_QT5WAYLAND
> bool "qt5wayland"
> depends on BR2_PACKAGE_QT5_GL_AVAILABLE
Is this OpenGL support dependency needed because of qt5wayland itself,
or was it needed only because of the qt5declarative dependency ?
BR2_PACKAGE_WAYLAND doesn't require OpenGL support, so I'm wondering if
qt5wayland needs it or not. If it doesn't, could you send a follow-up
patch fixing this ?
In the mean time, I've applied your patch to next, after fixing the
issue mentioned above regarding the removal of the
BR2_PACKAGE_QT5_JSCORE_AVAILABLE dependency.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v2 1/1] qt5wayland: add fix from upstream to compile without QtQuick
2018-08-09 21:47 ` Thomas Petazzoni
@ 2018-08-09 21:55 ` Floris Bos
2018-08-09 22:00 ` Thomas Petazzoni
0 siblings, 1 reply; 4+ messages in thread
From: Floris Bos @ 2018-08-09 21:55 UTC (permalink / raw)
To: buildroot
Hi,
On 08/09/2018 11:47 PM, Thomas Petazzoni wrote:
> config BR2_PACKAGE_QT5WAYLAND
>> bool "qt5wayland"
>> depends on BR2_PACKAGE_QT5_GL_AVAILABLE
> Is this OpenGL support dependency needed because of qt5wayland itself,
> or was it needed only because of the qt5declarative dependency ?
>
> BR2_PACKAGE_WAYLAND doesn't require OpenGL support, so I'm wondering if
> qt5wayland needs it or not. If it doesn't, could you send a follow-up
> patch fixing this ?
It currently does not compile without OpenGL.
But I was also wondering whether or not that was meant to be as well.
So had already opened an issue upstream:
https://bugreports.qt.io/browse/QTBUG-69779
Would indeed be nice if it was possible to do without OpenGL, as then we
could finally port some old Qt 4 QWS applications to Qt 5.
Thanks for the merge.
Yours sincerely,
Floris Bos
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v2 1/1] qt5wayland: add fix from upstream to compile without QtQuick
2018-08-09 21:55 ` Floris Bos
@ 2018-08-09 22:00 ` Thomas Petazzoni
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2018-08-09 22:00 UTC (permalink / raw)
To: buildroot
Hello,
On Thu, 9 Aug 2018 23:55:15 +0200, Floris Bos wrote:
> > BR2_PACKAGE_WAYLAND doesn't require OpenGL support, so I'm wondering if
> > qt5wayland needs it or not. If it doesn't, could you send a follow-up
> > patch fixing this ?
>
> It currently does not compile without OpenGL.
OK.
> But I was also wondering whether or not that was meant to be as well.
> So had already opened an issue upstream:
> https://bugreports.qt.io/browse/QTBUG-69779
>
> Would indeed be nice if it was possible to do without OpenGL, as then we
> could finally port some old Qt 4 QWS applications to Qt 5.
Sure. Thanks for the confirmation!
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-08-09 22:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-06 0:36 [Buildroot] [PATCH v2 1/1] qt5wayland: add fix from upstream to compile without QtQuick Floris Bos
2018-08-09 21:47 ` Thomas Petazzoni
2018-08-09 21:55 ` Floris Bos
2018-08-09 22:00 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox