commit: 1a38474d5b3a3483b58993054b53cff2fe509e19 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Mon Oct 3 07:50:56 2022 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Mon Oct 3 08:43:34 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a38474d
kde-plasma/plasma-thunderbolt: Fix crash Upstream commit 09c37c1c312991d08c10c7af94a83902150cb3ad Closes: https://bugs.gentoo.org/873634 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> .../plasma-thunderbolt-5.25.5-kcm-crash.patch | 71 ++++++++++++++++++++++ .../plasma-thunderbolt-5.25.5-r1.ebuild | 40 ++++++++++++ 2 files changed, 111 insertions(+) diff --git a/kde-plasma/plasma-thunderbolt/files/plasma-thunderbolt-5.25.5-kcm-crash.patch b/kde-plasma/plasma-thunderbolt/files/plasma-thunderbolt-5.25.5-kcm-crash.patch new file mode 100644 index 000000000000..f45edfa86f77 --- /dev/null +++ b/kde-plasma/plasma-thunderbolt/files/plasma-thunderbolt-5.25.5-kcm-crash.patch @@ -0,0 +1,71 @@ +From 09c37c1c312991d08c10c7af94a83902150cb3ad Mon Sep 17 00:00:00 2001 +From: David Edmundson <k...@davidedmundson.co.uk> +Date: Mon, 27 Jun 2022 16:46:08 +0100 +Subject: [PATCH] Avoid combining smart pointers and qobject parent ownership + +Devices are stored as QSharedPointer<Device> mDevices. If something has +the memory managed explicitly we don't want QObject parents to also try +and do the same job. + +BUG: 439192 +--- + src/lib/device.cpp | 4 ++-- + src/lib/device.h | 2 +- + src/lib/manager.cpp | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/lib/device.cpp b/src/lib/device.cpp +index b79d029..94964be 100644 +--- a/src/lib/device.cpp ++++ b/src/lib/device.cpp +@@ -45,10 +45,10 @@ Device::Device(const QDBusObjectPath &path, QObject *parent) + + Device::~Device() = default; + +-QSharedPointer<Device> Device::create(const QDBusObjectPath &path, QObject *parent) ++QSharedPointer<Device> Device::create(const QDBusObjectPath &path) + { + try { +- return QSharedPointer<Device>::create(path, parent); ++ return QSharedPointer<Device>::create(path); + } catch (const DBusException &e) { + qCWarning(log_libkbolt, "%s", e.what()); + return {}; +diff --git a/src/lib/device.h b/src/lib/device.h +index 9b7e0f0..d183b12 100644 +--- a/src/lib/device.h ++++ b/src/lib/device.h +@@ -46,7 +46,7 @@ class KBOLT_EXPORT Device : public QObject, public QEnableSharedFromThis<Device> + friend class Manager; + + public: +- static QSharedPointer<Device> create(const QDBusObjectPath &path, QObject *parent = nullptr); ++ static QSharedPointer<Device> create(const QDBusObjectPath &path); + explicit Device(QObject *parent = nullptr); + ~Device() override; + +diff --git a/src/lib/manager.cpp b/src/lib/manager.cpp +index 683c28c..99f1732 100644 +--- a/src/lib/manager.cpp ++++ b/src/lib/manager.cpp +@@ -26,7 +26,7 @@ Manager::Manager(QObject *parent) + } + + connect(mInterface.get(), &ManagerInterface::DeviceAdded, this, [this](const QDBusObjectPath &path) { +- if (auto device = Device::create(path, this)) { ++ if (auto device = Device::create(path)) { + mDevices.push_back(device); + qCDebug(log_libkbolt, + "New Thunderbolt device %s (%s) added, status=%s", +@@ -46,7 +46,7 @@ Manager::Manager(QObject *parent) + + const auto devicePaths = mInterface->ListDevices().argumentAt<0>(); + for (const auto &devicePath : devicePaths) { +- if (auto device = Device::create(devicePath, this)) { ++ if (auto device = Device::create(devicePath)) { + qCDebug(log_libkbolt, + "Discovered Thunderbolt device %s (%s), status=%s", + qUtf8Printable(device->uid()), +-- +GitLab + diff --git a/kde-plasma/plasma-thunderbolt/plasma-thunderbolt-5.25.5-r1.ebuild b/kde-plasma/plasma-thunderbolt/plasma-thunderbolt-5.25.5-r1.ebuild new file mode 100644 index 000000000000..137f827fe9df --- /dev/null +++ b/kde-plasma/plasma-thunderbolt/plasma-thunderbolt-5.25.5-r1.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_TEST="true" +KFMIN=5.95.0 +PVCUT=$(ver_cut 1-3) +QTMIN=5.15.5 +inherit ecm plasma.kde.org + +DESCRIPTION="Plasma integration for controlling Thunderbolt devices" +HOMEPAGE="https://invent.kde.org/plasma/plasma-thunderbolt" + +LICENSE="|| ( GPL-2 GPL-3+ )" +SLOT="5" +KEYWORDS="~amd64 ~riscv ~x86" +IUSE="" + +# tests require DBus +RESTRICT="test" + +DEPEND=" + >=dev-qt/qtdeclarative-${QTMIN}:5 + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5 + >=kde-frameworks/kcmutils-${KFMIN}:5 + >=kde-frameworks/kcoreaddons-${KFMIN}:5 + >=kde-frameworks/kdbusaddons-${KFMIN}:5 + >=kde-frameworks/kdeclarative-${KFMIN}:5 + >=kde-frameworks/ki18n-${KFMIN}:5 + >=kde-frameworks/knotifications-${KFMIN}:5 +" +RDEPEND="${DEPEND} + >=dev-qt/qtquickcontrols2-${QTMIN}:5 + >=kde-frameworks/kirigami-${KFMIN}:5 + sys-apps/bolt +" + +PATCHES=( "${FILESDIR}/${P}-kcm-crash.patch" )