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