diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-12-03 02:07:18 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-12-03 02:07:18 +0000 |
commit | 7f4b508a2da3c371c7e770aa6ab83b0c4237cd1c (patch) | |
tree | 81d78cbf05f5daa7d57418d32f44b0149a56a765 /dev-qt/qtwayland | |
parent | d4f65848c7ecabb56e2f93889cbd20078cd347f7 (diff) |
gentoo auto-resync : 03:12:2024 - 02:07:18
Diffstat (limited to 'dev-qt/qtwayland')
-rw-r--r-- | dev-qt/qtwayland/Manifest | 3 | ||||
-rw-r--r-- | dev-qt/qtwayland/files/qtwayland-6.8.1-tablet-crash.patch | 201 | ||||
-rw-r--r-- | dev-qt/qtwayland/qtwayland-6.8.1.ebuild | 71 |
3 files changed, 275 insertions, 0 deletions
diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest index bf97599ce406..658180fe52b5 100644 --- a/dev-qt/qtwayland/Manifest +++ b/dev-qt/qtwayland/Manifest @@ -4,6 +4,7 @@ AUX qtwayland-6.7.2-plasma-popup.patch 1032 BLAKE2B 81a0c2dceac3bde808f463d0d2ad AUX qtwayland-6.7.2-thread-safety.patch 2420 BLAKE2B 4e5d871bd93a24cc2bb5c879a9eb336aacbfe20c3a6df15777ccdfb41a4d2b84484097a7d0680a5c02631cb84864259cdc9e68d04b0ab654275bd73ec92700b8 SHA512 18978aac57472575ee2dbcd44d1dbb7d21e6a116589cd78d9530272e0c67c8e730d2bf8272cc92cbd78d460ba710cb408595e11c59dca2649d8565cf4e7b135f AUX qtwayland-6.7.3-wayland.xml-1.23.0.patch 13015 BLAKE2B 17a370bfd4960316b65180e68d23feb8c4f5a5d79db923f26f04e9bc21825a2b563bdec359bde04b99df8af76e4661362bf34704095c46d6528d52a68b1aba12 SHA512 044d1798dea7181304704d55129265619d0a03e69170835e03d7cc9bcb0a71edd25aa17c251c98730ba4108c9d75f6831fafd20dd385ed1d20078b3f0cc5c9c6 AUX qtwayland-6.8.0-wayland.xml-1.23.0.patch 13031 BLAKE2B 4cdee104ec7ba05ddff6cc8f1afda24276eb9fbb0f3b2f0abacb3da57fe3e210dfa6f3d836ff45535d5ff53473fdc55876ef27138d80d8978cc39e8e85d32347 SHA512 621dc44b1577abbece55242f872edb8c6f7e29da8bebd3a9f7f62c2877cca558a35d68738bc6662ff5303e5773cec7dc3a9a073530c0bfebc7799febd338a70f +AUX qtwayland-6.8.1-tablet-crash.patch 5790 BLAKE2B a117bde4b957c122a7840f26a84d0c14ea822d99a8c51626fe1852f025725ac174ac52598b8ff759d04cc3c0250329b93abc3e79581f407c4c7cc7f8b6339ccb SHA512 01e20f250caf9f568664eeef33496528622197782909e10d42684fadd6aeef638fb3af937b49b550c08b80cbad77b710efbfc653f855881db5c60a06218724e3 DIST qtwayland-5.15.14-gentoo-kde-1.tar.xz 47472 BLAKE2B 3812e5f18bcb857cf3c76cf8a53525a84b14bc4cf8430f4339c1ef9a5d6208dcdfba3f052bcc80c6ad8815db2415207e2eb5ed07bbf9e7076be675f2a4cee3c0 SHA512 912bc902e4f9d945dac396c75a2af9896e3002535a51e6b5b07166c38b9d6ea073da3d93db07742a0db295dd5f8167fdef351230adcb2145704c36b576c0f5e3 DIST qtwayland-5.15.16-gentoo-kde-2.tar.xz 47116 BLAKE2B 30646c02214167b1891b84873f7d10812d3aa1894db1a246771a2df2a799d1768c857a623153d862e15f6a7ed7b784738c8afdc5f4968e57a7e2296735d69876 SHA512 c3af344eb647fb16f1237387345ee4e56e2efa7376f10d46d09de34c77add092cb50acf29d180fa61ab33331fee959ab187339b05b6fa0b9d4fda6f0c28b600b DIST qtwayland-everywhere-opensource-src-5.15.14.tar.xz 560916 BLAKE2B a5edb21446348f20e6f65736b402c3075a4bde0d7fa02c24cbfc5de65739ca8d7ac2186bd17a995bfb3de23106e696e2b1321dc3ae401984bdafaa3479c9aa1e SHA512 9e8add52353f7a146759511c49c001cd76a56790a81af5222f6f2d3d1a2f1ee9cc62048c72efe69708eb3444c6115272d4af8d738df7b1e1da959359d7420dbb @@ -11,11 +12,13 @@ DIST qtwayland-everywhere-opensource-src-5.15.16.tar.xz 561148 BLAKE2B a09505124 DIST qtwayland-everywhere-src-6.7.2.tar.xz 1123220 BLAKE2B 70c2d8942afc4e1629d2ef34b6c062ecb5800185bb37e150c1d66a5216606028d2f59668991bddb5036572c962e92c3658d336167a7f9ffbf3d2f4d609a771f9 SHA512 2cd4f45f05ae60bc7f82b94f2e9c217ee4b8322f60381e1b079b90e0687e51cfbeb10b5dd724e1cca7e422b1b101d2b91c0ee47b1a732411cef330fb052c97c2 DIST qtwayland-everywhere-src-6.7.3.tar.xz 1123508 BLAKE2B 39cd8c7d2486318d3eb4351dc0e4e6a2c37e0aeb9727e2715accfec7ba2710288c251fdd5d6a71ba11c065509f7312c194a8e2b757d484ec1734270044e0d7aa SHA512 9e15f3798ae7738b69e367343ffd7992fcdaebeffbcb10414fe2f24be553ca63e5504ef0a8405348702d0581dabebd1c2360728f63757c7445900b04df5e9ad7 DIST qtwayland-everywhere-src-6.8.0.tar.xz 1133584 BLAKE2B 2889e651544846e4f854fb34c4ec7a984ab2e88037a6eca0ff5b51ca04051d4ba0176b34afd3a224199e456fa3375e1df3bebd594fd95f8f98a811b47e1183e3 SHA512 6b2258928481813db7037bdbc817f57e14fc7ae66d2a791e03a4f1ebc1eea6ed36782206b3edcbf17e8fa0eb9f45f4d2583865b2b764e8ac303abac40764070c +DIST qtwayland-everywhere-src-6.8.1.tar.xz 1134428 BLAKE2B 84ebe923a3963f47bb2abe67e942524020be4d202b441d7cca689d045b7a7ca28b433df5a189da766743c6817a327b6ba80ceb7916a99b3ba9b0508daede4147 SHA512 34885910532f6049cac09846aa4295e2ce82a1e6af2d3256391c835a406f0c6f679e9c94c06ca8921acf23036ccc747812631a91dc1f355ab20aafd8836e7312 EBUILD qtwayland-5.15.14.ebuild 1214 BLAKE2B 4d974a96e807dfbad6bf480bb6faf022828c9cab0fd5bc82b6c6455344fafd7a349f1f232fa62a00e32cc073cda39aead004657e7b4072f49890442baeda3252 SHA512 75966f4a890e77a29937d63ed50a8095d579fab4871f2d091bb410443a0101fabc592a6cfbe033b12d6f0663c196930a32c85a062a10de4f8dc13eee4103b86b EBUILD qtwayland-5.15.16-r1.ebuild 1217 BLAKE2B d37c6405909aa82a4d8f7f78bba3fe314d9a4a6ee1f596a16e255192c41c4813f0dfe26ae594821d3d237ddd87f305295fbd345664539342d969d0d504f6e63b SHA512 03e4dbed9a723bd7f476ef8638764fbed284ca09e035d0b0c7a30e14c7e0dce2552dc1e4a82285a8aee6cb734639ac7b0799923efc7cc65b9684c015be74f6a0 EBUILD qtwayland-6.7.2-r3.ebuild 1641 BLAKE2B d709c378c8eea57e1533b4451676016b0945369150953e3c5610e767826d843ae845c1ecdd87be052d216def7b28150615df50dee45364e4c10e0a866fcd6b7f SHA512 d774570816601f3e81e9c535d2916ef60f6de61ec6bdd4cb18c6da93bb871e4b98e6217aa41504cb51e8c939775005aed25c612e96ac3a99fc59a7ea348184fd EBUILD qtwayland-6.7.3-r1.ebuild 1543 BLAKE2B 567649129dff2f7460efc94e71944c14627f633ae0eaea7e6a32109b2947e8bea3ef39c1b666e8542b218864dac3e6190809900164e41590cf553f9d89f55e8f SHA512 f7380f4c5bd852d618982b8c23d6bfc4307004d55e76f28fca7edac506a635f59e2cc9cdb0d9f9712347c281d98713a53cbba88a669d1e2e6abe5e5e28d39e3d EBUILD qtwayland-6.8.0-r1.ebuild 1669 BLAKE2B 669f28bc549085675d1b846af2f3665d35e84dfa3cfae4098efc6b912f51f80151c53a1024907d1f844708f2d55b4b48adf7cabc7294402000f2a8cdb84d8a32 SHA512 90146a5961292eb49722978d52d8b0d8458a2c15576b052b52d181f1209509c75b2a88034db82b52749e15352e1f7f009a941ff1d19c6874b0c732c71308467c +EBUILD qtwayland-6.8.1.ebuild 1715 BLAKE2B 6dbdda31184badc9a5ca7fd99d5dfbc271a76a0a7aec7ea0e42de77ab1e62a9bc7d1b2ee047b57a40131f76b6bb02bb8a04211968b821c95f4465ddc5ee5ec8e SHA512 4c465f4a3788d68b4f9bf474ff195ff9fe61a13d9c2e411aa227ebfb50ce60b5f930ca5998b785d36117ead90cc2b9ad03a407803dcd3175c12f17189126f415 EBUILD qtwayland-6.8.9999.ebuild 1669 BLAKE2B 669f28bc549085675d1b846af2f3665d35e84dfa3cfae4098efc6b912f51f80151c53a1024907d1f844708f2d55b4b48adf7cabc7294402000f2a8cdb84d8a32 SHA512 90146a5961292eb49722978d52d8b0d8458a2c15576b052b52d181f1209509c75b2a88034db82b52749e15352e1f7f009a941ff1d19c6874b0c732c71308467c EBUILD qtwayland-6.9999.ebuild 1604 BLAKE2B 955233e9dce7287eab5e8ccb13b548e44bc31dc71a195f665c1422a33045a309a131cf4443714a31799a2c1a387fc0ffc1d4f653c6b7bd25de77cae8f92c2e68 SHA512 374607e7b5f0e65e89ce1dc9e2cb714212a876c556826ca92cfb347a6a7bea8dd2f94e3455dd3e2fd66cf16a5e23350e2ca4fb316139626eb0c7bc46f66fb800 MISC metadata.xml 888 BLAKE2B b893520d74518b0ea0d104d72545925ac37c818ef52d29a5551a2e3406ded90bc4f6c3d53b64868f2b39919cab783ed124af13f63704e7ee66c534c21dfdfb23 SHA512 9861bb9cf35100d7464d88f86614511522fc4cf7e2ef5d09b9ea95cdb168d61f645614104aacad24fcebc8ecfc2c98601b26f434059bffe169513fd097b12aec diff --git a/dev-qt/qtwayland/files/qtwayland-6.8.1-tablet-crash.patch b/dev-qt/qtwayland/files/qtwayland-6.8.1-tablet-crash.patch new file mode 100644 index 000000000000..8d2a5c89dd4c --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-6.8.1-tablet-crash.patch @@ -0,0 +1,201 @@ +Recommended backport of [1] by the kde community[2] to avoid several crashes +when unplugging a tablet (missed the 6.8.1 window, will be in 6.8.2). + +[1] https://github.com/qt/qtwayland/commit/24002ac6cbd01dbde4944b63c1f7c87ed2bd72b5 +[2] https://mail.kde.org/pipermail/distributions/2024-November/001550.html +--- a/src/client/qwaylandtabletv2.cpp ++++ b/src/client/qwaylandtabletv2.cpp +@@ -188,10 +188,4 @@ + QWaylandTabletSeatV2::~QWaylandTabletSeatV2() + { +- for (auto *tablet : m_tablets) +- tablet->destroy(); +- for (auto *tool : m_tools) +- tool->destroy(); +- for (auto *pad : m_pads) +- pad->destroy(); + qDeleteAll(m_tablets); + qDeleteAll(m_tools); +@@ -255,4 +249,9 @@ + } + ++QWaylandTabletV2::~QWaylandTabletV2() ++{ ++ destroy(); ++} ++ + void QWaylandTabletV2::zwp_tablet_v2_name(const QString &name) + { +@@ -293,5 +292,4 @@ + void QWaylandTabletV2::zwp_tablet_v2_removed() + { +- destroy(); + deleteLater(); + } +@@ -317,5 +315,8 @@ + } + +-QWaylandTabletToolV2::~QWaylandTabletToolV2() = default; ++QWaylandTabletToolV2::~QWaylandTabletToolV2() ++{ ++ destroy(); ++} + + void QWaylandTabletToolV2::zwp_tablet_tool_v2_type(uint32_t tool_type) +@@ -411,5 +412,4 @@ + void QWaylandTabletToolV2::zwp_tablet_tool_v2_removed() + { +- destroy(); + m_tabletSeat->toolRemoved(this); + } +@@ -603,4 +603,9 @@ + } + ++QWaylandTabletPadV2::~QWaylandTabletPadV2() ++{ ++ destroy(); ++} ++ + void QWaylandTabletPadV2::zwp_tablet_pad_v2_path(const QString &path) + { +@@ -622,5 +627,4 @@ + void QWaylandTabletPadV2::zwp_tablet_pad_v2_removed() + { +- destroy(); + delete this; + } +--- a/src/client/qwaylandtabletv2_p.h ++++ b/src/client/qwaylandtabletv2_p.h +@@ -84,4 +84,5 @@ + public: + explicit QWaylandTabletV2(::zwp_tablet_v2 *tablet, const QString &seatName); ++ ~QWaylandTabletV2(); + + protected: +@@ -99,5 +100,5 @@ + public: + QWaylandTabletToolV2(QWaylandTabletSeatV2 *tabletSeat, ::zwp_tablet_tool_v2 *tool); +- ~QWaylandTabletToolV2() override; ++ ~QWaylandTabletToolV2(); + + void updateCursor(); +@@ -182,4 +183,5 @@ + public: + explicit QWaylandTabletPadV2(::zwp_tablet_pad_v2 *pad); ++ ~QWaylandTabletPadV2(); + + protected: +--- a/tests/auto/client/tabletv2/tst_tabletv2.cpp ++++ b/tests/auto/client/tabletv2/tst_tabletv2.cpp +@@ -187,7 +187,7 @@ + QList<TabletV2 *> m_tabletsWaitingForDestroy; + QList<TabletToolV2 *> m_tools; +- QList<TabletToolV2 *> m_toolsWaitingForDestroy; ++ QList<TabletToolV2::Resource *> m_toolsWaitingForDestroy; + QList<TabletPadV2 *> m_pads; +- QList<TabletPadV2 *> m_padsWaitingForDestroy; ++ QList<TabletPadV2::Resource *> m_padsWaitingForDestroy; + + protected: +@@ -275,9 +275,10 @@ + void TabletToolV2::sendRemoved() + { +- for (auto *resource : resourceMap()) ++ for (auto *resource : resourceMap()) { + zwp_tablet_tool_v2_send_removed(resource->handle); ++ m_tabletSeat->m_toolsWaitingForDestroy.append(resource); ++ } + bool removed = m_tabletSeat->m_tools.removeOne(this); + QVERIFY(removed); +- m_tabletSeat->m_toolsWaitingForDestroy.append(this); + } + +@@ -334,6 +335,5 @@ + { + if (m_tabletSeat) { +- bool removed = m_tabletSeat->m_toolsWaitingForDestroy.removeOne(this); +- QVERIFY(removed); ++ m_tabletSeat->m_toolsWaitingForDestroy.removeOne(resource); + } + wl_resource_destroy(resource->handle); +@@ -342,9 +342,10 @@ + void TabletPadV2::sendRemoved() + { +- for (auto *resource : resourceMap()) ++ for (auto *resource : resourceMap()) { + zwp_tablet_pad_v2_send_removed(resource->handle); ++ m_tabletSeat->m_padsWaitingForDestroy.append(resource); ++ } + bool removed = m_tabletSeat->m_pads.removeOne(this); + QVERIFY(removed); +- m_tabletSeat->m_padsWaitingForDestroy.append(this); + } + +@@ -352,6 +353,5 @@ + { + if (m_tabletSeat) { +- bool removed = m_tabletSeat->m_padsWaitingForDestroy.removeOne(this); +- QVERIFY(removed); ++ m_tabletSeat->m_padsWaitingForDestroy.removeOne(resource); + } + wl_resource_destroy(resource->handle); +@@ -406,4 +406,6 @@ + void destroysTool(); + void destroysPad(); ++ void removeTabletBeforeTool(); ++ void removeTabletBeforePad(); + void proximityEvents(); + void moveEvent(); +@@ -503,4 +505,5 @@ + QCOMPOSITOR_TRY_VERIFY(tabletSeat()); + exec([&] { ++ tabletSeat()->addTablet(); + tabletSeat()->addTool(); + }); +@@ -509,4 +512,5 @@ + exec([&] { + tabletTool()->sendRemoved(); ++ tablet()->sendRemoved(); + }); + +@@ -529,4 +533,40 @@ + QCOMPOSITOR_TRY_VERIFY(!tabletPad()); + QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_padsWaitingForDestroy.empty()); ++} ++ ++void tst_tabletv2::removeTabletBeforeTool() ++{ ++ QCOMPOSITOR_TRY_VERIFY(tabletSeat()); ++ exec([&] { ++ tabletSeat()->addTablet(); ++ tabletSeat()->addTool(); ++ }); ++ QCOMPOSITOR_TRY_VERIFY(tablet()); ++ QCOMPOSITOR_TRY_VERIFY(tabletTool()); ++ ++ exec([&] { tablet()->sendRemoved(); }); ++ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_tabletsWaitingForDestroy.empty()); ++ ++ exec([&] { tabletTool()->sendRemoved(); }); ++ QCOMPOSITOR_TRY_VERIFY(!tabletTool()); ++ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_toolsWaitingForDestroy.empty()); ++} ++ ++void tst_tabletv2::removeTabletBeforePad() ++{ ++ QCOMPOSITOR_TRY_VERIFY(tabletSeat()); ++ exec([&] { ++ tabletSeat()->addTablet(); ++ tabletSeat()->addPad(); ++ }); ++ QCOMPOSITOR_TRY_VERIFY(tablet()); ++ QCOMPOSITOR_TRY_VERIFY(tabletPad()); ++ ++ exec([&] { tablet()->sendRemoved(); }); ++ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_tabletsWaitingForDestroy.empty()); ++ ++ exec([&] { tabletPad()->sendRemoved(); }); ++ QCOMPOSITOR_TRY_VERIFY(!tabletPad()); ++ QCOMPOSITOR_TRY_VERIFY(tabletSeat()->m_padsWaitingForDestroy.empty()); + } + diff --git a/dev-qt/qtwayland/qtwayland-6.8.1.ebuild b/dev-qt/qtwayland/qtwayland-6.8.1.ebuild new file mode 100644 index 000000000000..1bfb6f2909f1 --- /dev/null +++ b/dev-qt/qtwayland/qtwayland-6.8.1.ebuild @@ -0,0 +1,71 @@ +# Copyright 2021-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt6-build + +DESCRIPTION="Wayland platform plugin for Qt" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +IUSE="accessibility compositor gnome qml vulkan" + +RDEPEND=" + dev-libs/wayland + ~dev-qt/qtbase-${PV}:6[accessibility=,gui,opengl,vulkan=,wayland] + media-libs/libglvnd + x11-libs/libxkbcommon + compositor? ( + qml? ( ~dev-qt/qtdeclarative-${PV}:6 ) + ) + gnome? ( + ~dev-qt/qtbase-${PV}:6[dbus] + ~dev-qt/qtsvg-${PV}:6 + ) +" +DEPEND=" + ${RDEPEND} + vulkan? ( dev-util/vulkan-headers ) +" +BDEPEND="dev-util/wayland-scanner" + +CMAKE_SKIP_TESTS=( + # segfaults for not-looked-into reasons, but not considered + # an issue given >=seatv5 exists since wayland-1.10 (2016) + tst_seatv4 + # needs a compositor/opengl, skip the extra trouble + tst_surface + tst_xdgdecorationv1 + # known failing with wayland-1.23.0 (or at least with offscreen), not + # believed to result in critical runtime issues so skip until this is + # looked at upstream (https://bugreports.qt.io/browse/QTBUG-126379) + tst_client + tst_compositor + tst_scaling +) + +PATCHES=( + "${FILESDIR}"/${PN}-6.8.0-wayland.xml-1.23.0.patch + "${FILESDIR}"/${PN}-6.8.1-tablet-crash.patch +) + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qml Qt6Quick) + $(qt_feature compositor wayland_server) + $(qt_feature gnome wayland_decoration_adwaita) + ) + + qt6-build_src_configure +} + +src_test() { + # users' session setting may break tst_clientextension (bug #927030) + unset DESKTOP_SESSION XDG_CURRENT_DESKTOP + unset GNOME_DESKTOP_SESSION_ID KDE_FULL_SESSION + + qt6-build_src_test +} |