From 4cbcc855382a06088e2f016f62cafdbcb7e40665 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 20 Mar 2022 00:40:44 +0000 Subject: gentoo resync : 20.03.2022 --- dev-qt/qtwayland/Manifest | 8 +- .../qtwayland-5.15.2-QTBUG-90037-QTBUG-91264.patch | 131 +++++++++++++++++++++ .../files/qtwayland-5.15.2-fix-qmake-deps.patch | 126 ++++++++++++++++++++ .../files/qtwayland-5.15.2-fixup-mutexes.patch | 87 ++++++++++++++ .../qtwayland-5.15.2-guard-mResizeDirty.patch | 37 ++++++ dev-qt/qtwayland/qtwayland-5.15.2-r18.ebuild | 44 ------- dev-qt/qtwayland/qtwayland-5.15.2-r20.ebuild | 51 ++++++++ 7 files changed, 438 insertions(+), 46 deletions(-) create mode 100644 dev-qt/qtwayland/files/qtwayland-5.15.2-QTBUG-90037-QTBUG-91264.patch create mode 100644 dev-qt/qtwayland/files/qtwayland-5.15.2-fix-qmake-deps.patch create mode 100644 dev-qt/qtwayland/files/qtwayland-5.15.2-fixup-mutexes.patch create mode 100644 dev-qt/qtwayland/files/qtwayland-5.15.2-guard-mResizeDirty.patch delete mode 100644 dev-qt/qtwayland/qtwayland-5.15.2-r18.ebuild create mode 100644 dev-qt/qtwayland/qtwayland-5.15.2-r20.ebuild (limited to 'dev-qt/qtwayland') diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest index 2f0e2c6dad16..0fa60d9feb43 100644 --- a/dev-qt/qtwayland/Manifest +++ b/dev-qt/qtwayland/Manifest @@ -1,5 +1,9 @@ -DIST qtwayland-5.15.2-4644d51f.tar.gz 831697 BLAKE2B c3d60416ef71030018918ec5157122e2585d270d5aa1a74d66874a33f14f0c4ac85da5a1dd7bfb422a1090f79e5d2c08763c68fe724416b34bad16f945d1740c SHA512 e350396e9bdfa6f0fda938af74c722792d50473eb3d786442ba11919e7801f0cd8d045916c8e49d8a63ffd966376cb74e7cc1c3d4d1732e71061fb8343a497d3 +AUX qtwayland-5.15.2-QTBUG-90037-QTBUG-91264.patch 4691 BLAKE2B d817e7715759dfd6a6efc13b3b8e7742406b3af7cdf8602e134121b8d6e97e857dc82bb71e32c0ad04a04fc8f20443475bd5a251ab6eb0c83412a75201865561 SHA512 82ac704e0a57a0e6272676c329e29116a7ab4186c94a1e81fe4f503bf332b20b699930d86ff22e9a83e72be856a5711230f264a6d10991fd070601ab4e4fd67c +AUX qtwayland-5.15.2-fix-qmake-deps.patch 4129 BLAKE2B 7e74b67de4a73a7fe0ff8027d897f8e01ecb1fc8d198060d39e3958feea5c6256ccd837ebedf71e4862807e7183069af009d1af36c27240decc79f078ae793aa SHA512 132791eb8837bb760bbfcb459b81306351c5d3d978d347d79d9eefe44f2878c88a0b2e287f30bcf04e3a4d98c47803763fcd618b1535254a8fcb1c1e6e123494 +AUX qtwayland-5.15.2-fixup-mutexes.patch 3164 BLAKE2B 59859577c9e28932e66283eb65c2923929afa284d8c7e31e5fbe0f27a01176873352fb5bcbfffc5d4da875310c3faa4ecfb1148fa9a19bd31c40d1b8af864efd SHA512 fa022a4d04f3fd8cdc7ec5d8763263ae724ca0a5e978bee54ac8a2a91a816b02a5c89bb3f92d80d5b4f4487f602bd02e8fe196cf97c79a05aa9ac6cf2aab89e5 +AUX qtwayland-5.15.2-guard-mResizeDirty.patch 1340 BLAKE2B 2ba77b36531a88f7dccf99fbdbd20adfa9085accd074a6b205a09743fac1e41b7410191101d7e2eef51458e821e4e37cf9bfcad849d31c948bef29b6f8f1ee88 SHA512 0a38e1aad784c66e723c6cd351ed6414c9cb53f89c106097f5594e24b7d22a8cdc96180fc138948dd0d40444ef16544f3ca3ce0b52acdda5cd7839954f244980 DIST qtwayland-5.15.2-867540b9.tar.gz 830061 BLAKE2B b831288d6a3e671631b4df00eb1edb72e35128f3ed5a73983b3e15193f554fddcd0337deb832d44b795d2e37f0601fe35b8b0fcb5986bcc44154d172f3a54193 SHA512 b834802811d9f65559ef5e7468189b53c666e390aa09edeb490e5fee2dece13082b11da0f8b5924b89f7dc8e1eba375a485940f4dfbf0445f3d1e96033e33f24 +DIST qtwayland-5.15.2-d6a6b727.tar.gz 831439 BLAKE2B 430f7c8570f9941e80db68f63efa9669f40d045e8df8820ec8653152938078b91d8d68b76667c6c01cc83cfca3f3b0ea67b6fdee6230e04fd091dcaaed4400bc SHA512 a2314f31c979594c4bd46fe8f1ac44d3391e45e6fedef44eaac5fb8700d1b32ac992f3e9d17e2453f0311038979a2bf8fabb14ea887525e16fb210307844c71d EBUILD qtwayland-5.15.2-r17.ebuild 954 BLAKE2B d76d0fada2321e8e74e00f678470963f1070fee8c93ca59b6e5255961ce726a49bd8c2a6baae87cc2a6b67a1d6ecfcaa2532966313b4b096afb807d7a5c27786 SHA512 068cef3071a0ec4ab569201cff69189b234fec2149e3be5b397dbe0219bcc2fa2360c3a7fca4763f5f48abf4f7c89b2b5142559bee44ae46490749dacc785fbb -EBUILD qtwayland-5.15.2-r18.ebuild 960 BLAKE2B 0cc835e01b4e027087ecd66576bfcf2444f1f0223d8442383017ccec93e4d71e31d338f76644017a7d118334376951acd732e35270d0178585e54428884da225 SHA512 9d54e61984b400d9d91d9efd39baed29c2ccc16d1dbaf45c2d254acd552d95f633471f447e21e167e86cf7ecdbfce847ed55b31920107ad727193600deb8a3cf +EBUILD qtwayland-5.15.2-r20.ebuild 1149 BLAKE2B 8a6422405942a4127dc1ccc88fdf5c05bba8f53fc1ff29b62920590ab1d30b940c0a6ffb334d6305376119320c188700ef5321d2d66535b6765eebf061cfd352 SHA512 c9e953dd0b71b52e8841a9f9e69f0f65699e279ccbd5f45b431ff20b69b3a637020f2e8fd0061818df68b1134bead931d4b1f776e71a2041573f435d3792fc1c MISC metadata.xml 584 BLAKE2B ad42909b120209835e121a29de558d338bae4348eb55e69a94e8ac8b54f26564df0a750839bef9418ae8056a0d24f234615247a610b8287f5b0fbffbc60193f2 SHA512 86fd81d63b19fc6e95bdcb92e9da9b03861248a4e78e9de36aca6996e61644ab8bce7a60ca22ee7ad86fefc9b407a1fd0136240b8fdfa3c40a149444ab1dcbe2 diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.2-QTBUG-90037-QTBUG-91264.patch b/dev-qt/qtwayland/files/qtwayland-5.15.2-QTBUG-90037-QTBUG-91264.patch new file mode 100644 index 000000000000..8bffa3e08b3e --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-5.15.2-QTBUG-90037-QTBUG-91264.patch @@ -0,0 +1,131 @@ +From d7b34dbf072236cdfb3b64e5ad26d1ff29dfec5f Mon Sep 17 00:00:00 2001 +From: Eskil Abrahamsen Blomfeldt +Date: Thu, 22 Apr 2021 08:42:33 +0200 +Subject: client: Gracefully handle shutdown and window hiding + +When a window is hidden or destroyed, the render thread may already +be rendering. We need to properly read-lock the surface pointer +when it is in use and exit when it becomes null. + +Note that there is also a potential crash in the Mesa GL driver +where it keeps a proxy to the wl_surface, so if we delete this +while we are still rendering, it can crash inside the driver. +This is not addressed by this patch, and has not been reproduced +on any other drivers so far. + +[ChangeLog][Client] Fixed a crash that could happen when hiding +or closing windows while Qt Quick was actively rendering on +a different thread. + +Pick-to: 6.0 6.1 5.15 +Fixes: QTBUG-91264 +Fixes: QTBUG-90037 +Task-number: QTBUG-92249 +Change-Id: I029b123b83c58740321e8b90a463ced748d8bcf4 +Reviewed-by: Laszlo Agocs +Reviewed-by: David Edmundson +(cherry picked from commit b19b0fbaf775e8b8eda1e03c265a5393d618c6c0) +--- + src/client/qwaylandwindow.cpp | 17 ++++++++++++++++- + src/client/qwaylandwindow_p.h | 2 +- + .../client/wayland-egl/qwaylandglcontext.cpp | 1 - + 3 files changed, 17 insertions(+), 3 deletions(-) + +diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp +index 494911b3..0d849b57 100644 +--- a/src/client/qwaylandwindow.cpp ++++ b/src/client/qwaylandwindow.cpp +@@ -414,6 +414,7 @@ void QWaylandWindow::closePopups(QWaylandWindow *parent) + + QPlatformScreen *QWaylandWindow::calculateScreenFromSurfaceEvents() const + { ++ QReadLocker lock(&mSurfaceLock); + if (mSurface) { + if (auto *screen = mSurface->oldestEnteredScreen()) + return screen; +@@ -552,6 +553,10 @@ void QWaylandWindow::sendRecursiveExposeEvent() + + void QWaylandWindow::attach(QWaylandBuffer *buffer, int x, int y) + { ++ QReadLocker locker(&mSurfaceLock); ++ if (mSurface == nullptr) ++ return; ++ + if (buffer) { + Q_ASSERT(!buffer->committed()); + handleUpdate(); +@@ -571,6 +576,10 @@ void QWaylandWindow::attachOffset(QWaylandBuffer *buffer) + + void QWaylandWindow::damage(const QRect &rect) + { ++ QReadLocker locker(&mSurfaceLock); ++ if (mSurface == nullptr) ++ return; ++ + const int s = scale(); + if (mDisplay->compositorVersion() >= 4) + mSurface->damage_buffer(s * rect.x(), s * rect.y(), s * rect.width(), s * rect.height()); +@@ -605,6 +614,8 @@ void QWaylandWindow::commit(QWaylandBuffer *buffer, const QRegion &damage) + qCDebug(lcWaylandBackingstore) << "Buffer already committed, ignoring."; + return; + } ++ ++ QReadLocker locker(&mSurfaceLock); + if (!mSurface) + return; + +@@ -624,7 +635,9 @@ void QWaylandWindow::commit(QWaylandBuffer *buffer, const QRegion &damage) + + void QWaylandWindow::commit() + { +- mSurface->commit(); ++ QReadLocker locker(&mSurfaceLock); ++ if (mSurface != nullptr) ++ mSurface->commit(); + } + + const wl_callback_listener QWaylandWindow::callbackListener = { +@@ -725,6 +738,7 @@ QPointF QWaylandWindow::mapFromWlSurface(const QPointF &surfacePosition) const + + wl_surface *QWaylandWindow::wlSurface() + { ++ QReadLocker locker(&mSurfaceLock); + return mSurface ? mSurface->object() : nullptr; + } + +@@ -749,6 +763,7 @@ QWaylandScreen *QWaylandWindow::waylandScreen() const + + void QWaylandWindow::handleContentOrientationChange(Qt::ScreenOrientation orientation) + { ++ QReadLocker locker(&mSurfaceLock); + if (mDisplay->compositorVersion() < 2) + return; + +diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h +index d45980a8..54ac67a9 100644 +--- a/src/client/qwaylandwindow_p.h ++++ b/src/client/qwaylandwindow_p.h +@@ -288,7 +288,7 @@ private: + + static QWaylandWindow *mMouseGrab; + +- QReadWriteLock mSurfaceLock; ++ mutable QReadWriteLock mSurfaceLock; + + friend class QWaylandSubSurface; + }; +diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp +index 683fe123..8f12736d 100644 +--- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp ++++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp +@@ -192,7 +192,6 @@ public: + } + void blit(QWaylandEglWindow *window) + { +- Q_ASSERT(window->wlSurface()); + QOpenGLTextureCache *cache = QOpenGLTextureCache::cacheForContext(m_context->context()); + + QSize surfaceSize = window->surfaceSize(); +-- +2.35.0 + diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-qmake-deps.patch b/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-qmake-deps.patch new file mode 100644 index 000000000000..e0c18228ed0f --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-qmake-deps.patch @@ -0,0 +1,126 @@ +From 3b72261b8b06397a532a40e41103c6b7a44e3ab5 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Fri, 4 Feb 2022 11:07:36 +0100 +Subject: [PATCH] Use proper dependencies in compile tests + +Use the dependencies as found by the "libraries" section instead of relying +on them being available in the default location (e.g. "-ldrm"). + +Additionally, VK_USE_PLATFORM_WAYLAND_KHR requires , so +add the wayland-client dependency. + +This fixes those tests if e.g. wayland-client headers need to be found through +pkgconfig. + +This part of the code changed completely in Qt 6, so this is a totally +different patch and not a cherry-pick of 5fc2e1915c3a +("CMake: Fix qtwayland feature detection"). + +Fixes: QTBUG-100475 +--- + src/client/configure.json | 8 ++++---- + src/compositor/configure.json | 34 +++++++++++++++++++++++++++++----- + 2 files changed, 33 insertions(+), 9 deletions(-) + +diff --git a/src/client/configure.json b/src/client/configure.json +index 2f424580..29222357 100644 +--- a/src/client/configure.json ++++ b/src/client/configure.json +@@ -149,8 +149,7 @@ + "#endif" + ] + }, +- "libs": "-ldrm", +- "use": "egl" ++ "use": "drm egl" + }, + "vulkan-server-buffer": { + "label": "Vulkan Buffer Sharing", +@@ -168,7 +167,8 @@ + "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;", + "return 0;" + ] +- } ++ }, ++ "use": "wayland-client" + }, + "egl_1_5-wayland": { + "label": "EGL 1.5 with Wayland Platform", +@@ -183,7 +183,7 @@ + "eglGetPlatformDisplay(EGL_PLATFORM_WAYLAND_EXT, (struct wl_display *)(nullptr), nullptr);" + ] + }, +- "use": "egl" ++ "use": "egl wayland-client" + } + }, + +diff --git a/src/compositor/configure.json b/src/compositor/configure.json +index bcfd5215..da95d07b 100644 +--- a/src/compositor/configure.json ++++ b/src/compositor/configure.json +@@ -7,6 +7,31 @@ + "testDir": "../../config.tests", + + "libraries": { ++ "wayland-client": { ++ "label": "Wayland client library", ++ "headers": "wayland-version.h", ++ "test": { ++ "main": [ ++ "#if WAYLAND_VERSION_MAJOR < 1", ++ "# error Wayland 1.8.0 or higher required", ++ "#endif", ++ "#if WAYLAND_VERSION_MAJOR == 1", ++ "# if WAYLAND_VERSION_MINOR < 8", ++ "# error Wayland 1.8.0 or higher required", ++ "# endif", ++ "# if WAYLAND_VERSION_MINOR == 8", ++ "# if WAYLAND_VERSION_MICRO < 0", ++ "# error Wayland 1.8.0 or higher required", ++ "# endif", ++ "# endif", ++ "#endif" ++ ] ++ }, ++ "sources": [ ++ { "type": "pkgConfig", "args": "wayland-client" }, ++ "-lwayland-client" ++ ] ++ }, + "wayland-server": { + "label": "wayland-server", + "headers": "wayland-version.h", +@@ -151,8 +176,7 @@ + "#endif" + ] + }, +- "libs": "-ldrm", +- "use": "egl" ++ "use": "drm egl" + }, + "dmabuf-client-buffer": { + "label": "Linux Client dma-buf Buffer Sharing", +@@ -176,8 +200,7 @@ + "return 0;" + ] + }, +- "libs": "-ldrm", +- "use": "egl" ++ "use": "drm egl" + }, + "vulkan-server-buffer": { + "label": "Vulkan Buffer Sharing", +@@ -195,7 +218,8 @@ + "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;", + "return 0;" + ] +- } ++ }, ++ "use": "wayland-client" + } + }, + +-- +GitLab + diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.2-fixup-mutexes.patch b/dev-qt/qtwayland/files/qtwayland-5.15.2-fixup-mutexes.patch new file mode 100644 index 000000000000..b861cebe60ac --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-5.15.2-fixup-mutexes.patch @@ -0,0 +1,87 @@ +From bf4335b1ea9b179076cbd7a1c2e8cfa9538b1dc1 Mon Sep 17 00:00:00 2001 +From: David Edmundson +Date: Thu, 3 Feb 2022 14:27:08 +0000 +Subject: [PATCH] Fix up mutexes for frame callbacks + +Everything related to frame callback timings is used by potentially 3 +threads. Access needs guarding. + +Change-Id: I9f22390c175d9f2f63d31b1ebf0cdc0b830be937 +--- + src/client/qwaylandwindow.cpp | 14 +++++++++----- + src/client/qwaylandwindow_p.h | 10 +++++++--- + 2 files changed, 16 insertions(+), 8 deletions(-) + +diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp +index 7aee362a..72e0e601 100644 +--- a/src/client/qwaylandwindow.cpp ++++ b/src/client/qwaylandwindow.cpp +@@ -256,8 +256,12 @@ void QWaylandWindow::reset() + mFrameCallback = nullptr; + } + +- mFrameCallbackElapsedTimer.invalidate(); +- mWaitingForFrameCallback = false; ++ { ++ QMutexLocker locker(&mFrameSyncMutex); ++ mFrameCallbackElapsedTimer.invalidate(); ++ mWaitingForFrameCallback = false; ++ } ++ + mFrameCallbackTimedOut = false; + + mMask = QRegion(); +@@ -1142,6 +1146,7 @@ QVariant QWaylandWindow::property(const QString &name, const QVariant &defaultVa + + void QWaylandWindow::timerEvent(QTimerEvent *event) + { ++ QMutexLocker locker(&mFrameSyncMutex); + if (event->timerId() != mFrameCallbackCheckIntervalTimerId) + return; + +@@ -1200,15 +1205,14 @@ void QWaylandWindow::handleUpdate() + { + qCDebug(lcWaylandBackingstore) << "handleUpdate" << QThread::currentThread(); + +- if (mWaitingForFrameCallback) +- return; +- + // TODO: Should sync subsurfaces avoid requesting frame callbacks? + QReadLocker lock(&mSurfaceLock); + if (!mSurface) + return; + + QMutexLocker locker(&mFrameSyncMutex); ++ if (mWaitingForFrameCallback) ++ return; + + struct ::wl_surface *wrappedSurface = reinterpret_cast(wl_proxy_create_wrapper(mSurface->object())); + wl_proxy_set_queue(reinterpret_cast(wrappedSurface), mDisplay->frameEventQueue()); +diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h +index 3ff68ccb..025d7917 100644 +--- a/src/client/qwaylandwindow_p.h ++++ b/src/client/qwaylandwindow_p.h +@@ -226,13 +226,17 @@ protected: + Qt::MouseButtons mMousePressedInContentArea = Qt::NoButton; + + WId mWindowId; ++ ++ // The following are used by the main thread the render thread and the event frame thread ++ // Access should be guarded by mFrameSyncMutex ++ QMutex mFrameSyncMutex; ++ QWaitCondition mFrameSyncWait; + bool mWaitingForFrameCallback = false; +- bool mFrameCallbackTimedOut = false; // Whether the frame callback has timed out + int mFrameCallbackCheckIntervalTimerId = -1; + QElapsedTimer mFrameCallbackElapsedTimer; ++ ++ bool mFrameCallbackTimedOut = false; // Whether the frame callback has timed out + struct ::wl_callback *mFrameCallback = nullptr; +- QMutex mFrameSyncMutex; +- QWaitCondition mFrameSyncWait; + + // True when we have called deliverRequestUpdate, but the client has not yet attached a new buffer + bool mWaitingForUpdate = false; +-- +GitLab + diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.2-guard-mResizeDirty.patch b/dev-qt/qtwayland/files/qtwayland-5.15.2-guard-mResizeDirty.patch new file mode 100644 index 000000000000..c2e377cff054 --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-5.15.2-guard-mResizeDirty.patch @@ -0,0 +1,37 @@ +From 2e2042aa18efd1389a140a5d0028d8359bd455a7 Mon Sep 17 00:00:00 2001 +From: David Edmundson +Date: Thu, 3 Feb 2022 19:42:33 +0000 +Subject: [PATCH] Guard mResizeDirty by the correctMutex + +mResizeDirty is used in the GUI thread in setCanResize which can be +called from the GUI thread. It is queried and set whilst the resizeLock +is held. We need to guard our usage. + +Change-Id: I5f8dcf8aa2cb2c4bb6274103df1da9e3e268605a +--- + src/client/qwaylandwindow.cpp | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp +index 949374b1..7aee362a 100644 +--- a/src/client/qwaylandwindow.cpp ++++ b/src/client/qwaylandwindow.cpp +@@ -357,11 +357,12 @@ void QWaylandWindow::setGeometry(const QRect &rect) + if (mWindowDecoration) + mWindowDecoration->update(); + +- if (mResizeAfterSwap && windowType() == Egl && mSentInitialResize) ++ if (mResizeAfterSwap && windowType() == Egl && mSentInitialResize) { ++ QMutexLocker lock(&mResizeLock); + mResizeDirty = true; +- else ++ } else { + QWindowSystemInterface::handleGeometryChange(window(), geometry()); +- ++ } + mSentInitialResize = true; + } + QRect exposeGeometry(QPoint(), geometry().size()); +-- +GitLab + diff --git a/dev-qt/qtwayland/qtwayland-5.15.2-r18.ebuild b/dev-qt/qtwayland/qtwayland-5.15.2-r18.ebuild deleted file mode 100644 index 48fffae55af5..000000000000 --- a/dev-qt/qtwayland/qtwayland-5.15.2-r18.ebuild +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -KDE_ORG_COMMIT=4644d51f4b52e83fc1b4d02b380d80d9d57e76fa -inherit qt5-build - -DESCRIPTION="Wayland platform plugin for Qt" - -if [[ ${QT5_BUILD_TYPE} == release ]]; then - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi - -SLOT=5/${QT5_PV} # bug 815646 -IUSE="vulkan X" - -DEPEND=" - dev-libs/wayland - =dev-qt/qtcore-${QT5_PV}*:5= - =dev-qt/qtdeclarative-${QT5_PV}*:5= - =dev-qt/qtgui-${QT5_PV}*:5=[egl,libinput,vulkan=,X?] - media-libs/libglvnd - vulkan? ( dev-util/vulkan-headers ) - X? ( - =dev-qt/qtgui-${QT5_PV}*[-gles2-only] - x11-libs/libX11 - x11-libs/libXcomposite - ) -" -RDEPEND="${DEPEND}" -BDEPEND=" - dev-util/wayland-scanner -" - -src_configure() { - local myqmakeargs=( - -- - $(qt_use vulkan feature-wayland-vulkan-server-buffer) - $(qt_use X feature-xcomposite-egl) - $(qt_use X feature-xcomposite-glx) - ) - qt5-build_src_configure -} diff --git a/dev-qt/qtwayland/qtwayland-5.15.2-r20.ebuild b/dev-qt/qtwayland/qtwayland-5.15.2-r20.ebuild new file mode 100644 index 000000000000..715878b3b4d9 --- /dev/null +++ b/dev-qt/qtwayland/qtwayland-5.15.2-r20.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +KDE_ORG_COMMIT=d6a6b727832819d118199f7016c2c401663ee370 +inherit qt5-build + +DESCRIPTION="Wayland platform plugin for Qt" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +SLOT=5/${QT5_PV} # bug 815646 +IUSE="vulkan X" + +DEPEND=" + dev-libs/wayland + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtdeclarative-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*:5=[egl,libinput,vulkan=,X?] + media-libs/libglvnd + vulkan? ( dev-util/vulkan-headers ) + X? ( + =dev-qt/qtgui-${QT5_PV}*[-gles2-only] + x11-libs/libX11 + x11-libs/libXcomposite + ) +" +RDEPEND="${DEPEND}" +BDEPEND=" + dev-util/wayland-scanner +" + +PATCHES=( + "${FILESDIR}/${P}-QTBUG-90037-QTBUG-91264.patch" + "${FILESDIR}/${P}-fix-qmake-deps.patch" + "${FILESDIR}/${P}-guard-mResizeDirty.patch" + "${FILESDIR}/${P}-fixup-mutexes.patch" +) + +src_configure() { + local myqmakeargs=( + -- + $(qt_use vulkan feature-wayland-vulkan-server-buffer) + $(qt_use X feature-xcomposite-egl) + $(qt_use X feature-xcomposite-glx) + ) + qt5-build_src_configure +} -- cgit v1.2.3