summaryrefslogtreecommitdiff
path: root/dev-qt/qtwayland
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-07-14 10:36:56 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-07-14 10:36:56 +0100
commit5af5a2b4acc97daacc0bf0e1d4e85ec780734689 (patch)
treec3e48a276c7fda27c8e30b6b8864e178e5c496fb /dev-qt/qtwayland
parent605eb6cd753ab91e58e7561ebad2e75a44bcccc4 (diff)
gentoo auto-resync : 14:07:2023 - 10:36:56
Diffstat (limited to 'dev-qt/qtwayland')
-rw-r--r--dev-qt/qtwayland/Manifest2
-rw-r--r--dev-qt/qtwayland/files/qtwayland-5.15.10-Destroy-frame-queue-before-display.patch43
-rw-r--r--dev-qt/qtwayland/qtwayland-5.15.10-r1.ebuild57
3 files changed, 102 insertions, 0 deletions
diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
index a6afd050cd47..0b54303930ed 100644
--- a/dev-qt/qtwayland/Manifest
+++ b/dev-qt/qtwayland/Manifest
@@ -1,8 +1,10 @@
+AUX qtwayland-5.15.10-Destroy-frame-queue-before-display.patch 1607 BLAKE2B 4a408f62d1b330b9f3c404d17b7771c24015bdba3dd02386446652d30e6038db6e0b77aeeaeb32537a0afe10b2e7a2a2a69a9a8e7efe3b1ff03c72eb6fd85427 SHA512 39bbdf0b9e501e8b101af5f29783eb4432e7dcad97362efce1b97b95bd70334bbc5e4fb707a4fe350a4e04d8dbb520faba77a283eaf8ccf331af40c8f65ba7e9
AUX qtwayland-5.15.10-send-release-button-event-on-pointer-leave.patch 2364 BLAKE2B 5c623371a016a4e2fa30fe9f9579e3a6ee754330c1528d43b154de08ef0a49888b49347eac449b73e916c670dc1b54bf07693697f123bacc6441cf21f59fa4c9 SHA512 57caa645cffffe559c9ea61320e88929b9697817edae34b91331f68fb69ce51d98e05f5787fc5f29dd568213b0c374dcea1af8a1911be57265679590be21bdbc
AUX qtwayland-5.15.9-fix-mouse-stuck-in-pressed-state-after-DnD.patch 1451 BLAKE2B 63b053f96f4added309a96d33caea1f361087511cb82249864b4a9971794739903e4df1c240c0a42f71295bb0b4f0f48338e6fcadfe9549372d2b581cb2464b6 SHA512 9be539b99cba04e3009a4a61eb5890708f8cafb09161e2d11868bb3a687591d6d4758a13c469ca22b89380cf1a1950d844c25212ead7b64f45ac275db464a051
DIST qtwayland-5.15.10-gentoo-kde-1.tar.xz 42480 BLAKE2B 3902ecb713b8f35922b0d19bef0b2ec340ca52feb4b61de629dfa6b344d7f550de3e509e265f4476eb907f78b55d5c50c21d9dfeeb7e2e8f680a43fffc911ed4 SHA512 6a131ca2db008a2d224ee6733f47d05a455a8487d38b45cf63882e98e2c29d8163ac5d2f2c2e043f03103bada6e212b5d33cbf11677f8ca2b86fdbf02fc2b239
DIST qtwayland-everywhere-opensource-src-5.15.10.tar.xz 568552 BLAKE2B c5cd4ed5ff78befb5bb49f9eb809562c418b2469aa0fa23728a1de46d57f42788bba3f87a54c8dda2ee0900c76b84213d1111fd86159dc5e6707f7b67ed386de SHA512 214b1fec7dfd815d148a7485f7811e623b06d172e58e4ee3167264a4e4b8f4aeec11474e574f91652a0bd3a48476a6747cad468f1e5035c49a55a96fc1400899
DIST qtwayland-everywhere-src-6.5.1.tar.xz 1059936 BLAKE2B 5b54804df8106b0585fa44612c3d688b89aaea7bd49f2420e2a44472ced9ed51c2aba1d0baf2e4636a58937e7393e6d4b1ad8c7d937dfbf96e5a90bba5393cca SHA512 9074adfb5ea9cc18896dade6706ef5a863033130f23aa11e0a7b2ae6e4df2fb64b636815e2489debb1032919a8ad20d39813d40b3ba7a87cebd801c9fae0d4f0
+EBUILD qtwayland-5.15.10-r1.ebuild 1420 BLAKE2B ebdec3a5cc60cfc2ee583c5aba66b367cc4bee7d3fbe59fbcd40510d84b669f8e17da152399e3e769af542f92e73dd5cff11b4c0d1a74bf2aee36acd83704df3 SHA512 1c1f20e06f9258d46d7983477302a361895a37601d23aa7b003e6d5a1a218a512fdd9974d8290058066975af456e045fefa6e7e5d6769e31ee46d597dd76594e
EBUILD qtwayland-5.15.10.ebuild 1257 BLAKE2B e1d7fc2d838ac7f95fa4132967f05cb11dad6f10cf80e947a5bebaf762b225ad415e4378409910899b8948ccf17bf582eed025407e4d7b18e68e8c8a2c53a17d SHA512 867d80826da07db5bafc98136616b8217dfb26eeea9ed76cdaf641022819da2d6ebd4f8331dfd44f4b74ebf80a956e77b0c382d23ab6c499d5d04964f9f66ae7
EBUILD qtwayland-6.5.1-r1.ebuild 442 BLAKE2B 844f06e4063c17dd8b3e0a8835aeda220a0ade9d07213a42abbc38d37b3e1b6fa71423e07e2ef66d0628a9bb4afa9656c68dd9d7fb73b3e3a597e6d573f84587 SHA512 9f6235b34e56466eea51dd3513f53d0387d4a068a9f429ecb84f90f32f257967e2940e6d48a6029c6a2118915fd5592d14e73a6ef5aeac8e4429a6b2fc4ef8bf
MISC metadata.xml 584 BLAKE2B ad42909b120209835e121a29de558d338bae4348eb55e69a94e8ac8b54f26564df0a750839bef9418ae8056a0d24f234615247a610b8287f5b0fbffbc60193f2 SHA512 86fd81d63b19fc6e95bdcb92e9da9b03861248a4e78e9de36aca6996e61644ab8bce7a60ca22ee7ad86fefc9b407a1fd0136240b8fdfa3c40a149444ab1dcbe2
diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.10-Destroy-frame-queue-before-display.patch b/dev-qt/qtwayland/files/qtwayland-5.15.10-Destroy-frame-queue-before-display.patch
new file mode 100644
index 000000000000..1fdf08dc7487
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.15.10-Destroy-frame-queue-before-display.patch
@@ -0,0 +1,43 @@
+https://bugs.gentoo.org/910315
+https://invent.kde.org/qt/qt/qtwayland/-/merge_requests/73
+
+Reported downstream in Gentoo at https://bugs.gentoo.org/910315.
+
+`kde/5.15` has b981fc82eb37700353949c72d3fd6d0887c8c107 ('[PATCH 27/51] Reduce memory leakage')
+backported but this introduces a use-after-free because `wl_event_queue_destroy` must be called
+before `wl_display_disconnect`. So, just backport the upstream fix which sorts out the order.
+
+Upstream review: https://codereview.qt-project.org/c/qt/qtwayland/+/471416
+Upstream review (6.x): https://codereview.qt-project.org/c/qt/qtwayland/+/471528
+
+From 3a8613b91d2239aebc73b43562f929aa71af0de5 Mon Sep 17 00:00:00 2001
+From: David Redondo <qt@david-redondo.de>
+Date: Tue, 11 Apr 2023 14:27:27 +0200
+Subject: [PATCH] Destroy frame queue before display
+
+wl_event_queue_destroy accesses the display.
+Found by running a test under valgrind.
+
+Pick-to: 6.5
+Change-Id: Ic89cbd3b6e98b4fc9561b0e63b5fab4886a1ec50
+Reviewed-by: David Edmundson <davidedmundson@kde.org>
+(cherry picked from commit a76bf824fcd1cc3789f0d3454a0423c0241d9718)
+--- a/src/client/qwaylanddisplay.cpp
++++ b/src/client/qwaylanddisplay.cpp
+@@ -379,11 +379,12 @@ QWaylandDisplay::~QWaylandDisplay(void)
+ #if QT_CONFIG(cursor)
+ qDeleteAll(mCursorThemes);
+ #endif
+- if (mDisplay)
+- wl_display_disconnect(mDisplay);
+
+ if (m_frameEventQueue)
+ wl_event_queue_destroy(m_frameEventQueue);
++
++ if (mDisplay)
++ wl_display_disconnect(mDisplay);
+ }
+
+ // Steps which is called just after constructor. This separates registry_global() out of the constructor
+--
+2.41.0
diff --git a/dev-qt/qtwayland/qtwayland-5.15.10-r1.ebuild b/dev-qt/qtwayland/qtwayland-5.15.10-r1.ebuild
new file mode 100644
index 000000000000..7240ae37c5e2
--- /dev/null
+++ b/dev-qt/qtwayland/qtwayland-5.15.10-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+if [[ ${PV} != *9999* ]]; then
+ QT5_KDEPATCHSET_REV=1
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+inherit qt5-build
+
+DESCRIPTION="Wayland platform plugin for Qt"
+
+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=(
+ # QTBUG-97037, pending upstream:
+ # https://invent.kde.org/qt/qt/qtwayland/-/merge_requests/71
+ "${FILESDIR}/${PN}-5.15.9-fix-mouse-stuck-in-pressed-state-after-DnD.patch"
+ "${FILESDIR}/${P}-send-release-button-event-on-pointer-leave.patch"
+ # bug #910315, pending upstream:
+ # https://invent.kde.org/qt/qt/qtwayland/-/merge_requests/73
+ "${FILESDIR}/${P}-Destroy-frame-queue-before-display.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
+}
+
+src_install() {
+ qt5-build_src_install
+ rm "${D}${QT5_BINDIR}"/qtwaylandscanner || die
+}