Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kwayland-server for openSUSE:Factory 
checked in at 2022-05-05 23:04:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwayland-server (Old)
 and      /work/SRC/openSUSE:Factory/.kwayland-server.new.1538 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kwayland-server"

Thu May  5 23:04:55 2022 rev:36 rq:974700 version:5.24.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/kwayland-server/kwayland-server.changes  
2022-04-01 21:35:29.477901555 +0200
+++ 
/work/SRC/openSUSE:Factory/.kwayland-server.new.1538/kwayland-server.changes    
    2022-05-05 23:05:08.361463377 +0200
@@ -1,0 +2,14 @@
+Tue May  3 13:00:21 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de>
+
+- Update to 5.24.5
+  * New bugfix release
+  * For more details please see:
+  * https://kde.org/announcements/plasma/5/5.24.5
+- Changes since 5.24.4:
+  * outputconfigurationinterface: don't crash if mode is invalid (kde#453042)
+  * Fix race in wp_drm_lease_v1.
+  * Simplify code that announces available modes and current mode (kde#452318)
+  * Guard subsurface parent access. (kde#452044)
+  * Fix layer shell reset
+
+-------------------------------------------------------------------

Old:
----
  kwayland-server-5.24.4.tar.xz
  kwayland-server-5.24.4.tar.xz.sig

New:
----
  kwayland-server-5.24.5.tar.xz
  kwayland-server-5.24.5.tar.xz.sig

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

Other differences:
------------------
++++++ kwayland-server.spec ++++++
--- /var/tmp/diff_new_pack.zN6CM0/_old  2022-05-05 23:05:08.913464066 +0200
+++ /var/tmp/diff_new_pack.zN6CM0/_new  2022-05-05 23:05:08.921464076 +0200
@@ -24,7 +24,7 @@
 
 %bcond_without released
 Name:           kwayland-server
-Version:        5.24.4
+Version:        5.24.5
 Release:        0
 Summary:        KDE Wayland server library
 License:        LGPL-2.1-or-later

++++++ kwayland-server-5.24.4.tar.xz -> kwayland-server-5.24.5.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-server-5.24.4/CMakeLists.txt 
new/kwayland-server-5.24.5/CMakeLists.txt
--- old/kwayland-server-5.24.4/CMakeLists.txt   2022-03-29 13:23:12.000000000 
+0200
+++ new/kwayland-server-5.24.5/CMakeLists.txt   2022-05-03 12:11:15.000000000 
+0200
@@ -2,7 +2,7 @@
 
 set(CMAKE_C_STANDARD 99)
 
-set(PROJECT_VERSION "5.24.4")
+set(PROJECT_VERSION "5.24.5")
 set(PROJECT_VERSION_MAJOR 5)
 
 set(QT_MIN_VERSION "5.15.0")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-server-5.24.4/src/server/drmleasedevice_v1_interface.cpp 
new/kwayland-server-5.24.5/src/server/drmleasedevice_v1_interface.cpp
--- old/kwayland-server-5.24.4/src/server/drmleasedevice_v1_interface.cpp       
2022-03-29 13:23:12.000000000 +0200
+++ new/kwayland-server-5.24.5/src/server/drmleasedevice_v1_interface.cpp       
2022-05-03 12:11:15.000000000 +0200
@@ -84,10 +84,6 @@
         request->connectors.clear();
     }
     globalRemove();
-    removed = true;
-    if (resourceMap().isEmpty()) {
-        delete this;
-    }
 }
 
 void 
DrmLeaseDeviceV1InterfacePrivate::registerConnector(DrmLeaseConnectorV1Interface
 *connector)
@@ -144,6 +140,9 @@
 
 void 
DrmLeaseDeviceV1InterfacePrivate::wp_drm_lease_device_v1_bind_resource(Resource 
*resource)
 {
+    if (isGlobalRemoved()) {
+        return;
+    }
     if (!hasDrmMaster) {
         pendingFds << resource->handle;
         return;
@@ -161,12 +160,9 @@
     }
 }
 
-void 
DrmLeaseDeviceV1InterfacePrivate::wp_drm_lease_device_v1_destroy_resource(Resource
 *resource)
+void DrmLeaseDeviceV1InterfacePrivate::wp_drm_lease_device_v1_destroy_global()
 {
-    Q_UNUSED(resource)
-    if (removed && resourceMap().isEmpty()) {
-        delete this;
-    }
+    delete this;
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-server-5.24.4/src/server/drmleasedevice_v1_interface_p.h 
new/kwayland-server-5.24.5/src/server/drmleasedevice_v1_interface_p.h
--- old/kwayland-server-5.24.4/src/server/drmleasedevice_v1_interface_p.h       
2022-03-29 13:23:12.000000000 +0200
+++ new/kwayland-server-5.24.5/src/server/drmleasedevice_v1_interface_p.h       
2022-05-03 12:11:15.000000000 +0200
@@ -44,7 +44,7 @@
     void wp_drm_lease_device_v1_create_lease_request(Resource *resource, 
uint32_t id) override;
     void wp_drm_lease_device_v1_release(Resource *resource) override;
     void wp_drm_lease_device_v1_bind_resource(Resource *resource) override;
-    void wp_drm_lease_device_v1_destroy_resource(Resource *resource) override;
+    void wp_drm_lease_device_v1_destroy_global() override;
 };
 
 class DrmLeaseConnectorV1InterfacePrivate : public QObject, public 
QtWaylandServer::wp_drm_lease_connector_v1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-server-5.24.4/src/server/layershell_v1_interface.cpp 
new/kwayland-server-5.24.5/src/server/layershell_v1_interface.cpp
--- old/kwayland-server-5.24.4/src/server/layershell_v1_interface.cpp   
2022-03-29 13:23:12.000000000 +0200
+++ new/kwayland-server-5.24.5/src/server/layershell_v1_interface.cpp   
2022-05-03 12:11:15.000000000 +0200
@@ -69,6 +69,7 @@
     bool isClosed = false;
     bool isConfigured = false;
     bool isCommitted = false;
+    bool firstBufferAttached = false;
 
 protected:
     void zwlr_layer_surface_v1_destroy_resource(Resource *resource) override;
@@ -290,8 +291,10 @@
         return;
     }
 
-    if (!surface->isMapped() && isCommitted) {
+    // detect reset
+    if (!surface->isMapped() && firstBufferAttached) {
         isCommitted = false;
+        firstBufferAttached = false;
         isConfigured = false;
 
         current = LayerSurfaceV1State();
@@ -303,6 +306,9 @@
     const LayerSurfaceV1State previous = std::exchange(current, pending);
 
     isCommitted = true; // Must set the committed state before emitting any 
signals.
+    if (surface->isMapped()) {
+        firstBufferAttached = true;
+    }
 
     if (previous.acceptsFocus != current.acceptsFocus) {
         Q_EMIT q->acceptsFocusChanged();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-server-5.24.4/src/server/outputconfiguration_v2_interface.cpp 
new/kwayland-server-5.24.5/src/server/outputconfiguration_v2_interface.cpp
--- old/kwayland-server-5.24.4/src/server/outputconfiguration_v2_interface.cpp  
2022-03-29 13:23:12.000000000 +0200
+++ new/kwayland-server-5.24.5/src/server/outputconfiguration_v2_interface.cpp  
2022-05-03 12:11:15.000000000 +0200
@@ -64,6 +64,9 @@
     Q_UNUSED(resource)
     OutputDeviceV2Interface *output = 
OutputDeviceV2Interface::get(outputdevice);
     OutputDeviceModeV2Interface *mode = 
OutputDeviceModeV2Interface::get(modeResource);
+    if (!mode) {
+        return;
+    }
 
     pendingChanges(output)->d->size = mode->size();
     pendingChanges(output)->d->refreshRate = mode->refreshRate();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-server-5.24.4/src/server/outputdevice_v2_interface.cpp 
new/kwayland-server-5.24.5/src/server/outputdevice_v2_interface.cpp
--- old/kwayland-server-5.24.4/src/server/outputdevice_v2_interface.cpp 
2022-03-29 13:23:12.000000000 +0200
+++ new/kwayland-server-5.24.5/src/server/outputdevice_v2_interface.cpp 
2022-05-03 12:11:15.000000000 +0200
@@ -31,7 +31,7 @@
 
     void sendGeometry(Resource *resource);
     wl_resource *sendNewMode(Resource *resource, OutputDeviceModeV2Interface 
*mode);
-    void sendCurrentMode(Resource *resource, OutputDeviceModeV2Interface 
*mode);
+    void sendCurrentMode(Resource *resource);
     void sendDone(Resource *resource);
     void sendUuid(Resource *resource);
     void sendEdid(Resource *resource);
@@ -180,7 +180,7 @@
     const auto clientResources = d->resourceMap();
     for (auto it = clientResources.begin(); it != clientResources.end(); ++it) 
{
         auto resource = *it;
-        d->sendCurrentMode(resource, d->currentMode);
+        d->sendCurrentMode(resource);
         d->sendDone(resource);
     }
     d->updateGeometry();
@@ -257,22 +257,10 @@
     sendName(resource);
     sendSerialNumber(resource);
 
-    auto currentModeIt = modes.end();
-    for (auto it = modes.begin(); it != modes.end(); ++it) {
-        auto &mode = *it;
-        if 
(mode->flags().testFlag(OutputDeviceModeV2Interface::ModeFlag::Current)) {
-            // needs to be sent as last mode
-            currentModeIt = it;
-            continue;
-        }
+    for (OutputDeviceModeV2Interface *mode : std::as_const(modes)) {
         sendNewMode(resource, mode);
     }
-
-    if (currentModeIt != modes.end()) {
-        auto modeResource = sendNewMode(resource, *currentModeIt);
-        send_current_mode(resource->handle, modeResource);
-    }
-
+    sendCurrentMode(resource);
     sendUuid(resource);
     sendEdid(resource);
     sendEnabled(resource);
@@ -296,9 +284,9 @@
     return modeResource->handle;
 }
 
-void OutputDeviceV2InterfacePrivate::sendCurrentMode(Resource *outputResource, 
OutputDeviceModeV2Interface *mode)
+void OutputDeviceV2InterfacePrivate::sendCurrentMode(Resource *outputResource)
 {
-    const auto modeResource = 
OutputDeviceModeV2InterfacePrivate::get(mode)->findResource(outputResource);
+    const auto modeResource = 
OutputDeviceModeV2InterfacePrivate::get(currentMode)->findResource(outputResource);
     send_current_mode(outputResource->handle, modeResource->handle);
 }
 
@@ -506,12 +494,12 @@
         d->modes << outputDeviceMode;
         outputDeviceMode->setParent(this);
 
+        for (auto resource : clientResources) {
+            d->sendNewMode(resource, outputDeviceMode);
+        }
+
         if 
(outputDeviceMode->flags().testFlag(OutputDeviceModeV2Interface::ModeFlag::Current))
 {
             d->currentMode = outputDeviceMode;
-        } else {
-            for (auto resource : clientResources) {
-                d->sendNewMode(resource, outputDeviceMode);
-            }
         }
     }
 
@@ -520,8 +508,7 @@
     }
 
     for (auto resource : clientResources) {
-        d->sendNewMode(resource, d->currentMode);
-        d->sendCurrentMode(resource, d->currentMode);
+        d->sendCurrentMode(resource);
     }
 
     qDeleteAll(oldModes.crbegin(), oldModes.crend());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-server-5.24.4/src/server/surface_interface.cpp 
new/kwayland-server-5.24.5/src/server/surface_interface.cpp
--- old/kwayland-server-5.24.4/src/server/surface_interface.cpp 2022-03-29 
13:23:12.000000000 +0200
+++ new/kwayland-server-5.24.5/src/server/surface_interface.cpp 2022-05-03 
12:11:15.000000000 +0200
@@ -678,7 +678,13 @@
 
 bool SurfaceInterfacePrivate::computeEffectiveMapped() const
 {
-    return bufferRef && (!subSurface || 
subSurface->parentSurface()->isMapped());
+    if (!bufferRef) {
+        return false;
+    }
+    if (subSurface) {
+        return subSurface->parentSurface() && 
subSurface->parentSurface()->isMapped();
+    }
+    return true;
 }
 
 void SurfaceInterfacePrivate::updateEffectiveMapped()

Reply via email to