Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-kirigami for openSUSE:Factory 
checked in at 2025-07-17 17:17:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kirigami (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-kirigami.new.8875 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-kirigami"

Thu Jul 17 17:17:16 2025 rev:22 rq:1293136 version:6.16.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-kirigami/kf6-kirigami.changes        
2025-07-14 10:53:12.064364271 +0200
+++ /work/SRC/openSUSE:Factory/.kf6-kirigami.new.8875/kf6-kirigami.changes      
2025-07-17 17:17:41.277063491 +0200
@@ -1,0 +2,16 @@
+Mon Jul 14 11:33:43 UTC 2025 - Fabian Vogt <fab...@ritter-vogt.de>
+
+- Replace 0001-Fix-another-ShadowedTexture-crash-with-software-rend.patch
+  with new version:
+  * 0001-Revert-Fix-SoftwareRectangleNode-leaking-image-nodes.patch
+  * 0002-Revert-Fix-ShadowedTexture-crashing-with-software-re.patch
+  * 0003-Fix-SoftwareRectangleNode-creating-QSGImageNode-s-wi.patch
+
+-------------------------------------------------------------------
+Mon Jul 14 08:21:51 UTC 2025 - Fabian Vogt <fab...@ritter-vogt.de>
+
+- Add patch to fix a crash with the Qt Quick software renderer
+  (kde#506991, boo#1246411):
+  * 0001-Fix-another-ShadowedTexture-crash-with-software-rend.patch
+
+-------------------------------------------------------------------

New:
----
  0001-Revert-Fix-SoftwareRectangleNode-leaking-image-nodes.patch
  0002-Revert-Fix-ShadowedTexture-crashing-with-software-re.patch
  0003-Fix-SoftwareRectangleNode-creating-QSGImageNode-s-wi.patch

----------(New B)----------
  New:  with new version:
  * 0001-Revert-Fix-SoftwareRectangleNode-leaking-image-nodes.patch
  * 0002-Revert-Fix-ShadowedTexture-crashing-with-software-re.patch
  New:  * 0001-Revert-Fix-SoftwareRectangleNode-leaking-image-nodes.patch
  * 0002-Revert-Fix-ShadowedTexture-crashing-with-software-re.patch
  * 0003-Fix-SoftwareRectangleNode-creating-QSGImageNode-s-wi.patch
  New:  * 0002-Revert-Fix-ShadowedTexture-crashing-with-software-re.patch
  * 0003-Fix-SoftwareRectangleNode-creating-QSGImageNode-s-wi.patch
----------(New E)----------

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

Other differences:
------------------
++++++ kf6-kirigami.spec ++++++
--- /var/tmp/diff_new_pack.jutNEJ/_old  2025-07-17 17:17:42.161100255 +0200
+++ /var/tmp/diff_new_pack.jutNEJ/_new  2025-07-17 17:17:42.165100421 +0200
@@ -33,6 +33,10 @@
 Source1:        %{rname}-%{version}.tar.xz.sig
 Source2:        frameworks.keyring
 %endif
+# PATCH-FIX-UPSTREAM 
https://invent.kde.org/frameworks/kirigami/-/merge_requests/1884
+Patch1:         0001-Revert-Fix-SoftwareRectangleNode-leaking-image-nodes.patch
+Patch2:         0002-Revert-Fix-ShadowedTexture-crashing-with-software-re.patch
+Patch3:         0003-Fix-SoftwareRectangleNode-creating-QSGImageNode-s-wi.patch
 BuildRequires:  kf6-extra-cmake-modules >= %{_kf6_version}
 BuildRequires:  qt6-gui-private-devel >= %{qt6_version}
 BuildRequires:  cmake(Qt6Concurrent) >= %{qt6_version}
@@ -70,8 +74,8 @@
 %package devel
 Summary:        Development package for kirigami
 Requires:       libKirigamiPlatform6 = %{version}
-Requires:       cmake(Qt6Core) >= %{qt6_version}
 Requires:       cmake(Qt6Concurrent) >= %{qt6_version}
+Requires:       cmake(Qt6Core) >= %{qt6_version}
 Requires:       cmake(Qt6Qml) >= %{qt6_version}
 Requires:       cmake(Qt6Quick) >= %{qt6_version}
 

++++++ 0001-Revert-Fix-SoftwareRectangleNode-leaking-image-nodes.patch ++++++
>From 5897d87160d13cb3bccec768f3127853d81a05c0 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorod...@kde.org>
Date: Mon, 14 Jul 2025 13:56:54 +0300
Subject: [PATCH 1/3] Revert "Fix SoftwareRectangleNode leaking image nodes"

This reverts commit ab359a4feac3e60e19564b2c6d991417459e08a4.

(cherry picked from commit 1289232891ec190b317015fb73debcea373dab1b)
---
 src/primitives/scenegraph/softwarerectanglenode.cpp | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/primitives/scenegraph/softwarerectanglenode.cpp 
b/src/primitives/scenegraph/softwarerectanglenode.cpp
index 5c0c4663..8c7d900f 100644
--- a/src/primitives/scenegraph/softwarerectanglenode.cpp
+++ b/src/primitives/scenegraph/softwarerectanglenode.cpp
@@ -127,7 +127,6 @@ void SoftwareRectangleNode::preprocess()
     if (texture) {
         if (!m_imageNode) {
             m_imageNode = m_window->createImageNode();
-            m_imageNode->setFlag(OwnedByParent);
         }
 
         // The rect will be set in render().
-- 
2.50.0


++++++ 0002-Revert-Fix-ShadowedTexture-crashing-with-software-re.patch ++++++
>From 5d2336b70038427e2d1d8348187a38a10fbe94c0 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorod...@kde.org>
Date: Mon, 14 Jul 2025 13:56:59 +0300
Subject: [PATCH 2/3] Revert "Fix ShadowedTexture crashing with software
 rendering"

This reverts commit 4dc4e78d26701d5babfec6602ac705912d7e8154.

(cherry picked from commit 8d96bcc36a40465007857490376559288b2ebcd9)
---
 .../scenegraph/softwarerectanglenode.cpp      | 56 +++++++++++--------
 1 file changed, 33 insertions(+), 23 deletions(-)

diff --git a/src/primitives/scenegraph/softwarerectanglenode.cpp 
b/src/primitives/scenegraph/softwarerectanglenode.cpp
index 8c7d900f..13371029 100644
--- a/src/primitives/scenegraph/softwarerectanglenode.cpp
+++ b/src/primitives/scenegraph/softwarerectanglenode.cpp
@@ -53,6 +53,18 @@ void SoftwareRectangleNode::setImage(const QImage &image)
         return;
     }
 
+    if (m_imageNode) {
+        removeChildNode(m_imageNode);
+        delete m_imageNode;
+    }
+
+    m_imageNode = m_window->createImageNode();
+    if (!m_imageNode) {
+        return;
+    }
+
+    m_imageNode->setFiltering(QSGTexture::Filtering::Linear);
+
     m_textureInfo = ShaderNode::TextureInfo{
         .channel = 0,
         .options = {},
@@ -60,6 +72,9 @@ void SoftwareRectangleNode::setImage(const QImage &image)
         .provider = nullptr,
         .providerConnection = {},
     };
+
+    m_imageNode->setTexture(m_textureInfo.texture.get());
+    appendChildNode(m_imageNode);
 }
 
 void SoftwareRectangleNode::setTextureProvider(QSGTextureProvider *provider)
@@ -68,6 +83,18 @@ void 
SoftwareRectangleNode::setTextureProvider(QSGTextureProvider *provider)
         return;
     }
 
+    if (m_imageNode) {
+        removeChildNode(m_imageNode);
+        delete m_imageNode;
+    }
+
+    m_imageNode = m_window->createImageNode();
+    if (!m_imageNode) {
+        return;
+    }
+
+    m_imageNode->setFiltering(QSGTexture::Filtering::Linear);
+
     m_textureInfo = ShaderNode::TextureInfo{
         .channel = 0,
         .options = {},
@@ -75,6 +102,9 @@ void 
SoftwareRectangleNode::setTextureProvider(QSGTextureProvider *provider)
         .provider = provider,
         .providerConnection = {},
     };
+
+    m_imageNode->setTexture(m_textureInfo.provider->texture());
+    appendChildNode(m_imageNode);
 }
 
 void SoftwareRectangleNode::setRadius(qreal radius)
@@ -114,32 +144,12 @@ QSGRenderNode::RenderingFlags 
SoftwareRectangleNode::flags() const
 
 void SoftwareRectangleNode::preprocess()
 {
-    QSGTexture *texture = nullptr;
-    if (QSGTextureProvider *provider = m_textureInfo.provider) {
-        texture = provider->texture();
+    auto provider = m_textureInfo.provider;
+    if (provider && m_imageNode) {
+        m_imageNode->setTexture(provider->texture());
         if (QSGDynamicTexture *dynamic_texture = 
qobject_cast<QSGDynamicTexture *>(provider->texture())) {
             dynamic_texture->updateTexture();
         }
-    } else if (m_textureInfo.texture) {
-        texture = m_textureInfo.texture.get();
-    }
-
-    if (texture) {
-        if (!m_imageNode) {
-            m_imageNode = m_window->createImageNode();
-        }
-
-        // The rect will be set in render().
-        m_imageNode->setFiltering(QSGTexture::Filtering::Linear);
-        m_imageNode->setTexture(texture);
-
-        if (!m_imageNode->parent()) {
-            appendChildNode(m_imageNode);
-        }
-    } else if (m_imageNode) {
-        removeChildNode(m_imageNode);
-        delete m_imageNode;
-        m_imageNode = nullptr;
     }
 }
 
-- 
2.50.0


++++++ 0003-Fix-SoftwareRectangleNode-creating-QSGImageNode-s-wi.patch ++++++
>From f3f1298ead568f266f353a9549e1d7af928e60f8 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorod...@kde.org>
Date: Mon, 14 Jul 2025 14:23:39 +0300
Subject: [PATCH 3/3] Fix SoftwareRectangleNode creating QSGImageNode's without
 texture

If the texture provider has no texture, the QSGImageNode should be
removed from the scene graph, otherwise the renderer will crash.

BUG: 506991
(cherry picked from commit 371d9160db5b0e8b87ff9f5c9d7d63911717c0a0)
---
 .../scenegraph/softwarerectanglenode.cpp      | 52 +++++++++++--------
 1 file changed, 31 insertions(+), 21 deletions(-)

diff --git a/src/primitives/scenegraph/softwarerectanglenode.cpp 
b/src/primitives/scenegraph/softwarerectanglenode.cpp
index 13371029..eee8efce 100644
--- a/src/primitives/scenegraph/softwarerectanglenode.cpp
+++ b/src/primitives/scenegraph/softwarerectanglenode.cpp
@@ -56,15 +56,9 @@ void SoftwareRectangleNode::setImage(const QImage &image)
     if (m_imageNode) {
         removeChildNode(m_imageNode);
         delete m_imageNode;
+        m_imageNode = nullptr;
     }
 
-    m_imageNode = m_window->createImageNode();
-    if (!m_imageNode) {
-        return;
-    }
-
-    m_imageNode->setFiltering(QSGTexture::Filtering::Linear);
-
     m_textureInfo = ShaderNode::TextureInfo{
         .channel = 0,
         .options = {},
@@ -73,8 +67,16 @@ void SoftwareRectangleNode::setImage(const QImage &image)
         .providerConnection = {},
     };
 
-    m_imageNode->setTexture(m_textureInfo.texture.get());
-    appendChildNode(m_imageNode);
+    if (!m_textureInfo.texture) {
+        return;
+    }
+
+    m_imageNode = m_window->createImageNode();
+    if (m_imageNode) {
+        m_imageNode->setTexture(m_textureInfo.texture.get());
+        m_imageNode->setFiltering(QSGTexture::Filtering::Linear);
+        appendChildNode(m_imageNode);
+    }
 }
 
 void SoftwareRectangleNode::setTextureProvider(QSGTextureProvider *provider)
@@ -86,15 +88,9 @@ void 
SoftwareRectangleNode::setTextureProvider(QSGTextureProvider *provider)
     if (m_imageNode) {
         removeChildNode(m_imageNode);
         delete m_imageNode;
+        m_imageNode = nullptr;
     }
 
-    m_imageNode = m_window->createImageNode();
-    if (!m_imageNode) {
-        return;
-    }
-
-    m_imageNode->setFiltering(QSGTexture::Filtering::Linear);
-
     m_textureInfo = ShaderNode::TextureInfo{
         .channel = 0,
         .options = {},
@@ -103,8 +99,7 @@ void 
SoftwareRectangleNode::setTextureProvider(QSGTextureProvider *provider)
         .providerConnection = {},
     };
 
-    m_imageNode->setTexture(m_textureInfo.provider->texture());
-    appendChildNode(m_imageNode);
+    // The render node will be created in preprocess().
 }
 
 void SoftwareRectangleNode::setRadius(qreal radius)
@@ -145,11 +140,26 @@ QSGRenderNode::RenderingFlags 
SoftwareRectangleNode::flags() const
 void SoftwareRectangleNode::preprocess()
 {
     auto provider = m_textureInfo.provider;
-    if (provider && m_imageNode) {
-        m_imageNode->setTexture(provider->texture());
-        if (QSGDynamicTexture *dynamic_texture = 
qobject_cast<QSGDynamicTexture *>(provider->texture())) {
+    if (provider) {
+        QSGTexture *texture = provider->texture();
+        if (QSGDynamicTexture *dynamic_texture = 
qobject_cast<QSGDynamicTexture *>(texture)) {
             dynamic_texture->updateTexture();
         }
+
+        if (texture) {
+            if (!m_imageNode) {
+                m_imageNode = m_window->createImageNode();
+                m_imageNode->setTexture(texture);
+                m_imageNode->setFiltering(QSGTexture::Filtering::Linear);
+                appendChildNode(m_imageNode);
+            } else {
+                m_imageNode->setTexture(texture);
+            }
+        } else if (m_imageNode) {
+            removeChildNode(m_imageNode);
+            delete m_imageNode;
+            m_imageNode = nullptr;
+        }
     }
 }
 
-- 
2.50.0

Reply via email to