diff --git a/0001-Client-Remove-mWaitingForUpdateDelivery.patch b/0001-Client-Remove-mWaitingForUpdateDelivery.patch deleted file mode 100644 index b2a9d36..0000000 --- a/0001-Client-Remove-mWaitingForUpdateDelivery.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 78b517296568e4cd960ef4e13001d1200ad33e01 Mon Sep 17 00:00:00 2001 -From: Vlad Zahorodnii -Date: Tue, 1 Feb 2022 13:05:36 +0200 -Subject: [PATCH 1/3] Client: Remove mWaitingForUpdateDelivery - -Currently, mWaitingForUpdateDelivery is shared between the main thread -(doHandleFrameCallback()) and the frame callback event thread -(handleFrameCallback()), however the access to it is not synchronized -between neither both threads. On the other hand, QWaylandWindow -already ensures not to create a frame callback if there's already one -pending. - -This change removes mWaitingForUpdateDelivery flag because it should be -already covered by mWaitingForFrameCallback and to remove unsynchronized -shared state between threads. - -Change-Id: I0e5a25d18d1e66c4d7683e7e972330c4d7cbbf38 ---- - src/client/qwaylandwindow.cpp | 29 ++++++++++++----------------- - src/client/qwaylandwindow_p.h | 1 - - 2 files changed, 12 insertions(+), 18 deletions(-) - -diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp -index acfe390e..30ae5345 100644 ---- a/src/client/qwaylandwindow.cpp -+++ b/src/client/qwaylandwindow.cpp -@@ -638,23 +638,18 @@ void QWaylandWindow::handleFrameCallback() - mFrameCallbackElapsedTimer.invalidate(); - - // The rest can wait until we can run it on the correct thread -- if (!mWaitingForUpdateDelivery) { -- auto doHandleExpose = [this]() { -- bool wasExposed = isExposed(); -- mFrameCallbackTimedOut = false; -- if (!wasExposed && isExposed()) // Did setting mFrameCallbackTimedOut make the window exposed? -- sendExposeEvent(QRect(QPoint(), geometry().size())); -- if (wasExposed && hasPendingUpdateRequest()) -- deliverUpdateRequest(); -- -- mWaitingForUpdateDelivery = false; -- }; -- -- // Queued connection, to make sure we don't call handleUpdate() from inside waitForFrameSync() -- // in the single-threaded case. -- mWaitingForUpdateDelivery = true; -- QMetaObject::invokeMethod(this, doHandleExpose, Qt::QueuedConnection); -- } -+ auto doHandleExpose = [this]() { -+ bool wasExposed = isExposed(); -+ mFrameCallbackTimedOut = false; -+ if (!wasExposed && isExposed()) // Did setting mFrameCallbackTimedOut make the window exposed? -+ sendExposeEvent(QRect(QPoint(), geometry().size())); -+ if (wasExposed && hasPendingUpdateRequest()) -+ deliverUpdateRequest(); -+ }; -+ -+ // Queued connection, to make sure we don't call handleUpdate() from inside waitForFrameSync() -+ // in the single-threaded case. -+ QMetaObject::invokeMethod(this, doHandleExpose, Qt::QueuedConnection); - - mFrameSyncWait.notify_all(); - } -diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h -index d45980a8..3ff68ccb 100644 ---- a/src/client/qwaylandwindow_p.h -+++ b/src/client/qwaylandwindow_p.h -@@ -228,7 +228,6 @@ protected: - WId mWindowId; - bool mWaitingForFrameCallback = false; - bool mFrameCallbackTimedOut = false; // Whether the frame callback has timed out -- bool mWaitingForUpdateDelivery = false; - int mFrameCallbackCheckIntervalTimerId = -1; - QElapsedTimer mFrameCallbackElapsedTimer; - struct ::wl_callback *mFrameCallback = nullptr; --- -2.34.0 - diff --git a/0001-Use-proper-dependencies-in-compile-tests.patch b/0001-Use-proper-dependencies-in-compile-tests.patch deleted file mode 100644 index f98d2e5..0000000 --- a/0001-Use-proper-dependencies-in-compile-tests.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 95bdca4b2ff43205f0666a5beda124d8ca326954 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Fri, 4 Feb 2022 11:07:36 +0100 -Subject: [PATCH] Use proper dependencies in compile tests - -Use the dependencies as found by the "libraries" section instead of relying -on them being available in the default location (e.g. "-ldrm"). - -Additionally, VK_USE_PLATFORM_WAYLAND_KHR requires , so -add the wayland-client dependency. - -This fixes those tests if e.g. wayland-client headers need to be found through -pkgconfig. ---- - 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" - } - }, - --- -2.34.0 - diff --git a/_servicedata b/_servicedata index 23b4772..e21b11d 100644 --- a/_servicedata +++ b/_servicedata @@ -1,4 +1,4 @@ https://invent.kde.org/qt/qt/qtwayland.git - 4644d51f4b52e83fc1b4d02b380d80d9d57e76fa \ No newline at end of file + 8f0c9169310344c8f179311bae446239cdb61f68 \ No newline at end of file diff --git a/libqt5-qtwayland.changes b/libqt5-qtwayland.changes index 4bdc935..5d96e1e 100644 --- a/libqt5-qtwayland.changes +++ b/libqt5-qtwayland.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Tue Feb 22 15:32:53 UTC 2022 - Fabian Vogt + +- Update to version 5.15.2+kde54: + * Use proper dependencies in compile tests + * Client: Fix opaque region setter + * client: Simplify round trip behavior (boo#1196302) + * Update the preedit styling mapping + * Cursor position == 0 should still show the cursor + * Client: Remove mWaitingForUpdateDelivery + * Fix crash if no input method module could be loaded + * Use wl_surface.damage_buffer on the client side + * Do not create decorations when the shellSurface is not ready + * Check pointer for null before use in ASSERT +- Drop patches, now upstream: + * 0001-Client-Remove-mWaitingForUpdateDelivery.patch + * 0001-Use-proper-dependencies-in-compile-tests.patch + ------------------------------------------------------------------- Thu Feb 3 16:51:41 UTC 2022 - Fabian Vogt diff --git a/libqt5-qtwayland.spec b/libqt5-qtwayland.spec index 8a7104a..2ec95f1 100644 --- a/libqt5-qtwayland.spec +++ b/libqt5-qtwayland.spec @@ -26,7 +26,7 @@ %define so_version 5.15.2 %define tar_version qtwayland-everywhere-src-%{version} Name: libqt5-qtwayland -Version: 5.15.2+kde44 +Version: 5.15.2+kde54 Release: 0 Summary: Qt 5 Wayland Addon # The wayland compositor files are GPL-3.0-or-later @@ -37,14 +37,10 @@ Source: %{tar_version}.tar.xz Source1: baselibs.conf # PATCH-FIX-OPENSUSE Patch1: 0001-Revert-Bump-version.patch -# PATCH-FIX-UPSTREAM https://codereview.qt-project.org/c/qt/qtwayland/+/393273 -Patch2: 0001-Client-Remove-mWaitingForUpdateDelivery.patch # https://codereview.qt-project.org/c/qt/qtwayland/+/393828/1 Patch3: 0002-Guard-mResizeDirty-by-the-correctMutex.patch # https://codereview.qt-project.org/c/qt/qtwayland/+/393826/1 Patch4: 0003-Fix-up-mutexes-for-frame-callbacks.patch -# To be sent upstream -Patch10: 0001-Use-proper-dependencies-in-compile-tests.patch BuildRequires: fdupes BuildRequires: libqt5-qtbase-private-headers-devel >= %{real_version} BuildRequires: libqt5-qtdeclarative-private-headers-devel >= %{real_version} diff --git a/qtwayland-everywhere-src-5.15.2+kde44.obscpio b/qtwayland-everywhere-src-5.15.2+kde44.obscpio deleted file mode 100644 index 907433b..0000000 --- a/qtwayland-everywhere-src-5.15.2+kde44.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aaf9f796ebb53d93f871e25097797360ab185614ae7ee88b9aa50ecd2b36c369 -size 4691468 diff --git a/qtwayland-everywhere-src-5.15.2+kde54.obscpio b/qtwayland-everywhere-src-5.15.2+kde54.obscpio new file mode 100644 index 0000000..3405579 --- /dev/null +++ b/qtwayland-everywhere-src-5.15.2+kde54.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a85a954605f8d6677f8011750fb5f8f024e1c7b1de9d1e53d5dab2d769ddaf4 +size 4691980 diff --git a/qtwayland-everywhere-src.obsinfo b/qtwayland-everywhere-src.obsinfo index 390ebe5..69b7552 100644 --- a/qtwayland-everywhere-src.obsinfo +++ b/qtwayland-everywhere-src.obsinfo @@ -1,5 +1,4 @@ name: qtwayland-everywhere-src -version: 5.15.2+kde44 -mtime: 1642608988 -commit: 4644d51f4b52e83fc1b4d02b380d80d9d57e76fa - +version: 5.15.2+kde54 +mtime: 1645543848 +commit: 8f0c9169310344c8f179311bae446239cdb61f68