diff --git a/kde-frameworks/kirigami/Manifest b/kde-frameworks/kirigami/Manifest index 6ee9647096c1c..548a35748af3a 100644 --- a/kde-frameworks/kirigami/Manifest +++ b/kde-frameworks/kirigami/Manifest @@ -1,4 +1,3 @@ -DIST kirigami-6.16.0.tar.xz 572800 BLAKE2B 41089c4b8851044a3faed9caa5309140c441f3446d77a9d1b6f50a41c482646001cbe2b31252d82110c866b49b08fbd4fe4384fdf736624048db33c3b19f16ff SHA512 4c75c9597b5416119d821e9b54212169c9275182af5534d7f7ab247e26af248af0ae748550301caf6811f805cdd1392087c002904278774dfa88c82338619529 DIST kirigami-6.18.0.tar.xz 575652 BLAKE2B 266cebee2d3492654c51fe4c2783b75939f8b658faa3f900f920a1e42c65c682b31f321019b908a2e5b08bbefacd9a604703ebe1afb57cb7f19a35f548bee6fe SHA512 97ad86fecb8f802dfe1568703544aafe5081485c1e8464a5d898bb66d55eac4a9b92eb56fac4f7b029a9b67198f03cf0c6c9372c6025f3f67cf435692fa0173e DIST kirigami-6.19.0.tar.xz 576876 BLAKE2B 5f468b72143c827e98230ab86184c433b3d171c0a11f5a93fd724df7f4da509482e7e1602cab2f56797714eefe02483f9fc54308eb515a5e13afef275d9b4b89 SHA512 b386c27d36a7833132d1f5899353ee4d680839562bc8180eb4407610a1e89874411d7ca0645348f65eef3d86a02d7eca8d91bc0702c2c6f201406c9e0f93a213 DIST kirigami2-5.116.0.tar.xz 383660 BLAKE2B 80252358b33f1876506738d68f233703c15f955dc020709ffb66b75cc7bb13585ac1bb5a7a2076f42909b8a515f5f8cf64fb14a7536aefe8fd42bfd293c66384 SHA512 bb1f7525cb77dc2849bc9782be9b4522b4559b78e8ad88c9cd9953a6d9736cbe63a33a76fadebd9a1fb04f15007e5141aa465991b99117f7c2f26e09c722b66e diff --git a/kde-frameworks/kirigami/files/kirigami-6.16.0-sw.patch b/kde-frameworks/kirigami/files/kirigami-6.16.0-sw.patch deleted file mode 100644 index a8b26fbe8a16f..0000000000000 --- a/kde-frameworks/kirigami/files/kirigami-6.16.0-sw.patch +++ /dev/null @@ -1,284 +0,0 @@ -https://bugs.gentoo.org/960298 -https://bugs.kde.org/show_bug.cgi?id=505670 -https://bugs.kde.org/show_bug.cgi?id=506991 -https://invent.kde.org/frameworks/kirigami/-/merge_requests/1884 - -From 1289232891ec190b317015fb73debcea373dab1b Mon Sep 17 00:00:00 2001 -From: Vlad Zahorodnii -Date: Mon, 14 Jul 2025 13:56:54 +0300 -Subject: [PATCH 1/3] Revert "Fix SoftwareRectangleNode leaking image nodes" - -This reverts commit ab359a4feac3e60e19564b2c6d991417459e08a4. ---- - 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 5c0c46637..8c7d900ff 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(). --- -GitLab - - -From 8d96bcc36a40465007857490376559288b2ebcd9 Mon Sep 17 00:00:00 2001 -From: Vlad Zahorodnii -Date: Mon, 14 Jul 2025 13:56:59 +0300 -Subject: [PATCH 2/3] Revert "Fix ShadowedTexture crashing with software - rendering" - -This reverts commit 4dc4e78d26701d5babfec6602ac705912d7e8154. ---- - .../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 8c7d900ff..13371029b 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(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; - } - } - --- -GitLab - - -From 140067bb3ab57cfcdc0daf0f3964e217cd32d3cd Mon Sep 17 00:00:00 2001 -From: Vlad Zahorodnii -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 ---- - .../scenegraph/softwarerectanglenode.cpp | 61 +++++++++++-------- - .../scenegraph/softwarerectanglenode.h | 2 + - 2 files changed, 38 insertions(+), 25 deletions(-) - -diff --git a/src/primitives/scenegraph/softwarerectanglenode.cpp b/src/primitives/scenegraph/softwarerectanglenode.cpp -index 13371029b..31355d9c0 100644 ---- a/src/primitives/scenegraph/softwarerectanglenode.cpp -+++ b/src/primitives/scenegraph/softwarerectanglenode.cpp -@@ -54,17 +54,9 @@ void SoftwareRectangleNode::setImage(const QImage &image) - } - - if (m_imageNode) { -- removeChildNode(m_imageNode); -- delete m_imageNode; -+ cleanupImageNode(); - } - -- m_imageNode = m_window->createImageNode(); -- if (!m_imageNode) { -- return; -- } -- -- m_imageNode->setFiltering(QSGTexture::Filtering::Linear); -- - m_textureInfo = ShaderNode::TextureInfo{ - .channel = 0, - .options = {}, -@@ -73,8 +65,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) -@@ -84,17 +84,9 @@ void SoftwareRectangleNode::setTextureProvider(QSGTextureProvider *provider) - } - - if (m_imageNode) { -- removeChildNode(m_imageNode); -- delete m_imageNode; -+ cleanupImageNode(); - } - -- m_imageNode = m_window->createImageNode(); -- if (!m_imageNode) { -- return; -- } -- -- m_imageNode->setFiltering(QSGTexture::Filtering::Linear); -- - m_textureInfo = ShaderNode::TextureInfo{ - .channel = 0, - .options = {}, -@@ -103,8 +95,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 +136,24 @@ 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(provider->texture())) { -+ if (provider) { -+ QSGTexture *texture = provider->texture(); -+ if (QSGDynamicTexture *dynamic_texture = qobject_cast(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) { -+ cleanupImageNode(); -+ } - } - } - -@@ -187,3 +191,10 @@ void SoftwareRectangleNode::render(const RenderState *state) - m_imageNode->setRect(withoutCorners); - } - } -+ -+void SoftwareRectangleNode::cleanupImageNode() -+{ -+ removeChildNode(m_imageNode); -+ delete m_imageNode; -+ m_imageNode = nullptr; -+} -diff --git a/src/primitives/scenegraph/softwarerectanglenode.h b/src/primitives/scenegraph/softwarerectanglenode.h -index 0e444c295..72898fdcc 100644 ---- a/src/primitives/scenegraph/softwarerectanglenode.h -+++ b/src/primitives/scenegraph/softwarerectanglenode.h -@@ -39,6 +39,8 @@ public: - void render(const RenderState *state) override; - - private: -+ void cleanupImageNode(); -+ - QQuickWindow *m_window = nullptr; - - QSGImageNode *m_imageNode = nullptr; --- -GitLab diff --git a/kde-frameworks/kirigami/kirigami-6.16.0-r1.ebuild b/kde-frameworks/kirigami/kirigami-6.16.0-r1.ebuild deleted file mode 100644 index eb2e6741503e8..0000000000000 --- a/kde-frameworks/kirigami/kirigami-6.16.0-r1.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -ECM_EXAMPLES="true" -ECM_QTHELP="false" -ECM_TEST="true" -QTMIN=6.7.2 -inherit ecm frameworks.kde.org toolchain-funcs - -DESCRIPTION="Lightweight user interface framework for mobile and convergent applications" -HOMEPAGE="https://community.kde.org/Kirigami" - -LICENSE="LGPL-2+" -KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~x86" -IUSE="openmp" - -# requires package to already be installed -RESTRICT="test" - -# slot op: Uses Qt6::GuiPrivate for qguiapplication_p.h -DEPEND=" - >=dev-qt/qtbase-${QTMIN}:6=[concurrent,dbus,gui,network] - >=dev-qt/qtdeclarative-${QTMIN}:6 - >=dev-qt/qtsvg-${QTMIN}:6 -" -RDEPEND="${DEPEND} - examples? ( - !${CATEGORY}/${PN}:5[examples(-)] - >=dev-qt/qt5compat-${QTMIN}:6[qml] - ) -" -BDEPEND=">=dev-qt/qttools-${QTMIN}:6[linguist]" - -PATCHES=( - "${FILESDIR}"/kirigami-6.16.0-sw.patch -) - -pkg_pretend() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -pkg_setup() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -src_configure() { - local mycmakeargs=( - -DBUILD_EXAMPLES=$(usex examples) - $(cmake_use_find_package openmp OpenMP) - ) - - ecm_src_configure -}