Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-kwindowsystem for 
openSUSE:Factory checked in at 2026-02-16 13:04:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kwindowsystem (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-kwindowsystem.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-kwindowsystem"

Mon Feb 16 13:04:28 2026 rev:24 rq:1332960 version:6.23.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-kwindowsystem/kf6-kwindowsystem.changes      
2026-01-12 10:17:18.619597830 +0100
+++ 
/work/SRC/openSUSE:Factory/.kf6-kwindowsystem.new.1977/kf6-kwindowsystem.changes
    2026-02-16 13:07:18.197008015 +0100
@@ -1,0 +2,14 @@
+Fri Feb  6 14:26:01 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.23.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.23.0
+- Changes since 6.22.0:
+  * Update dependency version to 6.23.0
+  * Enable LSAN in CI
+  * platforms/wayland: Avoid destroying proxy objects when QPA is gone 
(kde#487660)
+  * Fix KWindowSystem::updateStartupId on wayland
+  * Update version to 6.23.0
+
+-------------------------------------------------------------------

Old:
----
  kwindowsystem-6.22.0.tar.xz
  kwindowsystem-6.22.0.tar.xz.sig

New:
----
  kwindowsystem-6.23.0.tar.xz
  kwindowsystem-6.23.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kf6-kwindowsystem.spec ++++++
--- /var/tmp/diff_new_pack.LMX2tQ/_old  2026-02-16 13:07:19.637067706 +0100
+++ /var/tmp/diff_new_pack.LMX2tQ/_new  2026-02-16 13:07:19.641067872 +0100
@@ -19,11 +19,11 @@
 %define qt6_version 6.8.0
 
 %define rname kwindowsystem
-# Full KF6 version (e.g. 6.22.0)
+# Full KF6 version (e.g. 6.23.0)
 %{!?_kf6_version: %global _kf6_version %{version}}
 %bcond_without released
 Name:           kf6-kwindowsystem
-Version:        6.22.0
+Version:        6.23.0
 Release:        0
 Summary:        KDE Access to window manager
 License:        LGPL-2.1-or-later


++++++ kwindowsystem-6.22.0.tar.xz -> kwindowsystem-6.23.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-6.22.0/.kde-ci.yml 
new/kwindowsystem-6.23.0/.kde-ci.yml
--- old/kwindowsystem-6.22.0/.kde-ci.yml        2026-01-02 18:44:54.000000000 
+0100
+++ new/kwindowsystem-6.23.0/.kde-ci.yml        2026-02-06 13:17:59.000000000 
+0100
@@ -11,3 +11,4 @@
 Options:
  test-before-installing: True
  require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows']
+ enable-lsan: True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-6.22.0/CMakeLists.txt 
new/kwindowsystem-6.23.0/CMakeLists.txt
--- old/kwindowsystem-6.22.0/CMakeLists.txt     2026-01-02 18:44:54.000000000 
+0100
+++ new/kwindowsystem-6.23.0/CMakeLists.txt     2026-02-06 13:17:59.000000000 
+0100
@@ -1,11 +1,11 @@
-cmake_minimum_required(VERSION 3.16)
+cmake_minimum_required(VERSION 3.27)
 
-set(KF_VERSION "6.22.0") # handled by release scripts
+set(KF_VERSION "6.23.0") # handled by release scripts
 project(KWindowSystem VERSION ${KF_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 6.22.0  NO_MODULE)
+find_package(ECM 6.23.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-6.22.0/src/kwindowsystem.cpp 
new/kwindowsystem-6.23.0/src/kwindowsystem.cpp
--- old/kwindowsystem-6.22.0/src/kwindowsystem.cpp      2026-01-02 
18:44:54.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/kwindowsystem.cpp      2026-02-06 
13:17:59.000000000 +0100
@@ -173,17 +173,10 @@
         if (!startupId.isEmpty()) {
             KStartupInfo::setNewStartupId(window, startupId);
         }
-    } else
+    }
 #else
     Q_UNUSED(window);
 #endif
-    if (isPlatformWayland()) {
-        const QString token = qEnvironmentVariable("XDG_ACTIVATION_TOKEN");
-        if (!token.isEmpty()) {
-            setCurrentXdgActivationToken(token);
-            qunsetenv("XDG_ACTIVATION_TOKEN");
-        }
-    }
     // clang-format on
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-6.22.0/src/platforms/wayland/helpers.h 
new/kwindowsystem-6.23.0/src/platforms/wayland/helpers.h
--- old/kwindowsystem-6.22.0/src/platforms/wayland/helpers.h    1970-01-01 
01:00:00.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/platforms/wayland/helpers.h    2026-02-06 
13:17:59.000000000 +0100
@@ -0,0 +1,72 @@
+/*
+    SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <[email protected]>
+
+    SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+
+#pragma once
+
+#include <QWindow>
+
+#include <QGuiApplication>
+#include <QVersionNumber>
+
+#include <qpa/qplatformnativeinterface.h>
+
+struct wl_surface;
+struct xdg_toplevel;
+
+inline wl_surface *surfaceForWindow(QWindow *window)
+{
+    if (!window) {
+        return nullptr;
+    }
+
+    QPlatformNativeInterface *native = qGuiApp->platformNativeInterface();
+    if (!native) {
+        return nullptr;
+    }
+
+    // NotificationWindow incorrectly relied on a side effect of an older 
version of this class
+    // In order to remain bug-compatiable, with that older usage, this is
+    // it can be dropped when we no longer support 6.3.0 or 6.3.1
+    static bool isBuggyPlasma =
+        qApp->applicationName() == QLatin1String("plasmashell") && 
QVersionNumber::fromString(qApp->applicationVersion()) < QVersionNumber(6, 3, 
4);
+
+    if (isBuggyPlasma) {
+        window->create();
+    }
+
+    return reinterpret_cast<wl_surface 
*>(native->nativeResourceForWindow(QByteArrayLiteral("surface"), window));
+}
+
+inline xdg_toplevel *xdgToplevelForWindow(QWindow *window)
+{
+    if (!window) {
+        return nullptr;
+    }
+
+    QPlatformNativeInterface *native = qGuiApp->platformNativeInterface();
+    if (!native) {
+        return nullptr;
+    }
+
+    return reinterpret_cast<xdg_toplevel 
*>(native->nativeResourceForWindow(QByteArrayLiteral("xdg_toplevel"), window));
+}
+
+/*!
+ * \internal
+ *
+ * Some objects are children of the application object and therefore they are 
deleted after the QPA.
+ *
+ * The problem is that the wl_display object will be gone after the QPA is 
shut down. This can make the
+ * app crash when it attempts to clean up its proxy objects. The wl_proxy 
memory won't be released by
+ * wl_display_disconnect(), but wl_proxy objects will contain dangling display 
pointers.
+ *
+ * We need something better, but as of now, there is not a lot to work with. 
If you know that an object
+ * will live as long as the app, you may need to use this function before 
calling the destructor request.
+ */
+inline bool isQpaAlive()
+{
+    return qGuiApp;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-6.22.0/src/platforms/wayland/shm.cpp 
new/kwindowsystem-6.23.0/src/platforms/wayland/shm.cpp
--- old/kwindowsystem-6.22.0/src/platforms/wayland/shm.cpp      2026-01-02 
18:44:54.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/platforms/wayland/shm.cpp      2026-02-06 
13:17:59.000000000 +0100
@@ -6,6 +6,7 @@
 */
 
 #include "shm.h"
+#include "helpers.h"
 
 #include <QGuiApplication>
 #include <QImage>
@@ -25,7 +26,9 @@
 
 ShmBuffer::~ShmBuffer()
 {
-    destroy();
+    if (isQpaAlive()) {
+        destroy();
+    }
 }
 
 Shm::Shm(QObject *parent)
@@ -48,7 +51,7 @@
 
 Shm::~Shm() noexcept
 {
-    if (isActive()) {
+    if (isQpaAlive() && isActive()) {
         wl_shm_destroy(object());
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-6.22.0/src/platforms/wayland/surfacehelper.h 
new/kwindowsystem-6.23.0/src/platforms/wayland/surfacehelper.h
--- old/kwindowsystem-6.22.0/src/platforms/wayland/surfacehelper.h      
2026-01-02 18:44:54.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/platforms/wayland/surfacehelper.h      
1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
-/*
-    SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <[email protected]>
-
-    SPDX-License-Identifier: LGPL-2.0-or-later
-*/
-
-#pragma once
-
-#include <QWindow>
-
-#include <QGuiApplication>
-#include <QVersionNumber>
-
-#include <qpa/qplatformnativeinterface.h>
-
-struct wl_surface;
-struct xdg_toplevel;
-
-inline wl_surface *surfaceForWindow(QWindow *window)
-{
-    if (!window) {
-        return nullptr;
-    }
-
-    QPlatformNativeInterface *native = qGuiApp->platformNativeInterface();
-    if (!native) {
-        return nullptr;
-    }
-
-    // NotificationWindow incorrectly relied on a side effect of an older 
version of this class
-    // In order to remain bug-compatiable, with that older usage, this is
-    // it can be dropped when we no longer support 6.3.0 or 6.3.1
-    static bool isBuggyPlasma =
-        qApp->applicationName() == QLatin1String("plasmashell") && 
QVersionNumber::fromString(qApp->applicationVersion()) < QVersionNumber(6, 3, 
4);
-
-    if (isBuggyPlasma) {
-        window->create();
-    }
-
-    return reinterpret_cast<wl_surface 
*>(native->nativeResourceForWindow(QByteArrayLiteral("surface"), window));
-}
-
-inline xdg_toplevel *xdgToplevelForWindow(QWindow *window)
-{
-    if (!window) {
-        return nullptr;
-    }
-
-    QPlatformNativeInterface *native = qGuiApp->platformNativeInterface();
-    if (!native) {
-        return nullptr;
-    }
-
-    return reinterpret_cast<xdg_toplevel 
*>(native->nativeResourceForWindow(QByteArrayLiteral("xdg_toplevel"), window));
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-6.22.0/src/platforms/wayland/waylandxdgactivationv1.cpp 
new/kwindowsystem-6.23.0/src/platforms/wayland/waylandxdgactivationv1.cpp
--- old/kwindowsystem-6.22.0/src/platforms/wayland/waylandxdgactivationv1.cpp   
2026-01-02 18:44:54.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/platforms/wayland/waylandxdgactivationv1.cpp   
2026-02-06 13:17:59.000000000 +0100
@@ -4,8 +4,8 @@
     SPDX-License-Identifier: LGPL-2.0-or-later
 */
 
+#include "helpers.h"
 #include "waylandxdgactivationv1_p.h"
-#include <QGuiApplication>
 
 WaylandXdgActivationV1::WaylandXdgActivationV1()
     : QWaylandClientExtensionTemplate<WaylandXdgActivationV1>(1)
@@ -15,7 +15,7 @@
 
 WaylandXdgActivationV1::~WaylandXdgActivationV1()
 {
-    if (qGuiApp && isActive()) {
+    if (isQpaAlive() && isActive()) {
         destroy();
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-6.22.0/src/platforms/wayland/waylandxdgdialogv1.cpp 
new/kwindowsystem-6.23.0/src/platforms/wayland/waylandxdgdialogv1.cpp
--- old/kwindowsystem-6.22.0/src/platforms/wayland/waylandxdgdialogv1.cpp       
2026-01-02 18:44:54.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/platforms/wayland/waylandxdgdialogv1.cpp       
2026-02-06 13:17:59.000000000 +0100
@@ -4,10 +4,9 @@
     SPDX-License-Identifier: LGPL-2.0-or-later
 */
 
+#include "helpers.h"
 #include "waylandxdgdialogv1_p.h"
 
-#include <QGuiApplication>
-
 WaylandXdgDialogV1::WaylandXdgDialogV1(::xdg_dialog_v1 *object)
     : QObject()
     , QtWayland::xdg_dialog_v1(object)
@@ -16,7 +15,7 @@
 
 WaylandXdgDialogV1::~WaylandXdgDialogV1()
 {
-    if (qGuiApp) {
+    if (isQpaAlive()) {
         destroy();
     }
 }
@@ -29,7 +28,7 @@
 
 WaylandXdgDialogWmV1::~WaylandXdgDialogWmV1()
 {
-    if (qGuiApp && isActive()) {
+    if (isQpaAlive() && isActive()) {
         destroy();
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-6.22.0/src/platforms/wayland/waylandxdgforeignv2.cpp 
new/kwindowsystem-6.23.0/src/platforms/wayland/waylandxdgforeignv2.cpp
--- old/kwindowsystem-6.22.0/src/platforms/wayland/waylandxdgforeignv2.cpp      
2026-01-02 18:44:54.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/platforms/wayland/waylandxdgforeignv2.cpp      
2026-02-06 13:17:59.000000000 +0100
@@ -4,10 +4,9 @@
     SPDX-License-Identifier: LGPL-2.0-or-later
 */
 
+#include "helpers.h"
 #include "waylandxdgforeignv2_p.h"
 
-#include <QGuiApplication>
-
 WaylandXdgForeignExportedV2::WaylandXdgForeignExportedV2(::zxdg_exported_v2 
*object)
     : QObject()
     , QtWayland::zxdg_exported_v2(object)
@@ -16,7 +15,7 @@
 
 WaylandXdgForeignExportedV2::~WaylandXdgForeignExportedV2()
 {
-    if (qGuiApp) {
+    if (isQpaAlive()) {
         destroy();
     }
 }
@@ -40,7 +39,7 @@
 
 WaylandXdgForeignExporterV2::~WaylandXdgForeignExporterV2()
 {
-    if (qGuiApp && isActive()) {
+    if (isQpaAlive() && isActive()) {
         destroy();
     }
 }
@@ -65,7 +64,7 @@
 
 WaylandXdgForeignImportedV2::~WaylandXdgForeignImportedV2()
 {
-    if (qGuiApp) {
+    if (isQpaAlive()) {
         destroy();
     }
 }
@@ -88,7 +87,7 @@
 
 WaylandXdgForeignImporterV2::~WaylandXdgForeignImporterV2()
 {
-    if (qGuiApp && isActive()) {
+    if (isQpaAlive() && isActive()) {
         destroy();
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-6.22.0/src/platforms/wayland/waylandxdgtopleveltagv1.cpp 
new/kwindowsystem-6.23.0/src/platforms/wayland/waylandxdgtopleveltagv1.cpp
--- old/kwindowsystem-6.22.0/src/platforms/wayland/waylandxdgtopleveltagv1.cpp  
2026-01-02 18:44:54.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/platforms/wayland/waylandxdgtopleveltagv1.cpp  
2026-02-06 13:17:59.000000000 +0100
@@ -4,10 +4,9 @@
     SPDX-License-Identifier: LGPL-2.0-or-later
 */
 
+#include "helpers.h"
 #include "waylandxdgtopleveltagv1_p.h"
 
-#include <QGuiApplication>
-
 WaylandXdgToplevelTagManagerV1::WaylandXdgToplevelTagManagerV1()
     : QWaylandClientExtensionTemplate<WaylandXdgToplevelTagManagerV1>(1)
 {
@@ -16,7 +15,7 @@
 
 WaylandXdgToplevelTagManagerV1::~WaylandXdgToplevelTagManagerV1()
 {
-    if (qGuiApp && isActive()) {
+    if (isQpaAlive() && isActive()) {
         destroy();
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-6.22.0/src/platforms/wayland/windoweffects.cpp 
new/kwindowsystem-6.23.0/src/platforms/wayland/windoweffects.cpp
--- old/kwindowsystem-6.22.0/src/platforms/wayland/windoweffects.cpp    
2026-01-02 18:44:54.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/platforms/wayland/windoweffects.cpp    
2026-02-06 13:17:59.000000000 +0100
@@ -20,7 +20,7 @@
 #include "qwayland-contrast.h"
 #include "qwayland-slide.h"
 
-#include "surfacehelper.h"
+#include "helpers.h"
 
 #include <wayland-client-protocol.h>
 
@@ -61,7 +61,9 @@
 
     ~Blur() override
     {
-        release();
+        if (isQpaAlive()) {
+            release();
+        }
     }
 };
 
@@ -85,7 +87,9 @@
 
     ~Contrast() override
     {
-        release();
+        if (isQpaAlive()) {
+            release();
+        }
     }
 };
 
@@ -109,7 +113,9 @@
 
     ~Slide() override
     {
-        release();
+        if (isQpaAlive()) {
+            release();
+        }
     }
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-6.22.0/src/platforms/wayland/windowshadow.cpp 
new/kwindowsystem-6.23.0/src/platforms/wayland/windowshadow.cpp
--- old/kwindowsystem-6.22.0/src/platforms/wayland/windowshadow.cpp     
2026-01-02 18:44:54.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/platforms/wayland/windowshadow.cpp     
2026-02-06 13:17:59.000000000 +0100
@@ -6,9 +6,9 @@
 */
 
 #include "windowshadow.h"
+#include "helpers.h"
 #include "logging.h"
 #include "shm.h"
-#include "surfacehelper.h"
 
 #include <qwayland-shadow.h>
 
@@ -38,7 +38,7 @@
 public:
     ~ShadowManager()
     {
-        if (isActive()) {
+        if (isQpaAlive() && isActive()) {
             destroy();
         }
     }
@@ -53,9 +53,12 @@
 {
 public:
     using QtWayland::org_kde_kwin_shadow::org_kde_kwin_shadow;
+
     ~Shadow()
     {
-        destroy();
+        if (isQpaAlive()) {
+            destroy();
+        }
     }
 };
 
@@ -188,6 +191,10 @@
         return;
     }
 
+    if (!isQpaAlive()) {
+        return;
+    }
+
     // Only call surfaceForWindow and unset the surface if the native window 
is alive.
     // Otherwise window->create() might be called when the window is being 
destroyed, leading to a crash.
     if (window && 
window->nativeInterface<QNativeInterface::Private::QWaylandWindow>() && 
ShadowManager::instance()->isActive()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-6.22.0/src/platforms/wayland/windowsystem.cpp 
new/kwindowsystem-6.23.0/src/platforms/wayland/windowsystem.cpp
--- old/kwindowsystem-6.22.0/src/platforms/wayland/windowsystem.cpp     
2026-01-02 18:44:54.000000000 +0100
+++ new/kwindowsystem-6.23.0/src/platforms/wayland/windowsystem.cpp     
2026-02-06 13:17:59.000000000 +0100
@@ -5,8 +5,8 @@
     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR 
LicenseRef-KDE-Accepted-LGPL
 */
 #include "windowsystem.h"
+#include "helpers.h"
 #include "logging.h"
-#include "surfacehelper.h"
 #include "waylandxdgactivationv1_p.h"
 #include "waylandxdgdialogv1_p.h"
 #include "waylandxdgforeignv2_p.h"

Reply via email to