public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2022-03-21 11:04 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2022-03-21 11:04 UTC (permalink / raw
  To: gentoo-commits

commit:     cc0b61233fb5f280359588eec8672d0fd248dc56
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 17 21:52:09 2022 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Mar 21 11:03:36 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cc0b6123

dev-qt/qtwayland: 5.15.3 version bump

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 dev-qt/qtwayland/Manifest                          |   2 +
 .../qtwayland-5.15.3-QTBUG-90037-QTBUG-91264.patch | 131 +++++++++++++++++++++
 dev-qt/qtwayland/qtwayland-5.15.3.ebuild           |  51 ++++++++
 3 files changed, 184 insertions(+)

diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
index c5f631739822..8a755b3fdabc 100644
--- a/dev-qt/qtwayland/Manifest
+++ b/dev-qt/qtwayland/Manifest
@@ -1,2 +1,4 @@
 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
+DIST qtwayland-5.15.3-gentoo-kde-1.tar.xz 34944 BLAKE2B e2113d9351b9c773d2a946a5593657dda7d62b8022190ac10527dea4324951aa486b66e2a461d45d583c3b316b4be6e60d391ceed49dfbc5adb5d4e164e9d763 SHA512 80ae360d3be2c0a63d2161b76bbc5e90a45c39841f8642162bc5da1236a3af7016a2899775ed79c8144d17dcb80f84fa8d05cfc69090ed7a69b72edf4d69bcff
+DIST qtwayland-everywhere-opensource-src-5.15.3.tar.xz 565004 BLAKE2B bc146caf77d42436dcb599df8d2aea422ac8717151dee91b9be129b97902d5af274dec90bd5ffceef62512515e5cf57a61ab773cfc6c13742a6cc5d9b6f72726 SHA512 0a9768282170709050490fb1b9daef59c21c8b5c4785f56a452d7954ffb6f016ec836022693941c99c5c10b2c3c55c75ba37fdad09dd1e0cde627f8b87b90c89

diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.3-QTBUG-90037-QTBUG-91264.patch b/dev-qt/qtwayland/files/qtwayland-5.15.3-QTBUG-90037-QTBUG-91264.patch
new file mode 100644
index 000000000000..8bffa3e08b3e
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.15.3-QTBUG-90037-QTBUG-91264.patch
@@ -0,0 +1,131 @@
+From d7b34dbf072236cdfb3b64e5ad26d1ff29dfec5f Mon Sep 17 00:00:00 2001
+From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
+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 <laszlo.agocs@qt.io>
+Reviewed-by: David Edmundson <davidedmundson@kde.org>
+(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/qtwayland-5.15.3.ebuild b/dev-qt/qtwayland/qtwayland-5.15.3.ebuild
new file mode 100644
index 000000000000..bf1a290f2e8f
--- /dev/null
+++ b/dev-qt/qtwayland/qtwayland-5.15.3.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+QT5_KDEPATCHSET_REV=1
+inherit qt5-build
+
+DESCRIPTION="Wayland platform plugin for Qt"
+SLOT=5/${QT5_PV} # bug 815646
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+	KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+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" ) # upstream pending
+
+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
+}


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2024-10-08 17:46 Ionen Wolkens
  0 siblings, 0 replies; 17+ messages in thread
From: Ionen Wolkens @ 2024-10-08 17:46 UTC (permalink / raw
  To: gentoo-commits

commit:     fb203e73179a7fd2c90c17acb4f31d039f87fa49
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Oct  8 17:12:00 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Oct  8 17:44:32 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fb203e73

dev-qt/qtwayland: backport wayland.xml update to 1.23.0

Currently only in dev branch, so add it to *9999 as well.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../files/qtwayland-6.7.3-wayland.xml-1.23.0.patch | 262 +++++++++++++++++++++
 .../files/qtwayland-6.8.0-wayland.xml-1.23.0.patch | 262 +++++++++++++++++++++
 ...land-6.7.3.ebuild => qtwayland-6.7.3-r1.ebuild} |   4 +
 dev-qt/qtwayland/qtwayland-6.7.9999.ebuild         |   4 +
 ...land-6.8.0.ebuild => qtwayland-6.8.0-r1.ebuild} |   4 +
 dev-qt/qtwayland/qtwayland-6.8.9999.ebuild         |   4 +
 6 files changed, 540 insertions(+)

diff --git a/dev-qt/qtwayland/files/qtwayland-6.7.3-wayland.xml-1.23.0.patch b/dev-qt/qtwayland/files/qtwayland-6.7.3-wayland.xml-1.23.0.patch
new file mode 100644
index 000000000000..a93132ec0936
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-6.7.3-wayland.xml-1.23.0.patch
@@ -0,0 +1,262 @@
+Not essential to backport the update, but KDE upstream recommends
+it to avoid warnings.
+
+https://codereview.qt-project.org/c/qt/qtwayland/+/574283
+--- a/src/3rdparty/protocol/wayland.xml
++++ b/src/3rdparty/protocol/wayland.xml
+@@ -49 +49 @@
+-	The callback_data passed in the callback is the event serial.
++	The callback_data passed in the callback is undefined and should be ignored.
+@@ -215 +215 @@
+-  <interface name="wl_shm_pool" version="1">
++  <interface name="wl_shm_pool" version="2">
+@@ -265,5 +265,5 @@
+-        This request only changes the amount of bytes that are mmapped
+-        by the server and does not touch the file corresponding to the
+-        file descriptor passed at creation time. It is the client's
+-        responsibility to ensure that the file is at least as big as
+-        the new pool size.
++	This request only changes the amount of bytes that are mmapped
++	by the server and does not touch the file corresponding to the
++	file descriptor passed at creation time. It is the client's
++	responsibility to ensure that the file is at least as big as
++	the new pool size.
+@@ -275 +275 @@
+-  <interface name="wl_shm" version="1">
++  <interface name="wl_shm" version="2">
+@@ -421,0 +422,15 @@
++      <entry name="c1" value="0x20203143" summary="[7:0] C0:C1:C2:C3:C4:C5:C6:C7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
++      <entry name="c2" value="0x20203243" summary="[7:0] C0:C1:C2:C3 2:2:2:2 four pixels/byte"/>
++      <entry name="c4" value="0x20203443" summary="[7:0] C0:C1 4:4 two pixels/byte"/>
++      <entry name="d1" value="0x20203144" summary="[7:0] D0:D1:D2:D3:D4:D5:D6:D7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
++      <entry name="d2" value="0x20203244" summary="[7:0] D0:D1:D2:D3 2:2:2:2 four pixels/byte"/>
++      <entry name="d4" value="0x20203444" summary="[7:0] D0:D1 4:4 two pixels/byte"/>
++      <entry name="d8" value="0x20203844" summary="[7:0] D"/>
++      <entry name="r1" value="0x20203152" summary="[7:0] R0:R1:R2:R3:R4:R5:R6:R7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
++      <entry name="r2" value="0x20203252" summary="[7:0] R0:R1:R2:R3 2:2:2:2 four pixels/byte"/>
++      <entry name="r4" value="0x20203452" summary="[7:0] R0:R1 4:4 two pixels/byte"/>
++      <entry name="r10" value="0x20303152" summary="[15:0] x:R 6:10 little endian"/>
++      <entry name="r12" value="0x20323152" summary="[15:0] x:R 4:12 little endian"/>
++      <entry name="avuy8888" value="0x59555641" summary="[31:0] A:Cr:Cb:Y 8:8:8:8 little endian"/>
++      <entry name="xvuy8888" value="0x59555658" summary="[31:0] X:Cr:Cb:Y 8:8:8:8 little endian"/>
++      <entry name="p030" value="0x30333050" summary="2x2 subsampled Cr:Cb plane 10 bits per channel packed"/>
+@@ -444,0 +460,11 @@
++
++    <!-- Version 2 additions -->
++
++    <request name="release" type="destructor" since="2">
++      <description summary="release the shm object">
++	Using this request a client can tell the server that it is not going to
++	use the shm object anymore.
++
++	Objects created via this interface remain unaffected.
++      </description>
++    </request>
+@@ -456,3 +482,5 @@
+-      If the buffer uses a format that has an alpha channel, the alpha channel
+-      is assumed to be premultiplied in the color channels unless otherwise
+-      specified.
++      Color channels are assumed to be electrical rather than optical (in other
++      words, encoded with a transfer function) unless otherwise specified. If
++      the buffer uses a format that has an alpha channel, the alpha channel is
++      assumed to be premultiplied into the electrical color channel values
++      (after transfer function encoding) unless otherwise specified.
+@@ -849,0 +878 @@
++      <entry name="used_source" value="1" summary="source has already been used"/>
+@@ -871 +900 @@
+-	hotspot, but subsequent wl_surface.attach request can move the
++	hotspot, but subsequent wl_surface.offset requests can move the
+@@ -878,0 +908,4 @@
++
++	The given source may not be used in any further set_selection or
++	start_drag requests. Attempting to reuse a previously-used source
++	may send a used_source error.
+@@ -891,0 +925,4 @@
++
++	The given source may not be used in any further set_selection or
++	start_drag requests. Attempting to reuse a previously-used source
++	may send a used_source error.
+@@ -1414 +1451 @@
+-             summary="surface was destroyed before its role object"/>
++	     summary="surface was destroyed before its role object"/>
+@@ -1443,3 +1480,3 @@
+-        'invalid_offset' error being raised. The x and y arguments are ignored
+-        and do not change the pending state. To achieve equivalent semantics,
+-        use wl_surface.offset.
++	'invalid_offset' error being raised. The x and y arguments are ignored
++	and do not change the pending state. To achieve equivalent semantics,
++	use wl_surface.offset.
+@@ -1481,0 +1519,7 @@
++
++	If a pending wl_buffer has been destroyed, the result is not specified.
++	Many compositors are known to remove the surface content on the following
++	wl_surface.commit, but this behaviour is not universal. Clients seeking to
++	maximise compatibility should not destroy pending buffers and should
++	ensure that they explicitly remove content from surfaces, even after
++	destroying buffers.
+@@ -1621,10 +1665,12 @@
+-	as opposed to the current state in use by the compositor. A commit
+-	request atomically applies all pending state, replacing the current
+-	state. After commit, the new pending state is as documented for each
+-	related request.
+-
+-	On commit, a pending wl_buffer is applied first, and all other state
+-	second. This means that all coordinates in double-buffered state are
+-	relative to the new wl_buffer coming into use, except for
+-	wl_surface.attach itself. If there is no pending wl_buffer, the
+-	coordinates are relative to the current surface contents.
++	as opposed to the active state in use by the compositor.
++
++	A commit request atomically creates a content update from the pending
++	state, even if the pending state has not been touched. The content
++	update is placed in a queue until it becomes active. After commit, the
++	new pending state is as documented for each related request.
++
++	When the content update is applied, the wl_buffer is applied before all
++	other state. This means that all coordinates in double-buffered state
++	are relative to the newly attached wl_buffers, except for
++	wl_surface.attach itself. If there is no newly attached wl_buffer, the
++	coordinates are relative to the previous content update.
+@@ -1669,4 +1715,6 @@
+-	This request sets an optional transformation on how the compositor
+-	interprets the contents of the buffer attached to the surface. The
+-	accepted values for the transform parameter are the values for
+-	wl_output.transform.
++	This request sets the transformation that the client has already applied
++	to the content of the buffer. The accepted values for the transform
++	parameter are the values for wl_output.transform.
++
++	The compositor applies the inverse of this transformation whenever it
++	uses the buffer contents.
+@@ -1728 +1776 @@
+-	If scale is not positive the invalid_scale protocol error is
++	If scale is not greater than 0 the invalid_scale protocol error is
+@@ -1732 +1780 @@
+-	   summary="positive scale for interpreting buffer contents"/>
++	   summary="scale for interpreting buffer contents"/>
+@@ -1804,0 +1853,3 @@
++	Before receiving this event the preferred buffer scale for this surface
++	is 1.
++
+@@ -1808,0 +1860,2 @@
++
++	The compositor shall emit a scale value greater than 0.
+@@ -1818,3 +1871,6 @@
+-	It is intended that transform aware clients use this event to apply the
+-	transform to their content and use wl_surface.set_buffer_transform to
+-	indicate the transform they have rendered with.
++	Before receiving this event the preferred buffer transform for this
++	surface is normal.
++
++	Applying this transformation to the surface buffer contents and using
++	wl_surface.set_buffer_transform might allow the compositor to use the
++	surface buffer more efficiently.
+@@ -1995 +2051 @@
+-	On surface.attach requests to the pointer surface, hotspot_x
++	On wl_surface.offset requests to the pointer surface, hotspot_x
+@@ -1997 +2053 @@
+-	passed to the request. Attach must be confirmed by
++	passed to the request. The offset must be applied by
+@@ -2251 +2307 @@
+-    <event name="axis_discrete" since="5">
++    <event name="axis_discrete" since="5" deprecated-since="8">
+@@ -2376,0 +2433,10 @@
++
++      Each wl_keyboard has the following logical state:
++
++      - an active surface (possibly null),
++      - the keys currently logically down,
++      - the active modifiers,
++      - the active group.
++
++      By default, the active surface is null, the keys currently logically down
++      are empty, the active modifiers and the active group are 0.
+@@ -2410,0 +2477,5 @@
++
++	In the wl_keyboard logical state, this event sets the active surface to
++	the surface argument and the keys currently logically down to the keys
++	in the keys argument. The compositor must not send this event if the
++	wl_keyboard already had an active surface immediately before this event.
+@@ -2414 +2485 @@
+-      <arg name="keys" type="array" summary="the currently pressed keys"/>
++      <arg name="keys" type="array" summary="the keys currently logically down"/>
+@@ -2425,2 +2496,4 @@
+-	After this event client must assume that all keys, including modifiers,
+-	are lifted and also it must stop key repeating if there's some going on.
++	In the wl_keyboard logical state, this event resets all values to their
++	defaults. The compositor must not send this event if the active surface
++	of the wl_keyboard was not equal to the surface argument immediately
++	before this event.
+@@ -2450,0 +2524,9 @@
++
++	In the wl_keyboard logical state, this event adds the key to the keys
++	currently logically down (if the state argument is pressed) or removes
++	the key from the keys currently logically down (if the state argument is
++	released). The compositor must not send this event if the wl_keyboard
++	did not have an active surface immediately before this event. The
++	compositor must not send this event if state is pressed (resp. released)
++	and the key was already logically down (resp. was not logically down)
++	immediately before this event.
+@@ -2461,0 +2544,11 @@
++
++	The compositor may send this event without a surface of the client
++	having keyboard focus, for example to tie modifier information to
++	pointer focus instead. If a modifier event with pressed modifiers is sent
++	without a prior enter event, the client can assume the modifier state is
++	valid until it receives the next wl_keyboard.modifiers event. In order to
++	reset the modifier state again, the compositor can send a
++	wl_keyboard.modifiers event with no pressed modifiers.
++
++	In the wl_keyboard logical state, this event updates the modifiers and
++	group.
+@@ -2568,0 +2662,2 @@
++
++	No frame event is required after the cancel event.
+@@ -2668,4 +2763,3 @@
+-      <description summary="transform from framebuffer to output">
+-	This describes the transform that a compositor will apply to a
+-	surface to compensate for the rotation or mirroring of an
+-	output device.
++      <description summary="transformation applied to buffer contents">
++	This describes transformations that clients and compositors apply to
++	buffer contents.
+@@ -2702,0 +2797,4 @@
++	Clients should use wl_surface.preferred_buffer_transform instead of the
++	transform advertised by this event to find the preferred buffer
++	transform to use for a surface.
++
+@@ -2725 +2823 @@
+-	   summary="transform that maps framebuffer to output"/>
++	   summary="additional transformation applied to buffer contents during presentation"/>
+@@ -2798,2 +2896,3 @@
+-	later. If it is not sent, the client should assume a
+-	scale of 1.
++	later. The compositor will emit a non-zero, positive
++	value for scale. If it is not sent, the client should
++	assume a scale of 1.
+@@ -2807,6 +2906,3 @@
+-	It is intended that scaling aware clients track the
+-	current output of a surface, and if it is on a scaled
+-	output it should use wl_surface.set_buffer_scale with
+-	the scale of the output. That way the compositor can
+-	avoid scaling the surface, and the client can supply
+-	a higher detail image.
++	Clients should use wl_surface.preferred_buffer_scale
++	instead of this event to find the preferred buffer
++	scale to use for a surface.
+@@ -3037,0 +3134,5 @@
++
++      A sub-surface never has the keyboard focus of any seat.
++
++      The wl_surface.offset request is ignored: clients must use set_position
++      instead to move the sub-surface.
+@@ -3063,3 +3164 @@
+-	parent surface is applied. When this happens depends on whether the
+-	parent surface is in synchronized mode or not. See
+-	wl_subsurface.set_sync and wl_subsurface.set_desync for details.
++	parent surface is applied.
+@@ -3088,3 +3187 @@
+-	surface is applied. When this happens depends on whether the parent
+-	surface is in synchronized mode or not. See wl_subsurface.set_sync and
+-	wl_subsurface.set_desync for details.
++	surface is applied.

diff --git a/dev-qt/qtwayland/files/qtwayland-6.8.0-wayland.xml-1.23.0.patch b/dev-qt/qtwayland/files/qtwayland-6.8.0-wayland.xml-1.23.0.patch
new file mode 100644
index 000000000000..f259824ad3bc
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-6.8.0-wayland.xml-1.23.0.patch
@@ -0,0 +1,262 @@
+Not essential to backport the update, but KDE upstream recommends
+it to avoid warnings.
+
+https://codereview.qt-project.org/c/qt/qtwayland/+/574283
+--- a/src/3rdparty/protocol/wayland/wayland.xml
++++ b/src/3rdparty/protocol/wayland/wayland.xml
+@@ -49 +49 @@
+-	The callback_data passed in the callback is the event serial.
++	The callback_data passed in the callback is undefined and should be ignored.
+@@ -215 +215 @@
+-  <interface name="wl_shm_pool" version="1">
++  <interface name="wl_shm_pool" version="2">
+@@ -265,5 +265,5 @@
+-        This request only changes the amount of bytes that are mmapped
+-        by the server and does not touch the file corresponding to the
+-        file descriptor passed at creation time. It is the client's
+-        responsibility to ensure that the file is at least as big as
+-        the new pool size.
++	This request only changes the amount of bytes that are mmapped
++	by the server and does not touch the file corresponding to the
++	file descriptor passed at creation time. It is the client's
++	responsibility to ensure that the file is at least as big as
++	the new pool size.
+@@ -275 +275 @@
+-  <interface name="wl_shm" version="1">
++  <interface name="wl_shm" version="2">
+@@ -421,0 +422,15 @@
++      <entry name="c1" value="0x20203143" summary="[7:0] C0:C1:C2:C3:C4:C5:C6:C7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
++      <entry name="c2" value="0x20203243" summary="[7:0] C0:C1:C2:C3 2:2:2:2 four pixels/byte"/>
++      <entry name="c4" value="0x20203443" summary="[7:0] C0:C1 4:4 two pixels/byte"/>
++      <entry name="d1" value="0x20203144" summary="[7:0] D0:D1:D2:D3:D4:D5:D6:D7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
++      <entry name="d2" value="0x20203244" summary="[7:0] D0:D1:D2:D3 2:2:2:2 four pixels/byte"/>
++      <entry name="d4" value="0x20203444" summary="[7:0] D0:D1 4:4 two pixels/byte"/>
++      <entry name="d8" value="0x20203844" summary="[7:0] D"/>
++      <entry name="r1" value="0x20203152" summary="[7:0] R0:R1:R2:R3:R4:R5:R6:R7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
++      <entry name="r2" value="0x20203252" summary="[7:0] R0:R1:R2:R3 2:2:2:2 four pixels/byte"/>
++      <entry name="r4" value="0x20203452" summary="[7:0] R0:R1 4:4 two pixels/byte"/>
++      <entry name="r10" value="0x20303152" summary="[15:0] x:R 6:10 little endian"/>
++      <entry name="r12" value="0x20323152" summary="[15:0] x:R 4:12 little endian"/>
++      <entry name="avuy8888" value="0x59555641" summary="[31:0] A:Cr:Cb:Y 8:8:8:8 little endian"/>
++      <entry name="xvuy8888" value="0x59555658" summary="[31:0] X:Cr:Cb:Y 8:8:8:8 little endian"/>
++      <entry name="p030" value="0x30333050" summary="2x2 subsampled Cr:Cb plane 10 bits per channel packed"/>
+@@ -444,0 +460,11 @@
++
++    <!-- Version 2 additions -->
++
++    <request name="release" type="destructor" since="2">
++      <description summary="release the shm object">
++	Using this request a client can tell the server that it is not going to
++	use the shm object anymore.
++
++	Objects created via this interface remain unaffected.
++      </description>
++    </request>
+@@ -456,3 +482,5 @@
+-      If the buffer uses a format that has an alpha channel, the alpha channel
+-      is assumed to be premultiplied in the color channels unless otherwise
+-      specified.
++      Color channels are assumed to be electrical rather than optical (in other
++      words, encoded with a transfer function) unless otherwise specified. If
++      the buffer uses a format that has an alpha channel, the alpha channel is
++      assumed to be premultiplied into the electrical color channel values
++      (after transfer function encoding) unless otherwise specified.
+@@ -849,0 +878 @@
++      <entry name="used_source" value="1" summary="source has already been used"/>
+@@ -871 +900 @@
+-	hotspot, but subsequent wl_surface.attach request can move the
++	hotspot, but subsequent wl_surface.offset requests can move the
+@@ -878,0 +908,4 @@
++
++	The given source may not be used in any further set_selection or
++	start_drag requests. Attempting to reuse a previously-used source
++	may send a used_source error.
+@@ -891,0 +925,4 @@
++
++	The given source may not be used in any further set_selection or
++	start_drag requests. Attempting to reuse a previously-used source
++	may send a used_source error.
+@@ -1414 +1451 @@
+-             summary="surface was destroyed before its role object"/>
++	     summary="surface was destroyed before its role object"/>
+@@ -1443,3 +1480,3 @@
+-        'invalid_offset' error being raised. The x and y arguments are ignored
+-        and do not change the pending state. To achieve equivalent semantics,
+-        use wl_surface.offset.
++	'invalid_offset' error being raised. The x and y arguments are ignored
++	and do not change the pending state. To achieve equivalent semantics,
++	use wl_surface.offset.
+@@ -1481,0 +1519,7 @@
++
++	If a pending wl_buffer has been destroyed, the result is not specified.
++	Many compositors are known to remove the surface content on the following
++	wl_surface.commit, but this behaviour is not universal. Clients seeking to
++	maximise compatibility should not destroy pending buffers and should
++	ensure that they explicitly remove content from surfaces, even after
++	destroying buffers.
+@@ -1621,10 +1665,12 @@
+-	as opposed to the current state in use by the compositor. A commit
+-	request atomically applies all pending state, replacing the current
+-	state. After commit, the new pending state is as documented for each
+-	related request.
+-
+-	On commit, a pending wl_buffer is applied first, and all other state
+-	second. This means that all coordinates in double-buffered state are
+-	relative to the new wl_buffer coming into use, except for
+-	wl_surface.attach itself. If there is no pending wl_buffer, the
+-	coordinates are relative to the current surface contents.
++	as opposed to the active state in use by the compositor.
++
++	A commit request atomically creates a content update from the pending
++	state, even if the pending state has not been touched. The content
++	update is placed in a queue until it becomes active. After commit, the
++	new pending state is as documented for each related request.
++
++	When the content update is applied, the wl_buffer is applied before all
++	other state. This means that all coordinates in double-buffered state
++	are relative to the newly attached wl_buffers, except for
++	wl_surface.attach itself. If there is no newly attached wl_buffer, the
++	coordinates are relative to the previous content update.
+@@ -1669,4 +1715,6 @@
+-	This request sets an optional transformation on how the compositor
+-	interprets the contents of the buffer attached to the surface. The
+-	accepted values for the transform parameter are the values for
+-	wl_output.transform.
++	This request sets the transformation that the client has already applied
++	to the content of the buffer. The accepted values for the transform
++	parameter are the values for wl_output.transform.
++
++	The compositor applies the inverse of this transformation whenever it
++	uses the buffer contents.
+@@ -1728 +1776 @@
+-	If scale is not positive the invalid_scale protocol error is
++	If scale is not greater than 0 the invalid_scale protocol error is
+@@ -1732 +1780 @@
+-	   summary="positive scale for interpreting buffer contents"/>
++	   summary="scale for interpreting buffer contents"/>
+@@ -1804,0 +1853,3 @@
++	Before receiving this event the preferred buffer scale for this surface
++	is 1.
++
+@@ -1808,0 +1860,2 @@
++
++	The compositor shall emit a scale value greater than 0.
+@@ -1818,3 +1871,6 @@
+-	It is intended that transform aware clients use this event to apply the
+-	transform to their content and use wl_surface.set_buffer_transform to
+-	indicate the transform they have rendered with.
++	Before receiving this event the preferred buffer transform for this
++	surface is normal.
++
++	Applying this transformation to the surface buffer contents and using
++	wl_surface.set_buffer_transform might allow the compositor to use the
++	surface buffer more efficiently.
+@@ -1995 +2051 @@
+-	On surface.attach requests to the pointer surface, hotspot_x
++	On wl_surface.offset requests to the pointer surface, hotspot_x
+@@ -1997 +2053 @@
+-	passed to the request. Attach must be confirmed by
++	passed to the request. The offset must be applied by
+@@ -2251 +2307 @@
+-    <event name="axis_discrete" since="5">
++    <event name="axis_discrete" since="5" deprecated-since="8">
+@@ -2376,0 +2433,10 @@
++
++      Each wl_keyboard has the following logical state:
++
++      - an active surface (possibly null),
++      - the keys currently logically down,
++      - the active modifiers,
++      - the active group.
++
++      By default, the active surface is null, the keys currently logically down
++      are empty, the active modifiers and the active group are 0.
+@@ -2410,0 +2477,5 @@
++
++	In the wl_keyboard logical state, this event sets the active surface to
++	the surface argument and the keys currently logically down to the keys
++	in the keys argument. The compositor must not send this event if the
++	wl_keyboard already had an active surface immediately before this event.
+@@ -2414 +2485 @@
+-      <arg name="keys" type="array" summary="the currently pressed keys"/>
++      <arg name="keys" type="array" summary="the keys currently logically down"/>
+@@ -2425,2 +2496,4 @@
+-	After this event client must assume that all keys, including modifiers,
+-	are lifted and also it must stop key repeating if there's some going on.
++	In the wl_keyboard logical state, this event resets all values to their
++	defaults. The compositor must not send this event if the active surface
++	of the wl_keyboard was not equal to the surface argument immediately
++	before this event.
+@@ -2450,0 +2524,9 @@
++
++	In the wl_keyboard logical state, this event adds the key to the keys
++	currently logically down (if the state argument is pressed) or removes
++	the key from the keys currently logically down (if the state argument is
++	released). The compositor must not send this event if the wl_keyboard
++	did not have an active surface immediately before this event. The
++	compositor must not send this event if state is pressed (resp. released)
++	and the key was already logically down (resp. was not logically down)
++	immediately before this event.
+@@ -2461,0 +2544,11 @@
++
++	The compositor may send this event without a surface of the client
++	having keyboard focus, for example to tie modifier information to
++	pointer focus instead. If a modifier event with pressed modifiers is sent
++	without a prior enter event, the client can assume the modifier state is
++	valid until it receives the next wl_keyboard.modifiers event. In order to
++	reset the modifier state again, the compositor can send a
++	wl_keyboard.modifiers event with no pressed modifiers.
++
++	In the wl_keyboard logical state, this event updates the modifiers and
++	group.
+@@ -2568,0 +2662,2 @@
++
++	No frame event is required after the cancel event.
+@@ -2668,4 +2763,3 @@
+-      <description summary="transform from framebuffer to output">
+-	This describes the transform that a compositor will apply to a
+-	surface to compensate for the rotation or mirroring of an
+-	output device.
++      <description summary="transformation applied to buffer contents">
++	This describes transformations that clients and compositors apply to
++	buffer contents.
+@@ -2702,0 +2797,4 @@
++	Clients should use wl_surface.preferred_buffer_transform instead of the
++	transform advertised by this event to find the preferred buffer
++	transform to use for a surface.
++
+@@ -2725 +2823 @@
+-	   summary="transform that maps framebuffer to output"/>
++	   summary="additional transformation applied to buffer contents during presentation"/>
+@@ -2798,2 +2896,3 @@
+-	later. If it is not sent, the client should assume a
+-	scale of 1.
++	later. The compositor will emit a non-zero, positive
++	value for scale. If it is not sent, the client should
++	assume a scale of 1.
+@@ -2807,6 +2906,3 @@
+-	It is intended that scaling aware clients track the
+-	current output of a surface, and if it is on a scaled
+-	output it should use wl_surface.set_buffer_scale with
+-	the scale of the output. That way the compositor can
+-	avoid scaling the surface, and the client can supply
+-	a higher detail image.
++	Clients should use wl_surface.preferred_buffer_scale
++	instead of this event to find the preferred buffer
++	scale to use for a surface.
+@@ -3037,0 +3134,5 @@
++
++      A sub-surface never has the keyboard focus of any seat.
++
++      The wl_surface.offset request is ignored: clients must use set_position
++      instead to move the sub-surface.
+@@ -3063,3 +3164 @@
+-	parent surface is applied. When this happens depends on whether the
+-	parent surface is in synchronized mode or not. See
+-	wl_subsurface.set_sync and wl_subsurface.set_desync for details.
++	parent surface is applied.
+@@ -3088,3 +3187 @@
+-	surface is applied. When this happens depends on whether the parent
+-	surface is in synchronized mode or not. See wl_subsurface.set_sync and
+-	wl_subsurface.set_desync for details.
++	surface is applied.

diff --git a/dev-qt/qtwayland/qtwayland-6.7.3.ebuild b/dev-qt/qtwayland/qtwayland-6.7.3-r1.ebuild
similarity index 95%
rename from dev-qt/qtwayland/qtwayland-6.7.3.ebuild
rename to dev-qt/qtwayland/qtwayland-6.7.3-r1.ebuild
index 11f94d7bd709..635ccf3a4a9c 100644
--- a/dev-qt/qtwayland/qtwayland-6.7.3.ebuild
+++ b/dev-qt/qtwayland/qtwayland-6.7.3-r1.ebuild
@@ -43,6 +43,10 @@ CMAKE_SKIP_TESTS=(
 	tst_scaling
 )
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.7.3-wayland.xml-1.23.0.patch
+)
+
 src_configure() {
 	local mycmakeargs=(
 		$(cmake_use_find_package qml Qt6Quick)

diff --git a/dev-qt/qtwayland/qtwayland-6.7.9999.ebuild b/dev-qt/qtwayland/qtwayland-6.7.9999.ebuild
index 11f94d7bd709..635ccf3a4a9c 100644
--- a/dev-qt/qtwayland/qtwayland-6.7.9999.ebuild
+++ b/dev-qt/qtwayland/qtwayland-6.7.9999.ebuild
@@ -43,6 +43,10 @@ CMAKE_SKIP_TESTS=(
 	tst_scaling
 )
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.7.3-wayland.xml-1.23.0.patch
+)
+
 src_configure() {
 	local mycmakeargs=(
 		$(cmake_use_find_package qml Qt6Quick)

diff --git a/dev-qt/qtwayland/qtwayland-6.8.0.ebuild b/dev-qt/qtwayland/qtwayland-6.8.0-r1.ebuild
similarity index 96%
rename from dev-qt/qtwayland/qtwayland-6.8.0.ebuild
rename to dev-qt/qtwayland/qtwayland-6.8.0-r1.ebuild
index cb3c8f5542c4..bbe6f62bd9f9 100644
--- a/dev-qt/qtwayland/qtwayland-6.8.0.ebuild
+++ b/dev-qt/qtwayland/qtwayland-6.8.0-r1.ebuild
@@ -47,6 +47,10 @@ CMAKE_SKIP_TESTS=(
 	tst_scaling
 )
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.8.0-wayland.xml-1.23.0.patch
+)
+
 src_configure() {
 	local mycmakeargs=(
 		$(cmake_use_find_package qml Qt6Quick)

diff --git a/dev-qt/qtwayland/qtwayland-6.8.9999.ebuild b/dev-qt/qtwayland/qtwayland-6.8.9999.ebuild
index cb3c8f5542c4..bbe6f62bd9f9 100644
--- a/dev-qt/qtwayland/qtwayland-6.8.9999.ebuild
+++ b/dev-qt/qtwayland/qtwayland-6.8.9999.ebuild
@@ -47,6 +47,10 @@ CMAKE_SKIP_TESTS=(
 	tst_scaling
 )
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.8.0-wayland.xml-1.23.0.patch
+)
+
 src_configure() {
 	local mycmakeargs=(
 		$(cmake_use_find_package qml Qt6Quick)


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2024-07-16 17:55 Ionen Wolkens
  0 siblings, 0 replies; 17+ messages in thread
From: Ionen Wolkens @ 2024-07-16 17:55 UTC (permalink / raw
  To: gentoo-commits

commit:     3e07e0e6e22f979990f1fb81aae992e92101271d
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 16 17:41:51 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Jul 16 17:54:51 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3e07e0e6

dev-qt/qtwayland: backport yet another fix for plasma

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../files/qtwayland-6.7.2-null-screen.patch        | 29 ++++++++++++++++++++++
 ...d-6.7.2-r2.ebuild => qtwayland-6.7.2-r3.ebuild} |  1 +
 2 files changed, 30 insertions(+)

diff --git a/dev-qt/qtwayland/files/qtwayland-6.7.2-null-screen.patch b/dev-qt/qtwayland/files/qtwayland-6.7.2-null-screen.patch
new file mode 100644
index 000000000000..6a7e85a8f4b6
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-6.7.2-null-screen.patch
@@ -0,0 +1,29 @@
+Backport of [1] for [2], will be fixed in qtwayland-6.7.3.
+
+[1] https://codereview.qt-project.org/c/qt/qtwayland/+/576718
+[2] https://bugs.kde.org/show_bug.cgi?id=489072
+
+From: David Edmundson <davidedmundson@kde.org>
+Date: Wed, 10 Jul 2024 09:00:33 +0100
+Subject: [PATCH] client: Guard against windows being on a null screen
+
+calculateScreenFromSurfaceEvents uses the screen information from our
+surface enter events. If this is not set yet, or refers to outputs not
+yet complete we fall back to the QWindow::screen. This was introduced in
+e03613524fc9f6be5c4cd7e9bdb00bc09c7f1e0b.
+
+It was assumed that this would always be a valid value as QtBase keeps
+it updated, but there are apparently paths for it to still be null.
+
+It will be evaluated again when the surface receives a wl_enter event or
+the output that we have entered is finally initialised and we will then
+be marked as on the correct screen.
+--- a/src/client/qwaylandwindow.cpp
++++ b/src/client/qwaylandwindow.cpp
+@@ -1406,5 +1406,5 @@
+     QPlatformScreen *newScreen = calculateScreenFromSurfaceEvents();
+ 
+-    if (newScreen->screen() == window()->screen())
++    if (!newScreen || newScreen->screen() == window()->screen())
+         return;
+ 

diff --git a/dev-qt/qtwayland/qtwayland-6.7.2-r2.ebuild b/dev-qt/qtwayland/qtwayland-6.7.2-r3.ebuild
similarity index 97%
rename from dev-qt/qtwayland/qtwayland-6.7.2-r2.ebuild
rename to dev-qt/qtwayland/qtwayland-6.7.2-r3.ebuild
index eab3c3a8d3a5..7124b7617bf1 100644
--- a/dev-qt/qtwayland/qtwayland-6.7.2-r2.ebuild
+++ b/dev-qt/qtwayland/qtwayland-6.7.2-r3.ebuild
@@ -32,6 +32,7 @@ PATCHES=(
 	"${FILESDIR}"/${P}-plasma-popup.patch
 	"${FILESDIR}"/${P}-drag-drop.patch
 	"${FILESDIR}"/${P}-thread-safety.patch
+	"${FILESDIR}"/${P}-null-screen.patch
 )
 
 CMAKE_SKIP_TESTS=(


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2023-11-15 19:28 Ionen Wolkens
  0 siblings, 0 replies; 17+ messages in thread
From: Ionen Wolkens @ 2023-11-15 19:28 UTC (permalink / raw
  To: gentoo-commits

commit:     c3011ebaf74f0abf2fc68486728b98be37983961
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 15 18:00:59 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Nov 15 19:27:58 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c3011eba

dev-qt/qtwayland: drop 6.5.2-r3

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-qt/qtwayland/Manifest                          |  1 -
 .../files/qtwayland-6.5.2-drag-drop-segfault.patch | 38 ----------------
 dev-qt/qtwayland/qtwayland-6.5.2-r3.ebuild         | 51 ----------------------
 3 files changed, 90 deletions(-)

diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
index 96e9bb4adb06..8bc9c623c179 100644
--- a/dev-qt/qtwayland/Manifest
+++ b/dev-qt/qtwayland/Manifest
@@ -1,5 +1,4 @@
 DIST qtwayland-5.15.11-gentoo-kde-2.tar.xz 48072 BLAKE2B 5587a010e168df2a3303673c4af4d62908c1847dfe563af6bbfa325c38c3de09dafddc7cf3bf55d1293f22716f146f30729eacea8f839b01e3b2b3bd0ba2dcf8 SHA512 8bd205896c4e81203aac98adbf7da209138b5b9423780506910552aa6fdb23f8c5f0b18fd94e90349f94725d13325348c010482e1afddfa0832b9d4ff3feb8bc
 DIST qtwayland-everywhere-opensource-src-5.15.11.tar.xz 569072 BLAKE2B 83b96ac4eb220aa924539a67b28bb20eff97256203f0c36efb0687b9266a2d0f3c69cec6648870e27431120bc1bd0eecf14dcc4f118e3d77ed78c1eb66298329 SHA512 b47a3358bc37f52dde0839940431e8049abfaa827722e6d57362b07547c35fe9fb422d28fd28c69a13f5773c24efc3eeea1e584372737a0151ed94bf4c5b9980
-DIST qtwayland-everywhere-src-6.5.2.tar.xz 1059356 BLAKE2B 4708b78ff5c8e413edaa4d4400317f58dd068273a5eef7caf1500abf8afbe4e9ac405b6854691ef93265a7eeb0cfb7406024826a0b7c7ba3f8149218af67fd48 SHA512 520d109402f1d629481029a3b1eaab740e66135db4069c34651172bb2ad821b22de60e9956a96331d2f32a4522fc52c6a4ba99b474092d755760cad08c776477
 DIST qtwayland-everywhere-src-6.5.3.tar.xz 1059396 BLAKE2B f3b495e712a3eae53b0fe9abc4430414868fe8668468cadc844672b11597c348b0daa82a602f7e5d15f1ec67f5336d0d50466a64ca0d0a571401681ae02137d6 SHA512 e516dd5158ed1aadc989b3f1bbaad87fa38b59872b44c7c92ec1c349e7e923a6b07b7fb3a3493312330eaf581b0d27aeaad2ec03629523ee28e3627b7c30ea89
 DIST qtwayland-everywhere-src-6.6.0.tar.xz 1125748 BLAKE2B e1024866761b1872ed762ef565cc4805e0dcea5a3319ec6d4aaf4d9e46477a0a4f1aea7b39faeb88ab10afa6b2fb5e0dd22a7864a3d18b479c87e345b34c7153 SHA512 e9cf63ccc71d4dc61b04a0f8a1a466e9ede09aa689c53c1ccc9db5233e324894bfd198c9204d8d93509c770a7a6612c8eb9981e0b3ee7428f8bf2dcbdc255109

diff --git a/dev-qt/qtwayland/files/qtwayland-6.5.2-drag-drop-segfault.patch b/dev-qt/qtwayland/files/qtwayland-6.5.2-drag-drop-segfault.patch
deleted file mode 100644
index d19522c4b8ef..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-6.5.2-drag-drop-segfault.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Regression in 6.5.2 that is fixed >=6.5.3.
-https://bugreports.qt.io/browse/QTBUG-115757
-https://github.com/qutebrowser/qutebrowser/issues/7827
-
-https://github.com/qt/qtwayland/commit/02e9e0a2d4538eb2b3c26d3137228f8f501bcf7f
-From: David Edmundson <davidedmundson@kde.org>
-Date: Wed, 7 Jun 2023 22:12:15 +0100
-Subject: [PATCH] client: Fix crash on dnd updates after client facing drag
- ends
-
-A platform drag and a application-facing drag have two different
-lifespans.
-
-The platform drag lasts until all mimedata is transferred and the client
-receiving the drops marks it as finished.
-
-The application facing QDrag lasts until the client deletes it. We can
-get a crash if we get updates during this time.
-
-The drop event is guarded, but not the action negotiation.
-
-Fixes: QTBUG-115757
-Change-Id: Ib9c047f04d65883105d4cd3f169637d0e038a63f
-Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
-(cherry picked from commit 22daca49b807fefba58113a06b86df4274e49f62)
-Reviewed-by: David Edmundson <davidedmundson@kde.org>
---- a/src/client/qwaylanddatadevice.cpp
-+++ b/src/client/qwaylanddatadevice.cpp
-@@ -97,6 +97,9 @@ bool QWaylandDataDevice::startDrag(QMimeData *mimeData, Qt::DropActions supporte
-     connect(m_dragSource.data(), &QWaylandDataSource::cancelled, this, &QWaylandDataDevice::dragSourceCancelled);
-     connect(m_dragSource.data(), &QWaylandDataSource::dndResponseUpdated, this, [this](bool accepted, Qt::DropAction action) {
-             auto drag = static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag());
-+            if (!drag->currentDrag()) {
-+                return;
-+            }
-             // in old versions drop action is not set, so we guess
-             if (m_dragSource->version() < 3) {
-                 drag->setResponse(accepted);

diff --git a/dev-qt/qtwayland/qtwayland-6.5.2-r3.ebuild b/dev-qt/qtwayland/qtwayland-6.5.2-r3.ebuild
deleted file mode 100644
index 52a6a35f0218..000000000000
--- a/dev-qt/qtwayland/qtwayland-6.5.2-r3.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 2021-2023 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 ~x86"
-fi
-
-IUSE="compositor qml vulkan"
-
-RDEPEND="
-	dev-libs/wayland
-	~dev-qt/qtbase-${PV}:6[egl(+),gui,opengl,vulkan=]
-	media-libs/libglvnd
-	x11-libs/libxkbcommon
-	compositor? (
-		qml? ( ~dev-qt/qtdeclarative-${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
-)
-
-PATCHES=(
-	"${FILESDIR}"/${P}-drag-drop-segfault.patch
-)
-
-src_configure() {
-	local mycmakeargs=(
-		$(cmake_use_find_package qml Qt6Quick)
-		$(qt_feature compositor wayland_server)
-	)
-
-	qt6-build_src_configure
-}


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2023-08-17 23:21 Ionen Wolkens
  0 siblings, 0 replies; 17+ messages in thread
From: Ionen Wolkens @ 2023-08-17 23:21 UTC (permalink / raw
  To: gentoo-commits

commit:     69c8497c982a6e82cd1c1762e27c3cdfe52436ed
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 17 22:50:11 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Thu Aug 17 23:19:03 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=69c8497c

dev-qt/qtwayland: backport segfault fix with drag&drop

Notably manifests itself with qutebrowser. Not very
tested but is just a simple null check and so no worries.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../files/qtwayland-6.5.2-drag-drop-segfault.patch | 38 ++++++++++++++++++++++
 ...land-6.5.2.ebuild => qtwayland-6.5.2-r1.ebuild} |  2 ++
 2 files changed, 40 insertions(+)

diff --git a/dev-qt/qtwayland/files/qtwayland-6.5.2-drag-drop-segfault.patch b/dev-qt/qtwayland/files/qtwayland-6.5.2-drag-drop-segfault.patch
new file mode 100644
index 000000000000..d19522c4b8ef
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-6.5.2-drag-drop-segfault.patch
@@ -0,0 +1,38 @@
+Regression in 6.5.2 that is fixed >=6.5.3.
+https://bugreports.qt.io/browse/QTBUG-115757
+https://github.com/qutebrowser/qutebrowser/issues/7827
+
+https://github.com/qt/qtwayland/commit/02e9e0a2d4538eb2b3c26d3137228f8f501bcf7f
+From: David Edmundson <davidedmundson@kde.org>
+Date: Wed, 7 Jun 2023 22:12:15 +0100
+Subject: [PATCH] client: Fix crash on dnd updates after client facing drag
+ ends
+
+A platform drag and a application-facing drag have two different
+lifespans.
+
+The platform drag lasts until all mimedata is transferred and the client
+receiving the drops marks it as finished.
+
+The application facing QDrag lasts until the client deletes it. We can
+get a crash if we get updates during this time.
+
+The drop event is guarded, but not the action negotiation.
+
+Fixes: QTBUG-115757
+Change-Id: Ib9c047f04d65883105d4cd3f169637d0e038a63f
+Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
+(cherry picked from commit 22daca49b807fefba58113a06b86df4274e49f62)
+Reviewed-by: David Edmundson <davidedmundson@kde.org>
+--- a/src/client/qwaylanddatadevice.cpp
++++ b/src/client/qwaylanddatadevice.cpp
+@@ -97,6 +97,9 @@ bool QWaylandDataDevice::startDrag(QMimeData *mimeData, Qt::DropActions supporte
+     connect(m_dragSource.data(), &QWaylandDataSource::cancelled, this, &QWaylandDataDevice::dragSourceCancelled);
+     connect(m_dragSource.data(), &QWaylandDataSource::dndResponseUpdated, this, [this](bool accepted, Qt::DropAction action) {
+             auto drag = static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag());
++            if (!drag->currentDrag()) {
++                return;
++            }
+             // in old versions drop action is not set, so we guess
+             if (m_dragSource->version() < 3) {
+                 drag->setResponse(accepted);

diff --git a/dev-qt/qtwayland/qtwayland-6.5.2.ebuild b/dev-qt/qtwayland/qtwayland-6.5.2-r1.ebuild
similarity index 88%
rename from dev-qt/qtwayland/qtwayland-6.5.2.ebuild
rename to dev-qt/qtwayland/qtwayland-6.5.2-r1.ebuild
index 14d6b705e8ef..4fbc8c272b2c 100644
--- a/dev-qt/qtwayland/qtwayland-6.5.2.ebuild
+++ b/dev-qt/qtwayland/qtwayland-6.5.2-r1.ebuild
@@ -20,3 +20,5 @@ DEPEND="
 	x11-libs/libxkbcommon
 "
 RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-drag-drop-segfault.patch" )


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2023-08-16 16:31 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2023-08-16 16:31 UTC (permalink / raw
  To: gentoo-commits

commit:     e4a970b2bbf284847d4313b6ddb7e9081fb0aebb
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 16 15:30:41 2023 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Aug 16 16:03:34 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e4a970b2

dev-qt/qtwayland: drop 5.15.10-r3

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 dev-qt/qtwayland/Manifest                          |  1 -
 ....15.10-Destroy-frame-queue-before-display.patch | 43 -----------------
 dev-qt/qtwayland/qtwayland-5.15.10-r3.ebuild       | 56 ----------------------
 3 files changed, 100 deletions(-)

diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
index bdd8925e2519..65de0537ac9c 100644
--- a/dev-qt/qtwayland/Manifest
+++ b/dev-qt/qtwayland/Manifest
@@ -1,4 +1,3 @@
-DIST qtwayland-5.15.10-gentoo-kde-1.tar.xz 42480 BLAKE2B 3902ecb713b8f35922b0d19bef0b2ec340ca52feb4b61de629dfa6b344d7f550de3e509e265f4476eb907f78b55d5c50c21d9dfeeb7e2e8f680a43fffc911ed4 SHA512 6a131ca2db008a2d224ee6733f47d05a455a8487d38b45cf63882e98e2c29d8163ac5d2f2c2e043f03103bada6e212b5d33cbf11677f8ca2b86fdbf02fc2b239
 DIST qtwayland-5.15.10-gentoo-kde-2.tar.xz 43076 BLAKE2B 735ac875c0957de47f90d08931eaaaf8d53b1db0012c7d0a592c78ae78da56ffc8a1ba9bbac0577a78d4c05a92a22acef51a6afc95db54bea2d1a2a9658b67c4 SHA512 e0131bb1f2a09597a85d1d8a402bcb1d529cbc44f62e9be8dd8eba9c10007ca4f83572ca48052529b2325cdd8d886abed1f96ba4e00768e4b1c2febe1eb5ef91
 DIST qtwayland-everywhere-opensource-src-5.15.10.tar.xz 568552 BLAKE2B c5cd4ed5ff78befb5bb49f9eb809562c418b2469aa0fa23728a1de46d57f42788bba3f87a54c8dda2ee0900c76b84213d1111fd86159dc5e6707f7b67ed386de SHA512 214b1fec7dfd815d148a7485f7811e623b06d172e58e4ee3167264a4e4b8f4aeec11474e574f91652a0bd3a48476a6747cad468f1e5035c49a55a96fc1400899
 DIST qtwayland-everywhere-src-6.5.2.tar.xz 1059356 BLAKE2B 4708b78ff5c8e413edaa4d4400317f58dd068273a5eef7caf1500abf8afbe4e9ac405b6854691ef93265a7eeb0cfb7406024826a0b7c7ba3f8149218af67fd48 SHA512 520d109402f1d629481029a3b1eaab740e66135db4069c34651172bb2ad821b22de60e9956a96331d2f32a4522fc52c6a4ba99b474092d755760cad08c776477

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
deleted file mode 100644
index 1fdf08dc7487..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-5.15.10-Destroy-frame-queue-before-display.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-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-r3.ebuild b/dev-qt/qtwayland/qtwayland-5.15.10-r3.ebuild
deleted file mode 100644
index cab77b1950fc..000000000000
--- a/dev-qt/qtwayland/qtwayland-5.15.10-r3.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# 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"
-	# 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
-}


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2023-08-08 20:22 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2023-08-08 20:22 UTC (permalink / raw
  To: gentoo-commits

commit:     4b6ed90eaaf1519bb56933d52ff785e372acb2c3
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  8 20:07:34 2023 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Aug  8 20:22:40 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b6ed90e

dev-qt/qtwayland: Bump to QT5_KDEPATCHSET_REV=2

Convert cursor bitmap to supported format
QTBUG: https://bugreports.qt.io/browse/QTBUG-95434

David Edmundson (1):
      client: Fix crash on dnd updates after client facing drag ends

KDE-bug: https://bugs.kde.org/show_bug.cgi?id=470925
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=472313

Closes: https://bugs.gentoo.org/910562
Closes: https://bugs.gentoo.org/911832
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 dev-qt/qtwayland/Manifest                          |  1 +
 ...5.15.10-QTBUG-95434-convert-cursor-bitmap.patch | 66 ++++++++++++++++++++++
 dev-qt/qtwayland/qtwayland-5.15.10-r2.ebuild       | 57 +++++++++++++++++++
 3 files changed, 124 insertions(+)

diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
index 524ac95671b5..bdd8925e2519 100644
--- a/dev-qt/qtwayland/Manifest
+++ b/dev-qt/qtwayland/Manifest
@@ -1,3 +1,4 @@
 DIST qtwayland-5.15.10-gentoo-kde-1.tar.xz 42480 BLAKE2B 3902ecb713b8f35922b0d19bef0b2ec340ca52feb4b61de629dfa6b344d7f550de3e509e265f4476eb907f78b55d5c50c21d9dfeeb7e2e8f680a43fffc911ed4 SHA512 6a131ca2db008a2d224ee6733f47d05a455a8487d38b45cf63882e98e2c29d8163ac5d2f2c2e043f03103bada6e212b5d33cbf11677f8ca2b86fdbf02fc2b239
+DIST qtwayland-5.15.10-gentoo-kde-2.tar.xz 43076 BLAKE2B 735ac875c0957de47f90d08931eaaaf8d53b1db0012c7d0a592c78ae78da56ffc8a1ba9bbac0577a78d4c05a92a22acef51a6afc95db54bea2d1a2a9658b67c4 SHA512 e0131bb1f2a09597a85d1d8a402bcb1d529cbc44f62e9be8dd8eba9c10007ca4f83572ca48052529b2325cdd8d886abed1f96ba4e00768e4b1c2febe1eb5ef91
 DIST qtwayland-everywhere-opensource-src-5.15.10.tar.xz 568552 BLAKE2B c5cd4ed5ff78befb5bb49f9eb809562c418b2469aa0fa23728a1de46d57f42788bba3f87a54c8dda2ee0900c76b84213d1111fd86159dc5e6707f7b67ed386de SHA512 214b1fec7dfd815d148a7485f7811e623b06d172e58e4ee3167264a4e4b8f4aeec11474e574f91652a0bd3a48476a6747cad468f1e5035c49a55a96fc1400899
 DIST qtwayland-everywhere-src-6.5.2.tar.xz 1059356 BLAKE2B 4708b78ff5c8e413edaa4d4400317f58dd068273a5eef7caf1500abf8afbe4e9ac405b6854691ef93265a7eeb0cfb7406024826a0b7c7ba3f8149218af67fd48 SHA512 520d109402f1d629481029a3b1eaab740e66135db4069c34651172bb2ad821b22de60e9956a96331d2f32a4522fc52c6a4ba99b474092d755760cad08c776477

diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.10-QTBUG-95434-convert-cursor-bitmap.patch b/dev-qt/qtwayland/files/qtwayland-5.15.10-QTBUG-95434-convert-cursor-bitmap.patch
new file mode 100644
index 000000000000..7b43ee3b2149
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.15.10-QTBUG-95434-convert-cursor-bitmap.patch
@@ -0,0 +1,66 @@
+From dd5c9e2d894ca94faaeef7dfc3cc4344a7f62640 Mon Sep 17 00:00:00 2001
+From: Michael Weghorn <m.weghorn@posteo.de>
+Date: Mon, 20 Feb 2023 14:02:23 +0100
+Subject: [PATCH] Convert cursor bitmap to supported format
+
+The 1-bit image formats QImage::Format_Mono and
+QImage::Format_MonoLSB used by cursor bitmaps don't have
+a corresponding wl_shm_format.
+
+Therefore, convert to a supported image format as necessary
+to make such bitmap cursors work on Wayland as well.
+
+Fixes: QTBUG-95434
+Change-Id: I402fd870b301ddc01075251b66f2cf7cc1923133
+Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
+(cherry picked from commit 45ec1362f8fcb5ade92f4d2d4985b1c24e78c8ba)
+
+Backport changes: Use Qt::ReturnByValue version for QCursor::mask() and QCursor::bitmap()
+---
+ src/client/qwaylandcursor.cpp | 23 ++++++++++++++++++++++-
+ 1 file changed, 22 insertions(+), 1 deletion(-)
+
+diff --git a/src/client/qwaylandcursor.cpp b/src/client/qwaylandcursor.cpp
+index e4eca9d4e..ba76ba2d0 100644
+--- a/src/client/qwaylandcursor.cpp
++++ b/src/client/qwaylandcursor.cpp
+@@ -44,6 +44,7 @@
+ #include "qwaylandshmbackingstore_p.h"
+ 
+ #include <QtGui/QImageReader>
++#include <QBitmap>
+ #include <QDebug>
+ 
+ #include <wayland-cursor.h>
+@@ -250,7 +251,27 @@ QWaylandCursor::QWaylandCursor(QWaylandDisplay *display)
+ QSharedPointer<QWaylandBuffer> QWaylandCursor::cursorBitmapBuffer(QWaylandDisplay *display, const QCursor *cursor)
+ {
+     Q_ASSERT(cursor->shape() == Qt::BitmapCursor);
+-    const QImage &img = cursor->pixmap().toImage();
++
++    const QBitmap mask = cursor->mask(Qt::ReturnByValue);
++    QImage img;
++    if (cursor->pixmap().isNull())
++        img = cursor->bitmap(Qt::ReturnByValue).toImage();
++    else
++        img = cursor->pixmap().toImage();
++
++    // convert to supported format if necessary
++    if (!display->shm()->formatSupported(img.format())) {
++        if (mask.isNull()) {
++            img.convertTo(QImage::Format_RGB32);
++        } else {
++            // preserve mask
++            img.convertTo(QImage::Format_ARGB32);
++            QPixmap pixmap = QPixmap::fromImage(img);
++            pixmap.setMask(mask);
++            img = pixmap.toImage();
++        }
++    }
++
+     QSharedPointer<QWaylandShmBuffer> buffer(new QWaylandShmBuffer(display, img.size(), img.format()));
+     memcpy(buffer->image()->bits(), img.bits(), size_t(img.sizeInBytes()));
+     return buffer;
+-- 
+GitLab
+

diff --git a/dev-qt/qtwayland/qtwayland-5.15.10-r2.ebuild b/dev-qt/qtwayland/qtwayland-5.15.10-r2.ebuild
new file mode 100644
index 000000000000..9ca1a8b37a6f
--- /dev/null
+++ b/dev-qt/qtwayland/qtwayland-5.15.10-r2.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=2
+	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"
+	# QTBUG-95434, pending/approved upstream:
+	# https://invent.kde.org/qt/qt/qtwayland/-/merge_requests/79
+	"${FILESDIR}/${P}-QTBUG-95434-convert-cursor-bitmap.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
+}


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2023-06-13 11:42 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2023-06-13 11:42 UTC (permalink / raw
  To: gentoo-commits

commit:     163fd923005844a685f8bff550f531d317e387c0
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 13 11:23:27 2023 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Jun 13 11:41:18 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=163fd923

dev-qt/qtwayland: 5.15.10 version bump

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 dev-qt/qtwayland/Manifest                          |  2 +
 ...end-release-button-event-on-pointer-leave.patch | 68 ++++++++++++++++++++++
 dev-qt/qtwayland/qtwayland-5.15.10.ebuild          | 54 +++++++++++++++++
 3 files changed, 124 insertions(+)

diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
index d4468b0fc83a..cb00fa4872d7 100644
--- a/dev-qt/qtwayland/Manifest
+++ b/dev-qt/qtwayland/Manifest
@@ -1,3 +1,5 @@
+DIST qtwayland-5.15.10-gentoo-kde-1.tar.xz 42480 BLAKE2B 3902ecb713b8f35922b0d19bef0b2ec340ca52feb4b61de629dfa6b344d7f550de3e509e265f4476eb907f78b55d5c50c21d9dfeeb7e2e8f680a43fffc911ed4 SHA512 6a131ca2db008a2d224ee6733f47d05a455a8487d38b45cf63882e98e2c29d8163ac5d2f2c2e043f03103bada6e212b5d33cbf11677f8ca2b86fdbf02fc2b239
 DIST qtwayland-5.15.9-gentoo-kde-1.tar.xz 44312 BLAKE2B be255e0d292ce6555473d4ad92b656ea0f3bd7c0d4041f92e2ccfe1e456c984ff3d9307e3ff1ebe8da5d40b6a6c938e116856ff1c392171f3157cc734461e8a7 SHA512 bf099acf0cb21c3402f38dcec8a3b2f9411e8d307e303bb2eb772e5dc5872cbdb456a7d37628d72bcf4f258f3e8f9baa53081bf5c061d6338f7431f016c0e27b
+DIST qtwayland-everywhere-opensource-src-5.15.10.tar.xz 568552 BLAKE2B c5cd4ed5ff78befb5bb49f9eb809562c418b2469aa0fa23728a1de46d57f42788bba3f87a54c8dda2ee0900c76b84213d1111fd86159dc5e6707f7b67ed386de SHA512 214b1fec7dfd815d148a7485f7811e623b06d172e58e4ee3167264a4e4b8f4aeec11474e574f91652a0bd3a48476a6747cad468f1e5035c49a55a96fc1400899
 DIST qtwayland-everywhere-opensource-src-5.15.9.tar.xz 567564 BLAKE2B c5a0d39cdd746e2aa6cd011ce04baa7f1f30e21c935877a684f07d5c2a0d3446e80569fa33c3fa0953b1bea86aefd64f80fda5164f3ee5648b74c2e0e8d369b9 SHA512 d108d63ceeb3b1a8905ad7f53a7271fca6a3506679d352b7290cdf8c00e1c180b6c561ee013a674002b89e23f58cfb7b909dfc5a8fdec6cece7e0a782be77978
 DIST qtwayland-everywhere-src-6.5.1.tar.xz 1059936 BLAKE2B 5b54804df8106b0585fa44612c3d688b89aaea7bd49f2420e2a44472ced9ed51c2aba1d0baf2e4636a58937e7393e6d4b1ad8c7d937dfbf96e5a90bba5393cca SHA512 9074adfb5ea9cc18896dade6706ef5a863033130f23aa11e0a7b2ae6e4df2fb64b636815e2489debb1032919a8ad20d39813d40b3ba7a87cebd801c9fae0d4f0

diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.10-send-release-button-event-on-pointer-leave.patch b/dev-qt/qtwayland/files/qtwayland-5.15.10-send-release-button-event-on-pointer-leave.patch
new file mode 100644
index 000000000000..1e949fc32355
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.15.10-send-release-button-event-on-pointer-leave.patch
@@ -0,0 +1,68 @@
+From 90995b07d2d4dbd12b7e527a881bf9d6158e277b Mon Sep 17 00:00:00 2001
+From: Ilya Fedin <fedin-ilja2010@ya.ru>
+Date: Sun, 19 Mar 2023 10:24:59 +0400
+Subject: [PATCH] Client: Send release button event on pointer leave
+
+Fixes: QTBUG-97037
+Pick-to: 6.6 6.5 6.2 5.15
+Change-Id: I151239b276ab5aefe166f5615baf43dab428ce0c
+Reviewed-by: David Edmundson <davidedmundson@kde.org>
+(cherry picked from commit 8235fa65fe033a94e7a44322d3502f25940092ec)
+---
+ src/client/qwaylandinputdevice.cpp | 9 +++++++--
+ src/client/qwaylandinputdevice_p.h | 1 +
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
+index bc05583a..e562c7a7 100644
+--- a/src/client/qwaylandinputdevice.cpp
++++ b/src/client/qwaylandinputdevice.cpp
+@@ -688,8 +688,8 @@ public:
+ 
+ void QWaylandInputDevice::Pointer::pointer_leave(uint32_t time, struct wl_surface *surface)
+ {
++    releaseButtons();
+     invalidateFocus();
+-    mButtons = Qt::NoButton;
+ 
+     mParent->mTime = time;
+ 
+@@ -804,6 +804,8 @@ void QWaylandInputDevice::Pointer::pointer_button(uint32_t serial, uint32_t time
+     default: return; // invalid button number (as far as Qt is concerned)
+     }
+ 
++    mLastButton = qt_button;
++
+     if (state)
+         mButtons |= qt_button;
+     else
+@@ -842,10 +844,13 @@ void QWaylandInputDevice::Pointer::invalidateFocus()
+ 
+ void QWaylandInputDevice::Pointer::releaseButtons()
+ {
++    if (mButtons == Qt::NoButton)
++        return;
++
+     mButtons = Qt::NoButton;
+ 
+     if (auto *window = focusWindow()) {
+-        ReleaseEvent e(focusWindow(), mParent->mTime, mSurfacePos, mGlobalPos, mButtons, Qt::NoButton, mParent->modifiers());
++        ReleaseEvent e(focusWindow(), mParent->mTime, mSurfacePos, mGlobalPos, mButtons, mLastButton, mParent->modifiers());
+         window->handleMouse(mParent, e);
+     }
+ }
+diff --git a/src/client/qwaylandinputdevice_p.h b/src/client/qwaylandinputdevice_p.h
+index 5795f138..bafe3db2 100644
+--- a/src/client/qwaylandinputdevice_p.h
++++ b/src/client/qwaylandinputdevice_p.h
+@@ -346,6 +346,7 @@ public:
+     QPointF mSurfacePos;
+     QPointF mGlobalPos;
+     Qt::MouseButtons mButtons = Qt::NoButton;
++    Qt::MouseButton mLastButton = Qt::NoButton;
+ #if QT_CONFIG(cursor)
+     wl_buffer *mCursorBuffer = nullptr;
+     Qt::CursorShape mCursorShape = Qt::BitmapCursor;
+-- 
+2.41.0
+

diff --git a/dev-qt/qtwayland/qtwayland-5.15.10.ebuild b/dev-qt/qtwayland/qtwayland-5.15.10.ebuild
new file mode 100644
index 000000000000..f1bed530d4bb
--- /dev/null
+++ b/dev-qt/qtwayland/qtwayland-5.15.10.ebuild
@@ -0,0 +1,54 @@
+# 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"
+)
+
+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
+}


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2023-03-09 15:02 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2023-03-09 15:02 UTC (permalink / raw
  To: gentoo-commits

commit:     af1a589dedd27aa4da350aae3647572c18dcfed2
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  9 14:57:26 2023 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu Mar  9 15:01:27 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=af1a589d

dev-qt/qtwayland: drop 5.15.8-r2

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 dev-qt/qtwayland/Manifest                          |  1 -
 .../files/qtwayland-5.15.8-KDEBUG-466674.patch     | 33 ---------------
 dev-qt/qtwayland/qtwayland-5.15.8-r2.ebuild        | 49 ----------------------
 3 files changed, 83 deletions(-)

diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
index 474f44b7ff2f..57115a0b6826 100644
--- a/dev-qt/qtwayland/Manifest
+++ b/dev-qt/qtwayland/Manifest
@@ -1,5 +1,4 @@
 DIST qtwayland-5.15.8-gentoo-kde-1.tar.xz 44488 BLAKE2B bfdd7c2959eb99e115eaf01d617464359a549513958c997dd8b1a86bda755dec44d24b6619650bf385b2894a2001a712a344b093fc94e8cde40ac9c20323903e SHA512 3cd52fc78f2451c38c6d2b0dd958895016a94b255e38ff3909f40e4bcb1ef760332fde4cffd32ab11e868ce0afe6629f325613c88b8fd85ca28f1583194ce229
-DIST qtwayland-5.15.8-gentoo-kde-2.tar.xz 46592 BLAKE2B 0f2c460038a5b6f6fb7ea38edf61b392e95caa6356e8c070bde9d7939e20aaee4a45a581e08d04ad34f2a2da6317c2a16c40e58272d0c256fd16f0a1ce6fa34a SHA512 8b6c94e032a35f6ec6400fa292b1c7b864504d5c94d095c20fd41da8576eab4325bf7312b08cca00825aa858e175510b8b37c5877207fb4d60edde99c77c9886
 DIST qtwayland-5.15.8-gentoo-kde-3.tar.xz 47636 BLAKE2B b57cef6d4ce70747b74062e26459e4957c8df2c1c588b00580e175982b09c8cf172968d4d0bc95576e0e76f2640188d3beef4986d33ef4b79d209bf4a4cdbb45 SHA512 bd23c644f6e957ce7c0aacbe08112deb992608f5546889f765b333fc6094e34bc7329859d66bfbdbd56ebb5d77b82958ff3fc6614780c80573e85bb96f59eae6
 DIST qtwayland-everywhere-opensource-src-5.15.8.tar.xz 568268 BLAKE2B b4e982015e25104b3270b48a180b5726ba85e83fd9616422422d8729dc09bc94bbeecfe2096e388eadb0930e4abfdd3b0349eba2bd1d8f742f0c74b5e72aeac5 SHA512 6c6e9dc20f98d71abd7dba54ff278bf4535e70f86bfc4e6dd46c1af7c87777f045a6aba02bba3eb786f7cf383da5fb72b03e1e6ec636c8be0cde0e4e5b7b5b2d
 DIST qtwayland-everywhere-src-6.4.2.tar.xz 836720 BLAKE2B d8a6b84712081097775f083f3887c18eb001fd2beba32b2abc930ec3b932f6f19b347fe2fde3b98f35c1e7e31661974b13468fb176e73bdf557a330c80d847fd SHA512 29d3f3e7fade666bcd3145106f1d782122ac3fcf94811d25917c9f45af0dc8cddb3c2149545344d91e86f86490029555758ed2e180f241703251c22c7ec15122

diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.8-KDEBUG-466674.patch b/dev-qt/qtwayland/files/qtwayland-5.15.8-KDEBUG-466674.patch
deleted file mode 100644
index 06ab3214f770..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-5.15.8-KDEBUG-466674.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 5049ff99ea2687919a2246332511a2753c72d3cd Mon Sep 17 00:00:00 2001
-From: Aleix Pol <aleixpol@kde.org>
-Date: Mon, 6 Mar 2023 01:11:45 +0100
-Subject: [PATCH] client: Do not cast placeholder screens to QWaylandScreen
-
-It's wrong to C-cast an object to a class that isn't theirs. Check if it
-is a placeholder first.
-
-Pick-to: 5.15 6.2 6.5
-Change-Id: I45d3c423422ae6638a033fb0f4cfefc7cd4460f0
-Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
-Reviewed-by: David Edmundson <davidedmundson@kde.org>
-(cherry picked from commit a53f022393a1276dbf8eccbae04cb0bd6cea0160)
----
- src/client/qwaylandnativeinterface.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/client/qwaylandnativeinterface.cpp b/src/client/qwaylandnativeinterface.cpp
-index bf54a1a00..9763c3123 100644
---- a/src/client/qwaylandnativeinterface.cpp
-+++ b/src/client/qwaylandnativeinterface.cpp
-@@ -139,7 +139,7 @@ void *QWaylandNativeInterface::nativeResourceForScreen(const QByteArray &resourc
- {
-     QByteArray lowerCaseResource = resourceString.toLower();
- 
--    if (lowerCaseResource == "output")
-+    if (lowerCaseResource == "output" && !screen->handle()->isPlaceholder())
-         return ((QWaylandScreen *) screen->handle())->output();
- 
-     return nullptr;
--- 
-GitLab
-

diff --git a/dev-qt/qtwayland/qtwayland-5.15.8-r2.ebuild b/dev-qt/qtwayland/qtwayland-5.15.8-r2.ebuild
deleted file mode 100644
index b80975a7165f..000000000000
--- a/dev-qt/qtwayland/qtwayland-5.15.8-r2.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# 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=2
-	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=( "${FILESDIR}/${P}-KDEBUG-466674.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
-}


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2023-03-08 11:07 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2023-03-08 11:07 UTC (permalink / raw
  To: gentoo-commits

commit:     a63274b03a791ec13fff137ba6f4b04391c56920
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  8 10:28:55 2023 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Mar  8 11:06:55 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a63274b0

dev-qt/qtwayland: Do not cast placeholder screens to QWaylandScreen

KDE-bug: https://bugs.kde.org/show_bug.cgi?id=466674
See also: https://codereview.qt-project.org/c/qt/qtwayland/+/464669

Bug: https://bugs.gentoo.org/900358
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/qtwayland-5.15.8-KDEBUG-466674.patch     | 33 +++++++++++++++
 dev-qt/qtwayland/qtwayland-5.15.8-r2.ebuild        | 49 ++++++++++++++++++++++
 2 files changed, 82 insertions(+)

diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.8-KDEBUG-466674.patch b/dev-qt/qtwayland/files/qtwayland-5.15.8-KDEBUG-466674.patch
new file mode 100644
index 000000000000..06ab3214f770
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.15.8-KDEBUG-466674.patch
@@ -0,0 +1,33 @@
+From 5049ff99ea2687919a2246332511a2753c72d3cd Mon Sep 17 00:00:00 2001
+From: Aleix Pol <aleixpol@kde.org>
+Date: Mon, 6 Mar 2023 01:11:45 +0100
+Subject: [PATCH] client: Do not cast placeholder screens to QWaylandScreen
+
+It's wrong to C-cast an object to a class that isn't theirs. Check if it
+is a placeholder first.
+
+Pick-to: 5.15 6.2 6.5
+Change-Id: I45d3c423422ae6638a033fb0f4cfefc7cd4460f0
+Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
+Reviewed-by: David Edmundson <davidedmundson@kde.org>
+(cherry picked from commit a53f022393a1276dbf8eccbae04cb0bd6cea0160)
+---
+ src/client/qwaylandnativeinterface.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/client/qwaylandnativeinterface.cpp b/src/client/qwaylandnativeinterface.cpp
+index bf54a1a00..9763c3123 100644
+--- a/src/client/qwaylandnativeinterface.cpp
++++ b/src/client/qwaylandnativeinterface.cpp
+@@ -139,7 +139,7 @@ void *QWaylandNativeInterface::nativeResourceForScreen(const QByteArray &resourc
+ {
+     QByteArray lowerCaseResource = resourceString.toLower();
+ 
+-    if (lowerCaseResource == "output")
++    if (lowerCaseResource == "output" && !screen->handle()->isPlaceholder())
+         return ((QWaylandScreen *) screen->handle())->output();
+ 
+     return nullptr;
+-- 
+GitLab
+

diff --git a/dev-qt/qtwayland/qtwayland-5.15.8-r2.ebuild b/dev-qt/qtwayland/qtwayland-5.15.8-r2.ebuild
new file mode 100644
index 000000000000..b80975a7165f
--- /dev/null
+++ b/dev-qt/qtwayland/qtwayland-5.15.8-r2.ebuild
@@ -0,0 +1,49 @@
+# 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=2
+	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=( "${FILESDIR}/${P}-KDEBUG-466674.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
+}


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2022-04-17 19:29 Sam James
  0 siblings, 0 replies; 17+ messages in thread
From: Sam James @ 2022-04-17 19:29 UTC (permalink / raw
  To: gentoo-commits

commit:     ebb73b73e7dba0b7748372d24fef04ed1f2eafcc
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 15 21:39:45 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Apr 17 19:28:23 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ebb73b73

dev-qt/qtwayland: Drop 5.15.2-r20

Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-qt/qtwayland/Manifest                          |   1 -
 .../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-r20.ebuild       |  51 ---------
 5 files changed, 302 deletions(-)

diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
index ef7a416aa450..d51d66885922 100644
--- a/dev-qt/qtwayland/Manifest
+++ b/dev-qt/qtwayland/Manifest
@@ -1,4 +1,3 @@
 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
 DIST qtwayland-5.15.3-gentoo-kde-2.tar.xz 35460 BLAKE2B ea229ae3007405dcb431c90c3a8411d11d2d5715e917f5a57cc2881da4274938d6466f1562dc5f750b8d27ee60a459d6251ca1ab2563f6ee4b9f89e17a956b59 SHA512 63041bcf68869eb5bd1449bfeecd9847c6890378743eaf1f6cedd95b01f54448be804de6bb5649d70240d4fe98d39fd58db2ba5a5234269c17b5127dd1d76dd3
 DIST qtwayland-everywhere-opensource-src-5.15.3.tar.xz 565004 BLAKE2B bc146caf77d42436dcb599df8d2aea422ac8717151dee91b9be129b97902d5af274dec90bd5ffceef62512515e5cf57a61ab773cfc6c13742a6cc5d9b6f72726 SHA512 0a9768282170709050490fb1b9daef59c21c8b5c4785f56a452d7954ffb6f016ec836022693941c99c5c10b2c3c55c75ba37fdad09dd1e0cde627f8b87b90c89

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
deleted file mode 100644
index e0c18228ed0f..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-qmake-deps.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 3b72261b8b06397a532a40e41103c6b7a44e3ab5 Mon Sep 17 00:00:00 2001
-From: Fabian Vogt <fabian@ritter-vogt.de>
-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 <wayland-client.h>, 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
deleted file mode 100644
index b861cebe60ac..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-5.15.2-fixup-mutexes.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From bf4335b1ea9b179076cbd7a1c2e8cfa9538b1dc1 Mon Sep 17 00:00:00 2001
-From: David Edmundson <davidedmundson@kde.org>
-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<struct ::wl_surface *>(wl_proxy_create_wrapper(mSurface->object()));
-     wl_proxy_set_queue(reinterpret_cast<wl_proxy *>(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
deleted file mode 100644
index c2e377cff054..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-5.15.2-guard-mResizeDirty.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 2e2042aa18efd1389a140a5d0028d8359bd455a7 Mon Sep 17 00:00:00 2001
-From: David Edmundson <davidedmundson@kde.org>
-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-r20.ebuild b/dev-qt/qtwayland/qtwayland-5.15.2-r20.ebuild
deleted file mode 100644
index de0debdecf5a..000000000000
--- a/dev-qt/qtwayland/qtwayland-5.15.2-r20.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# 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="~ppc ~ppc64"
-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
-}


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2022-03-21 11:27 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2022-03-21 11:27 UTC (permalink / raw
  To: gentoo-commits

commit:     fda08f4f2fb7a2bdb484cbd67bebc8aac162f679
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 21 11:27:04 2022 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Mar 21 11:27:04 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fda08f4f

dev-qt/qtwayland: Cleanup duplicate patch file

Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../qtwayland-5.15.3-QTBUG-90037-QTBUG-91264.patch | 131 ---------------------
 dev-qt/qtwayland/qtwayland-5.15.3.ebuild           |   2 +-
 2 files changed, 1 insertion(+), 132 deletions(-)

diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.3-QTBUG-90037-QTBUG-91264.patch b/dev-qt/qtwayland/files/qtwayland-5.15.3-QTBUG-90037-QTBUG-91264.patch
deleted file mode 100644
index 8bffa3e08b3e..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-5.15.3-QTBUG-90037-QTBUG-91264.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From d7b34dbf072236cdfb3b64e5ad26d1ff29dfec5f Mon Sep 17 00:00:00 2001
-From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
-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 <laszlo.agocs@qt.io>
-Reviewed-by: David Edmundson <davidedmundson@kde.org>
-(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/qtwayland-5.15.3.ebuild b/dev-qt/qtwayland/qtwayland-5.15.3.ebuild
index bf1a290f2e8f..148e79fc7b31 100644
--- a/dev-qt/qtwayland/qtwayland-5.15.3.ebuild
+++ b/dev-qt/qtwayland/qtwayland-5.15.3.ebuild
@@ -33,7 +33,7 @@ BDEPEND="
 	dev-util/wayland-scanner
 "
 
-PATCHES=( "${FILESDIR}/${P}-QTBUG-90037-QTBUG-91264.patch" ) # upstream pending
+PATCHES=( "${FILESDIR}/${PN}-5.15.2-QTBUG-90037-QTBUG-91264.patch" ) # upstream pending
 
 src_configure() {
 	local myqmakeargs=(


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2022-01-22 12:20 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2022-01-22 12:20 UTC (permalink / raw
  To: gentoo-commits

commit:     16ef3978955c80e44daf8ccfb2c68463d4aefede
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 22 12:04:42 2022 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Jan 22 12:05:44 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=16ef3978

dev-qt/qtwayland: Drop 5.15.2-r16

Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 dev-qt/qtwayland/Manifest                          |  1 -
 ...-fix-crash-when-iterating-through-outputs.patch | 36 ----------------
 dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild       | 48 ----------------------
 3 files changed, 85 deletions(-)

diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
index 343c801c49a2..b5b66bd5c2dd 100644
--- a/dev-qt/qtwayland/Manifest
+++ b/dev-qt/qtwayland/Manifest
@@ -1,3 +1,2 @@
 DIST qtwayland-5.15.2-4644d51f.tar.gz 831697 BLAKE2B c3d60416ef71030018918ec5157122e2585d270d5aa1a74d66874a33f14f0c4ac85da5a1dd7bfb422a1090f79e5d2c08763c68fe724416b34bad16f945d1740c SHA512 e350396e9bdfa6f0fda938af74c722792d50473eb3d786442ba11919e7801f0cd8d045916c8e49d8a63ffd966376cb74e7cc1c3d4d1732e71061fb8343a497d3
 DIST qtwayland-5.15.2-867540b9.tar.gz 830061 BLAKE2B b831288d6a3e671631b4df00eb1edb72e35128f3ed5a73983b3e15193f554fddcd0337deb832d44b795d2e37f0601fe35b8b0fcb5986bcc44154d172f3a54193 SHA512 b834802811d9f65559ef5e7468189b53c666e390aa09edeb490e5fee2dece13082b11da0f8b5924b89f7dc8e1eba375a485940f4dfbf0445f3d1e96033e33f24
-DIST qtwayland-5.15.2-eb422ab5.tar.gz 829140 BLAKE2B e913e481741b23873a88db32896c7f3445a2ddee2dc9cfdf8e132fdd79021de369506e32ce9ed50977fb1c42d624169b7d67c9247f7609276e699e5ab3a9462e SHA512 b5094b00feab5909b4de6382a3633fc321d5f5fbc34e4cbde1f364123b24990df95cef5c34a90f73dca67b0578e0da71b894f771ebbd8d152dcdc71b114d9773

diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-crash-when-iterating-through-outputs.patch b/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-crash-when-iterating-through-outputs.patch
deleted file mode 100644
index cf37737e0226..000000000000
--- a/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-crash-when-iterating-through-outputs.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 46ed85a80b28d519cf5887bbdce55d1bf57886c3 Mon Sep 17 00:00:00 2001
-From: David Edmundson <davidedmundson@kde.org>
-Date: Sun, 14 Nov 2021 13:54:19 +0000
-Subject: [PATCH] Client: Avoid processing of events when showing windows
-
-The only time we want to dispatch events from the wayland socket is when
-the application is waiting for external events. Doing so at any other
-time will cause unpredictable behavior in client code.
-
-This caused a crash downstream where we had outputs get altered whilst
-itterating through outputs, which shouldn't happen.
-
-There is no benefit to flushing here, it won't make anything appear
-faster as we haven't attached the buffer yet.
-
-Change-Id: Ie13eae4012dab96a93d8810f468d1343402b8c28
-Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
----
- src/client/qwaylandwindow.cpp | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
-index 635c92a08..b0d1c0d1c 100644
---- a/src/client/qwaylandwindow.cpp
-+++ b/src/client/qwaylandwindow.cpp
-@@ -477,7 +477,6 @@ void QWaylandWindow::setVisible(bool visible)
-         if (window()->type() == Qt::Popup || window()->type() == Qt::ToolTip)
-             activePopups << this;
-         initWindow();
--        mDisplay->flushRequests();
- 
-         setGeometry(windowGeometry());
-         // Don't flush the events here, or else the newly visible window may start drawing, but since
--- 
-2.16.3

diff --git a/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild b/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild
deleted file mode 100644
index cb1a79288c53..000000000000
--- a/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-KDE_ORG_COMMIT=eb422ab5e07498a7a8d086f6a942ee35ab3c9776
-inherit qt5-build
-
-DESCRIPTION="Wayland platform plugin for Qt"
-SLOT=5/${QT5_PV} # bug 815646
-
-if [[ ${QT5_BUILD_TYPE} == release ]]; then
-	KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
-fi
-
-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}-fix-crash-when-iterating-through-outputs.patch # KDE-bug 438839
-)
-
-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
-}


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2021-12-10 13:19 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2021-12-10 13:19 UTC (permalink / raw
  To: gentoo-commits

commit:     7e09ceab8329a85fe65c439afb94d85f68c8d53e
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 10 12:51:05 2021 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Fri Dec 10 13:19:02 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e09ceab

dev-qt/qtwayland: Try to fix crashes on monitor disconnects

See also: https://codereview.qt-project.org/c/qt/qtwayland/+/381271
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=438839#c53
Package-Manager: Portage-3.0.29, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 ...-fix-crash-when-iterating-through-outputs.patch | 36 ++++++++++++++++++++++
 dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild       |  4 +++
 2 files changed, 40 insertions(+)

diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-crash-when-iterating-through-outputs.patch b/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-crash-when-iterating-through-outputs.patch
new file mode 100644
index 000000000000..cf37737e0226
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.15.2-fix-crash-when-iterating-through-outputs.patch
@@ -0,0 +1,36 @@
+From 46ed85a80b28d519cf5887bbdce55d1bf57886c3 Mon Sep 17 00:00:00 2001
+From: David Edmundson <davidedmundson@kde.org>
+Date: Sun, 14 Nov 2021 13:54:19 +0000
+Subject: [PATCH] Client: Avoid processing of events when showing windows
+
+The only time we want to dispatch events from the wayland socket is when
+the application is waiting for external events. Doing so at any other
+time will cause unpredictable behavior in client code.
+
+This caused a crash downstream where we had outputs get altered whilst
+itterating through outputs, which shouldn't happen.
+
+There is no benefit to flushing here, it won't make anything appear
+faster as we haven't attached the buffer yet.
+
+Change-Id: Ie13eae4012dab96a93d8810f468d1343402b8c28
+Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
+Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
+---
+ src/client/qwaylandwindow.cpp | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
+index 635c92a08..b0d1c0d1c 100644
+--- a/src/client/qwaylandwindow.cpp
++++ b/src/client/qwaylandwindow.cpp
+@@ -477,7 +477,6 @@ void QWaylandWindow::setVisible(bool visible)
+         if (window()->type() == Qt::Popup || window()->type() == Qt::ToolTip)
+             activePopups << this;
+         initWindow();
+-        mDisplay->flushRequests();
+ 
+         setGeometry(windowGeometry());
+         // Don't flush the events here, or else the newly visible window may start drawing, but since
+-- 
+2.16.3

diff --git a/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild b/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild
index 528a0d8a1745..60bd8391f0d6 100644
--- a/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild
+++ b/dev-qt/qtwayland/qtwayland-5.15.2-r16.ebuild
@@ -33,6 +33,10 @@ BDEPEND="
 	dev-util/wayland-scanner
 "
 
+PATCHES=(
+	"${FILESDIR}"/${P}-fix-crash-when-iterating-through-outputs.patch # KDE-bug 438839
+)
+
 src_configure() {
 	local myqmakeargs=(
 		--


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2021-01-07 16:31 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2021-01-07 16:31 UTC (permalink / raw
  To: gentoo-commits

commit:     df09d077cf4b5361c6d9e8c7da213cb46206e4a5
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Jan  7 15:23:57 2021 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu Jan  7 16:30:32 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=df09d077

dev-qt/qtwayland: Scanner: Avoid dangling pointers in destroy_func()

See also: https://mail.kde.org/pipermail/plasma-devel/2021-January/119115.html

Package-Manager: Portage-3.0.12, Repoman-3.0.2
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 ...-qtwaylandscanner-avoid-dangling-pointers.patch | 35 ++++++++++++++++++
 dev-qt/qtwayland/qtwayland-5.15.2-r1.ebuild        | 41 ++++++++++++++++++++++
 2 files changed, 76 insertions(+)

diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.2-qtwaylandscanner-avoid-dangling-pointers.patch b/dev-qt/qtwayland/files/qtwayland-5.15.2-qtwaylandscanner-avoid-dangling-pointers.patch
new file mode 100644
index 00000000000..0799cb1a202
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.15.2-qtwaylandscanner-avoid-dangling-pointers.patch
@@ -0,0 +1,35 @@
+From 735164b5c2a2637a8d53a8803a2401e4ef477ff0 Mon Sep 17 00:00:00 2001
+From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
+Date: Fri, 30 Oct 2020 16:55:30 +0200
+Subject: [PATCH] Scanner: Avoid accessing dangling pointers in destroy_func()
+
+Usually, the object associated with the resource gets destroyed in the
+destroy_resource() function.
+
+Therefore, we need to double-check that the object is still alive before
+trying to reset its m_resource.
+
+Pick-to: 5.15
+Change-Id: I26408228f58919db17eb29584a1cbd4a9427d25c
+Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
+---
+ src/qtwaylandscanner/qtwaylandscanner.cpp | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/qtwaylandscanner/qtwaylandscanner.cpp b/src/qtwaylandscanner/qtwaylandscanner.cpp
+index 1a1f8bf16..450ef519d 100644
+--- a/src/qtwaylandscanner/qtwaylandscanner.cpp
++++ b/src/qtwaylandscanner/qtwaylandscanner.cpp
+@@ -814,7 +814,9 @@ bool Scanner::process()
+             printf("        if (Q_LIKELY(that)) {\n");
+             printf("            that->m_resource_map.remove(resource->client(), resource);\n");
+             printf("            that->%s_destroy_resource(resource);\n", interfaceNameStripped);
+-            printf("            if (that->m_resource == resource)\n");
++            printf("\n");
++            printf("            that = resource->%s_object;\n", interfaceNameStripped);
++            printf("            if (that && that->m_resource == resource)\n");
+             printf("                that->m_resource = nullptr;\n");
+             printf("        }\n");
+             printf("        delete resource;\n");
+-- 
+2.16.3

diff --git a/dev-qt/qtwayland/qtwayland-5.15.2-r1.ebuild b/dev-qt/qtwayland/qtwayland-5.15.2-r1.ebuild
new file mode 100644
index 00000000000..ea32d4ffc9c
--- /dev/null
+++ b/dev-qt/qtwayland/qtwayland-5.15.2-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit qt5-build
+
+DESCRIPTION="Wayland platform plugin for Qt"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+	KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+IUSE="vulkan X"
+
+DEPEND="
+	>=dev-libs/wayland-1.6.0
+	~dev-qt/qtcore-${PV}
+	~dev-qt/qtdeclarative-${PV}
+	~dev-qt/qtgui-${PV}[egl,libinput,vulkan=]
+	media-libs/mesa[egl]
+	>=x11-libs/libxkbcommon-0.2.0
+	vulkan? ( dev-util/vulkan-headers )
+	X? (
+		~dev-qt/qtgui-${PV}[-gles2-only]
+		x11-libs/libX11
+		x11-libs/libXcomposite
+	)
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-qtwaylandscanner-avoid-dangling-pointers.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
+}


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2019-12-18 15:41 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2019-12-18 15:41 UTC (permalink / raw
  To: gentoo-commits

commit:     5433f2def6a70a0c0fedc1581ce0727ec1ef3595
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 18 15:41:22 2019 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Dec 18 15:41:37 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5433f2de

dev-qt/qtwayland: Use final upstream patch

Package-Manager: Portage-2.3.82, Repoman-2.3.20
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../qtwayland-5.14.0-fix-linuxdmabuf-build.patch   | 31 ++++++++++++++++++++++
 dev-qt/qtwayland/qtwayland-5.14.0.ebuild           |  4 ++-
 2 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/dev-qt/qtwayland/files/qtwayland-5.14.0-fix-linuxdmabuf-build.patch b/dev-qt/qtwayland/files/qtwayland-5.14.0-fix-linuxdmabuf-build.patch
new file mode 100644
index 00000000000..7040a68a1b8
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.14.0-fix-linuxdmabuf-build.patch
@@ -0,0 +1,31 @@
+From c2105d8b7e16cc934b886537968228f6300bf4bc Mon Sep 17 00:00:00 2001
+From: Johan Klokkhammer Helsing <johan.helsing@qt.io>
+Date: Fri, 8 Nov 2019 13:58:04 +0100
+Subject: [PATCH] Fix compilation of linuxdmabuf compositor plugin
+
+Mesa's eglext.h no longer includes eglmesaext.h, so copy over the typedefs we need.
+
+Fixes: QTBUG-79709
+Change-Id: I3190ef56e0e162636efea440dff7e760cf11fcd0
+Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
+---
+ .../compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h                 | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h b/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h
+index 8554721e1..02b5b6f88 100644
+--- a/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h
++++ b/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h
+@@ -58,6 +58,10 @@
+ #define DRM_FORMAT_MOD_INVALID  fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
+ #endif
+ 
++// Copied from eglmesaext.h
++typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
++typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
++
+ QT_BEGIN_NAMESPACE
+ 
+ class QWaylandCompositor;
+-- 
+2.16.3

diff --git a/dev-qt/qtwayland/qtwayland-5.14.0.ebuild b/dev-qt/qtwayland/qtwayland-5.14.0.ebuild
index 921cad2b4aa..9f283811681 100644
--- a/dev-qt/qtwayland/qtwayland-5.14.0.ebuild
+++ b/dev-qt/qtwayland/qtwayland-5.14.0.ebuild
@@ -26,7 +26,9 @@ DEPEND="
 "
 RDEPEND="${DEPEND}"
 
-PATCHES=( "${FILESDIR}/${PN}-5.13.2-fix-linuxdmabuf-build.patch" )
+PATCHES=(
+	"${FILESDIR}/${P}-fix-linuxdmabuf-build.patch" # bug 699190, QTBUG-79709
+)
 
 src_prepare() {
 	qt_use_disable_config libinput xkbcommon-evdev \


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/
@ 2019-11-20 21:21 Andreas Sturmlechner
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Sturmlechner @ 2019-11-20 21:21 UTC (permalink / raw
  To: gentoo-commits

commit:     67717e9236ac04143c28b36b41acb39a3e9dc5c0
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 16 10:56:29 2019 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Nov 20 21:20:41 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67717e92

dev-qt/qtwayland: Fix touch ignored if down and motion in same frame

Package-Manager: Portage-2.3.79, Repoman-2.3.17
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/qtwayland-5.13.2-fix-touch-ignored.patch | 36 +++++++++++++++++
 dev-qt/qtwayland/qtwayland-5.13.2-r1.ebuild        | 47 ++++++++++++++++++++++
 2 files changed, 83 insertions(+)

diff --git a/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-touch-ignored.patch b/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-touch-ignored.patch
new file mode 100644
index 00000000000..4a33d97bf17
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-touch-ignored.patch
@@ -0,0 +1,36 @@
+From 57c28f461a066c03ef8ae3f823c040fa91876fb8 Mon Sep 17 00:00:00 2001
+From: Johan Klokkhammer Helsing <johan.helsing@qt.io>
+Date: Mon, 4 Nov 2019 14:21:18 +0100
+Subject: [PATCH] Fix touch being ignored when down and motion are in the same
+ frame
+
+The Wayland protocol gives no guarantees about which events are part of a
+frame, so handle the case where we receive wl_touch.down and wl_touch.motion
+within the same frame.
+
+Fixes: QTBUG-79744
+Change-Id: I5dd9302576d81da38e003c8e7e74da6a98def603
+Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
+---
+ src/client/qwaylandinputdevice.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
+index 8f3df8e4d..193ce714b 100644
+--- a/src/client/qwaylandinputdevice.cpp
++++ b/src/client/qwaylandinputdevice.cpp
+@@ -1062,7 +1062,10 @@ void QWaylandInputDevice::handleTouchPoint(int id, Qt::TouchPointState state, co
+         tp.area.moveCenter(globalPosition);
+     }
+ 
+-    tp.state = state;
++    // If the touch point was pressed earlier this frame, we don't want to overwrite its state.
++    if (tp.state != Qt::TouchPointPressed)
++        tp.state = state;
++
+     tp.pressure = tp.state == Qt::TouchPointReleased ? 0 : 1;
+ }
+ 
+-- 
+2.16.3
+

diff --git a/dev-qt/qtwayland/qtwayland-5.13.2-r1.ebuild b/dev-qt/qtwayland/qtwayland-5.13.2-r1.ebuild
new file mode 100644
index 00000000000..23b38b6f8d7
--- /dev/null
+++ b/dev-qt/qtwayland/qtwayland-5.13.2-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit qt5-build
+
+DESCRIPTION="Wayland platform plugin for Qt"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+	KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~x86"
+fi
+
+IUSE="+libinput xcomposite"
+
+DEPEND="
+	>=dev-libs/wayland-1.6.0
+	~dev-qt/qtcore-${PV}
+	~dev-qt/qtdeclarative-${PV}
+	~dev-qt/qtgui-${PV}[egl,libinput=]
+	media-libs/mesa[egl]
+	>=x11-libs/libxkbcommon-0.2.0
+	xcomposite? (
+		x11-libs/libX11
+		x11-libs/libXcomposite
+	)
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+	"${FILESDIR}/${P}-fix-touch-ignored.patch" # QTBUG-79744
+)
+
+src_prepare() {
+	qt_use_disable_config libinput xkbcommon-evdev \
+		src/client/client.pro \
+		src/compositor/wayland_wrapper/wayland_wrapper.pri \
+		src/plugins/shellintegration/ivi-shell/ivi-shell.pro \
+		src/plugins/shellintegration/wl-shell/wl-shell.pro \
+		src/plugins/shellintegration/xdg-shell/xdg-shell.pro \
+		src/plugins/shellintegration/xdg-shell-v5/xdg-shell-v5.pro \
+		src/plugins/shellintegration/xdg-shell-v6/xdg-shell-v6.pro \
+		tests/auto/compositor/compositor/compositor.pro
+
+	use xcomposite || rm -r config.tests/xcomposite || die
+
+	qt5-build_src_prepare
+}


^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2024-10-08 17:46 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-21 11:04 [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwayland/, dev-qt/qtwayland/files/ Andreas Sturmlechner
  -- strict thread matches above, loose matches on Subject: below --
2024-10-08 17:46 Ionen Wolkens
2024-07-16 17:55 Ionen Wolkens
2023-11-15 19:28 Ionen Wolkens
2023-08-17 23:21 Ionen Wolkens
2023-08-16 16:31 Andreas Sturmlechner
2023-08-08 20:22 Andreas Sturmlechner
2023-06-13 11:42 Andreas Sturmlechner
2023-03-09 15:02 Andreas Sturmlechner
2023-03-08 11:07 Andreas Sturmlechner
2022-04-17 19:29 Sam James
2022-03-21 11:27 Andreas Sturmlechner
2022-01-22 12:20 Andreas Sturmlechner
2021-12-10 13:19 Andreas Sturmlechner
2021-01-07 16:31 Andreas Sturmlechner
2019-12-18 15:41 Andreas Sturmlechner
2019-11-20 21:21 Andreas Sturmlechner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox