commit:     1a86f8153a3b23901d5511d43d9838b4b5c46495
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Apr  4 11:37:08 2021 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Apr  4 13:19:40 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a86f815

kde-frameworks/kirigami: Fix systemsettings crash installing themes

Upstream commit 29dabab2f536827bc1ecec63f5a0b0a76f0809e5

See also: https://invent.kde.org/frameworks/kirigami/-/merge_requests/253
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=434079
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../kirigami-5.80.0-fix-crash-in-SizeGroup.patch   | 41 ++++++++++++++++++
 kde-frameworks/kirigami/kirigami-5.80.0-r1.ebuild  | 50 ++++++++++++++++++++++
 2 files changed, 91 insertions(+)

diff --git 
a/kde-frameworks/kirigami/files/kirigami-5.80.0-fix-crash-in-SizeGroup.patch 
b/kde-frameworks/kirigami/files/kirigami-5.80.0-fix-crash-in-SizeGroup.patch
new file mode 100644
index 00000000000..7d13d2fa1bf
--- /dev/null
+++ b/kde-frameworks/kirigami/files/kirigami-5.80.0-fix-crash-in-SizeGroup.patch
@@ -0,0 +1,41 @@
+From 29dabab2f536827bc1ecec63f5a0b0a76f0809e5 Mon Sep 17 00:00:00 2001
+From: David Edmundson <[email protected]>
+Date: Tue, 9 Mar 2021 14:30:44 +0000
+Subject: [PATCH] Fix potential crash in SizeGroup
+
+SizeGroup keeps a cache of a list of items, and when one updates does
+calculations based on all items.
+
+This list is stored as a list of QPointers as we don't explicitly track
+deletion.
+
+We have a list of items and guard for deletion, but they're QML owned.
+So there's a point in time when it's pending deletion with the garbage
+collector but the lower level object isn't managed by an engine.
+
+As we go via QQmlProperty(item, QStringLiteral("Layout.preferredWidth"),
+qmlContext(item)).write(maxWidth) this is problematic.
+
+BUG: 434079
+---
+ src/sizegroup.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/sizegroup.cpp b/src/sizegroup.cpp
+index 2035b6eb..a9a0ebf8 100644
+--- a/src/sizegroup.cpp
++++ b/src/sizegroup.cpp
+@@ -98,6 +98,10 @@ void SizeGroup::adjustItems(Mode whatChanged)
+             continue;
+         }
+ 
++        if (!qmlEngine(item)) {
++            continue;
++        }
++
+         switch (m_mode) {
+         case Mode::Width:
+             QQmlProperty(item, QStringLiteral("Layout.preferredWidth"), 
qmlContext(item)).write(maxWidth);
+-- 
+GitLab
+

diff --git a/kde-frameworks/kirigami/kirigami-5.80.0-r1.ebuild 
b/kde-frameworks/kirigami/kirigami-5.80.0-r1.ebuild
new file mode 100644
index 00000000000..54823b83838
--- /dev/null
+++ b/kde-frameworks/kirigami/kirigami-5.80.0-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+ECM_EXAMPLES="true"
+ECM_QTHELP="false"
+ECM_TEST="true"
+KDE_ORG_NAME="${PN}2"
+QTMIN=5.15.2
+inherit ecm kde.org
+
+DESCRIPTION="Lightweight user interface framework for mobile and convergent 
applications"
+HOMEPAGE="https://techbase.kde.org/Kirigami";
+EGIT_REPO_URI="${EGIT_REPO_URI/${PN}2/${PN}}"
+
+LICENSE="LGPL-2+"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+IUSE=""
+
+# requires package to already be installed
+RESTRICT+=" test"
+
+BDEPEND="
+       >=dev-qt/linguist-tools-${QTMIN}:5
+"
+DEPEND="
+       >=dev-qt/qtconcurrent-${QTMIN}:5
+       >=dev-qt/qtdbus-${QTMIN}:5
+       >=dev-qt/qtdeclarative-${QTMIN}:5
+       >=dev-qt/qtgui-${QTMIN}:5
+       >=dev-qt/qtnetwork-${QTMIN}:5
+       >=dev-qt/qtquickcontrols2-${QTMIN}:5
+       >=dev-qt/qtsvg-${QTMIN}:5
+"
+RDEPEND="${DEPEND}
+       >=dev-qt/qtgraphicaleffects-${QTMIN}:5
+"
+
+PATCHES=(
+       "${FILESDIR}/${P}-fix-crash-in-SizeGroup.patch" # KDE-bug #434079
+)
+
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_EXAMPLES=$(usex examples)
+       )
+
+       ecm_src_configure
+}

Reply via email to