diff --git a/recipes-qt/qt6/qtbase/0001-CMake-build-QGnomePortalInterface-always-when-DBus-i.patch b/recipes-qt/qt6/qtbase/0001-CMake-build-QGnomePortalInterface-always-when-DBus-i.patch new file mode 100644 index 0000000..2d04ae3 --- /dev/null +++ b/recipes-qt/qt6/qtbase/0001-CMake-build-QGnomePortalInterface-always-when-DBus-i.patch @@ -0,0 +1,44 @@ +From 9dea29db8739ae1ccfd93c204256483d7ead61de Mon Sep 17 00:00:00 2001 +From: Samuli Piippo +Date: Tue, 10 Jun 2025 11:26:37 +0300 +Subject: [PATCH] CMake: build QGnomePortalInterface always when DBus is + available + +Builds with DBus but without XCB/Wayland, failed with: + qgnometheme.cpp:(.text+0x3ec): undefined reference to `vtable for QGnomePortalInterface' + /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/platform/unix/qgnometheme.cpp.o: in function `QGnomeThemePrivate::QGnomeThemePrivate()': + +Change CMake configuration and build QGnomePortalInterface always with DBus, +except on Apple platforms, where it is not needed. + +Pick-to: 6.10 +Change-Id: I3fb6400d87ba08f03c30e33924c8c7d483486c3b +Upstream-Status: Submitted +--- + src/gui/CMakeLists.txt | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt +index db7c0590611..1b210e1f420 100644 +--- a/src/gui/CMakeLists.txt ++++ b/src/gui/CMakeLists.txt +@@ -1059,11 +1059,6 @@ qt_internal_extend_target(Gui CONDITION UNIX AND (QT_FEATURE_xcb OR NOT MACOS) A + platform/unix/qgnometheme_p.h platform/unix/qgnometheme.cpp + ) + +-qt_internal_extend_target(Gui CONDITION UNIX AND QT_FEATURE_dbus AND (QT_FEATURE_xcb OR QT_FEATURE_wayland) +- SOURCES +- platform/unix/qgnomeportalinterface.cpp platform/unix/qgnomeportalinterface_p.h +-) +- + qt_internal_extend_target(Gui CONDITION TARGET Qt::DBus AND UNIX AND (QT_FEATURE_xcb OR NOT MACOS) AND (QT_FEATURE_xcb OR NOT UIKIT) + SOURCES + platform/unix/dbusmenu/qdbusmenuadaptor.cpp platform/unix/dbusmenu/qdbusmenuadaptor_p.h +@@ -1074,6 +1069,7 @@ qt_internal_extend_target(Gui CONDITION TARGET Qt::DBus AND UNIX AND (QT_FEATURE + platform/unix/dbusmenu/qdbusplatformmenu.cpp platform/unix/dbusmenu/qdbusplatformmenu_p.h + platform/unix/qdbuslistener_p.h platform/unix/qdbuslistener.cpp + platform/unix/qdbussettings_p.h platform/unix/qdbussettings.cpp ++ platform/unix/qgnomeportalinterface.cpp platform/unix/qgnomeportalinterface_p.h + ) + + qt_internal_extend_target(Gui CONDITION QT_FEATURE_systemtrayicon AND TARGET Qt::DBus AND UNIX AND (QT_FEATURE_xcb OR NOT MACOS) AND (QT_FEATURE_xcb OR NOT UIKIT) diff --git a/recipes-qt/qt6/qtbase/0001-wayland-fix-EGL-build-without-x11.patch b/recipes-qt/qt6/qtbase/0001-wayland-fix-EGL-build-without-x11.patch new file mode 100644 index 0000000..9b30774 --- /dev/null +++ b/recipes-qt/qt6/qtbase/0001-wayland-fix-EGL-build-without-x11.patch @@ -0,0 +1,48 @@ +From 69820368aa7a7e40c19678fcbf58bb4a14b33e71 Mon Sep 17 00:00:00 2001 +From: Samuli Piippo +Date: Tue, 10 Jun 2025 09:30:41 +0000 +Subject: [PATCH] wayland: fix EGL build without x11 + +Amend 7c0a96785fee4fea8ef1452166b1dde88957445c and add needed +defines to fix build EGL build without x11. + +Pick-to: 6.10 +Change-Id: I2c284219e83fecf862520a2f667d561adf4d4357 +Upstream-Status: Submitted +--- + src/plugins/platforms/wayland/CMakeLists.txt | 5 +++++ + .../plugins/hardwareintegration/wayland-egl/CMakeLists.txt | 6 ++++++ + 2 files changed, 11 insertions(+) + +diff --git a/src/plugins/platforms/wayland/CMakeLists.txt b/src/plugins/platforms/wayland/CMakeLists.txt +index c5d76c12c43..ac90eeadfa2 100644 +--- a/src/plugins/platforms/wayland/CMakeLists.txt ++++ b/src/plugins/platforms/wayland/CMakeLists.txt +@@ -223,6 +223,11 @@ qt_internal_extend_target(WaylandClient CONDITION QT_FEATURE_draganddrop + qwaylanddnd.cpp qwaylanddnd_p.h + ) + ++qt_internal_extend_target(WaylandClient CONDITION QT_FEATURE_egl AND NOT QT_FEATURE_egl_x11 ++ DEFINES ++ QT_EGL_NO_X11 ++) ++ + qt_internal_add_docs(WaylandClient + doc/qtwaylandclient.qdocconf + ) +diff --git a/src/plugins/platforms/wayland/plugins/hardwareintegration/wayland-egl/CMakeLists.txt b/src/plugins/platforms/wayland/plugins/hardwareintegration/wayland-egl/CMakeLists.txt +index ef3df07a434..68388d570c4 100644 +--- a/src/plugins/platforms/wayland/plugins/hardwareintegration/wayland-egl/CMakeLists.txt ++++ b/src/plugins/platforms/wayland/plugins/hardwareintegration/wayland-egl/CMakeLists.txt +@@ -29,5 +29,11 @@ qt_internal_add_plugin(QWaylandEglClientBufferPlugin + QT_LICENSE_ID QT_COMMERCIAL_OR_LGPL3 + ) + ++qt_internal_extend_target(QWaylandEglClientBufferPlugin CONDITION QT_FEATURE_egl AND NOT QT_FEATURE_egl_x11 ++ DEFINES ++ QT_EGL_NO_X11 ++) ++ ++ + #### Keys ignored in scope 1:.:.:wayland-egl.pro:: + # OTHER_FILES = "wayland-egl.json" diff --git a/recipes-qt/qt6/qtbase_git.bb b/recipes-qt/qt6/qtbase_git.bb index 4a030f6..c5715e9 100644 --- a/recipes-qt/qt6/qtbase_git.bb +++ b/recipes-qt/qt6/qtbase_git.bb @@ -24,6 +24,8 @@ SRC_URI += "\ file://0001-Add-linux-oe-g-platform.patch \ file://0004-Fix-qt.toolchain.cmake-for-SDK-use.patch \ file://0005-testlib-don-t-track-the-build-or-source-directories.patch \ + file://0001-CMake-build-QGnomePortalInterface-always-when-DBus-i.patch \ + file://0001-wayland-fix-EGL-build-without-x11.patch \ " SRC_URI:append:class-native = "\ file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \