From 441d1370330332b7d78f238d2f5e13f7aed5e4e0 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 25 Dec 2020 23:06:25 +0000 Subject: gentoo christmass resync : 25.12.2020 --- kde-frameworks/knewstuff/Manifest | 3 +- .../files/knewstuff-5.77.0-add-dptr-to-cache.patch | 135 +++++++++++++++++++++ .../knewstuff/knewstuff-5.77.0-r1.ebuild | 42 +++++++ kde-frameworks/knewstuff/knewstuff-5.77.0.ebuild | 40 ------ 4 files changed, 179 insertions(+), 41 deletions(-) create mode 100644 kde-frameworks/knewstuff/files/knewstuff-5.77.0-add-dptr-to-cache.patch create mode 100644 kde-frameworks/knewstuff/knewstuff-5.77.0-r1.ebuild delete mode 100644 kde-frameworks/knewstuff/knewstuff-5.77.0.ebuild (limited to 'kde-frameworks/knewstuff') diff --git a/kde-frameworks/knewstuff/Manifest b/kde-frameworks/knewstuff/Manifest index 3e3ac72c361e..f3d552e23be9 100644 --- a/kde-frameworks/knewstuff/Manifest +++ b/kde-frameworks/knewstuff/Manifest @@ -1,5 +1,6 @@ +AUX knewstuff-5.77.0-add-dptr-to-cache.patch 4360 BLAKE2B cdfcdcce877f360a79731d508a8b52be23682efaa842ff58aed96539fb2e0c08a6744c3a6401c52116d5b19bf869043e3d0b73d873f50cabcef0101c155fae38 SHA512 78906c52f768bf7240bd088913292d486ea74310f6071e4baa7b5ebddf7e1dc229b6aaef36e44a79a6b303982b9da5dc6c07d4987de6617a4f85b1cee28d9618 DIST knewstuff-5.74.0.tar.xz 1143920 BLAKE2B f36956a82bf92960ee78ef61b272363de52b0be4acb2701fa1ad1494a7c05492fac79349b49a998549d2dd7f1c93406daef5e06f8fd28758aea460f667fe3b3a SHA512 038af364cf048035bc2d1a505e4f4c8318fd90efbfdd9c2fdffd9c22b1196a29b0d153643e838a98d472c19094e994a55983f84c63ef50f47574013a8b9f697a DIST knewstuff-5.77.0.tar.xz 1143780 BLAKE2B 72b1e040041e6aca1593700a5378ca88be8b9edc3f2682c433231ee07fed5f56cea749f34dec74835cbc2cf5455e879296d388a0deed5132a9cdedb59ece85e1 SHA512 408b3dd045f13050a41389b4864888f8d261ecade50b4d3903f0982194a0a15828e459e755a001a5593cf818894cca2203ded9cc3fcdd60e23820a1d0f7c45b7 EBUILD knewstuff-5.74.0.ebuild 1094 BLAKE2B 24cd855095c1df4b504eabab595e719f8cfc4af7c65186b8ef277ba8cfd1358a9da8f84acb47d93a79973e2670c1d9eddcfe2ed4dc83b564714385134c2f2feb SHA512 14beed78d3994cfa9b556bf49a5802936eb779ddef447754c4a7f3bde0ba1eab7120354a0cce22babd9857f799e2edf203030d9cbf306b7a3e333de14b3f6b3b -EBUILD knewstuff-5.77.0.ebuild 1097 BLAKE2B feec3ad726c4ffff0bbab809b2a49092500f92d5b7f66d9c80f576da3399e8f5e8b7888656ea502cdbaeb08b867b6ede82106137c68fcd43db2e30bbeff7093a SHA512 f546380fa6f6fd26cc8b80941784569d06d59097b10f1ed0c1a663b3e9701d5e3c52894242ea3e4feb021fbd56fb9068a20c323d525980b24fb558db329d812a +EBUILD knewstuff-5.77.0-r1.ebuild 1170 BLAKE2B 0973a71b781644415e05c4b487181bca88f3a76d0d59f77204b756e58c96d5aca760e0f888d8ae66bfe8b8c190e38d841beddd2644d47a635c78f9f38afabdf0 SHA512 6481a75e450f0e2308bf3a1ac469556643860a6955d0be3852a3571f57458dd67a5db1204518a53fa31339f2d86184bcb0aa80992ab3347db6a9c2edd5071dc6 MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3 diff --git a/kde-frameworks/knewstuff/files/knewstuff-5.77.0-add-dptr-to-cache.patch b/kde-frameworks/knewstuff/files/knewstuff-5.77.0-add-dptr-to-cache.patch new file mode 100644 index 000000000000..f6547fc6e5ff --- /dev/null +++ b/kde-frameworks/knewstuff/files/knewstuff-5.77.0-add-dptr-to-cache.patch @@ -0,0 +1,135 @@ +From 243ea6155b28457c8b1441fee8ab1037828d21ba Mon Sep 17 00:00:00 2001 +From: Dan Leinir Turthra Jensen +Date: Mon, 14 Dec 2020 21:11:51 +0000 +Subject: [PATCH] Add a dptr to Cache, and move the throttle timer there to fix + crash + +Previously, the throttle timer was a raw static, but it was also a parented qobject, which means that when the cache was deleted, so was the timer, but the variable was not reset. Consequently, things would crash left and right later on. So, to alleviate this, and hopefully avoid future issues, introduce a dptr, stick the timer there, and move the logic to that private class as well. + +BUG:429442 + +FIXED-IN:5.78 +--- + src/core/cache.cpp | 41 ++++++++++++++++++++++++++++++----------- + src/core/cache.h | 7 +++++-- + 2 files changed, 35 insertions(+), 13 deletions(-) + +diff --git a/src/core/cache.cpp b/src/core/cache.cpp +index 0395045c..ace7be4e 100644 +--- a/src/core/cache.cpp ++++ b/src/core/cache.cpp +@@ -11,17 +11,42 @@ + #include + #include + #include ++#include + #include + #include + #include + #include + ++class KNSCore::CachePrivate { ++public: ++ CachePrivate(Cache* qq) ++ : q(qq) ++ {} ++ ~CachePrivate() {} ++ ++ Cache* q; ++ QHash requestCache; ++ ++ QPointer throttleTimer; ++ void throttleWrite() { ++ if (!throttleTimer) { ++ throttleTimer = new QTimer(q); ++ QObject::connect(throttleTimer, &QTimer::timeout, q, [this](){ q->writeRegistry(); }); ++ throttleTimer->setSingleShot(true); ++ throttleTimer->setInterval(1000); ++ } ++ throttleTimer->start(); ++ } ++}; ++ + using namespace KNSCore; + + typedef QHash > CacheHash; + Q_GLOBAL_STATIC(CacheHash, s_caches) + +-Cache::Cache(const QString &appName): QObject(nullptr) ++Cache::Cache(const QString &appName) ++ : QObject(nullptr) ++ , d(new CachePrivate(this)) + { + m_kns2ComponentName = appName; + +@@ -280,36 +305,30 @@ void Cache::registerChangedEntry(const KNSCore::EntryInternal &entry) + if (entry.status() == KNS3::Entry::Updating || entry.status() == KNS3::Entry::Installing) { + return; + } +- static QTimer* writeThrottle{nullptr}; +- if (!writeThrottle) { +- writeThrottle = new QTimer(this); +- connect(writeThrottle, &QTimer::timeout, this, [this](){ writeRegistry(); }); +- writeThrottle->setInterval(1000); +- } + if (!property("reloadingRegistry").toBool()) { + setProperty("dirty", true); + cache.remove(entry); // If value already exists in the set, the set is left unchanged + cache.insert(entry); +- writeThrottle->start(); ++ d->throttleWrite(); + } + } + + void Cache::insertRequest(const KNSCore::Provider::SearchRequest &request, const KNSCore::EntryInternal::List &entries) + { + // append new entries +- auto &cacheList = requestCache[request.hashForRequest()]; ++ auto &cacheList = d->requestCache[request.hashForRequest()]; + for (const auto &entry : entries) { + if (!cacheList.contains(entry)) { + cacheList.append(entry); + } + } +- qCDebug(KNEWSTUFFCORE) << request.hashForRequest() << " add: " << entries.size() << " keys: " << requestCache.keys(); ++ qCDebug(KNEWSTUFFCORE) << request.hashForRequest() << " add: " << entries.size() << " keys: " << d->requestCache.keys(); + } + + EntryInternal::List Cache::requestFromCache(const KNSCore::Provider::SearchRequest &request) + { + qCDebug(KNEWSTUFFCORE) << request.hashForRequest(); +- return requestCache.value(request.hashForRequest()); ++ return d->requestCache.value(request.hashForRequest()); + } + + void KNSCore::Cache::removeDeletedEntries() +diff --git a/src/core/cache.h b/src/core/cache.h +index 06e95ab4..73ea7c61 100644 +--- a/src/core/cache.h ++++ b/src/core/cache.h +@@ -16,9 +16,11 @@ + + #include "knewstuffcore_export.h" + ++#include ++ + namespace KNSCore + { +- ++class CachePrivate; + class KNEWSTUFFCORE_EXPORT Cache : public QObject + { + Q_OBJECT +@@ -99,7 +101,8 @@ private: + QString m_kns2ComponentName; + + QSet cache; +- QHash requestCache; ++ ++ std::unique_ptr d; + }; + + } +-- +GitLab + diff --git a/kde-frameworks/knewstuff/knewstuff-5.77.0-r1.ebuild b/kde-frameworks/knewstuff/knewstuff-5.77.0-r1.ebuild new file mode 100644 index 000000000000..59ba609ab98f --- /dev/null +++ b/kde-frameworks/knewstuff/knewstuff-5.77.0-r1.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +ECM_TEST="false" +PVCUT=$(ver_cut 1-2) +QTMIN=5.15.1 +inherit ecm kde.org + +DESCRIPTION="Framework for downloading and sharing additional application data" + +LICENSE="LGPL-2+" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +IUSE="" + +DEPEND=" + >=dev-qt/qtdeclarative-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5 + >=dev-qt/qtnetwork-${QTMIN}:5 + >=dev-qt/qtwidgets-${QTMIN}:5 + >=dev-qt/qtxml-${QTMIN}:5 + =kde-frameworks/attica-${PVCUT}*:5 + =kde-frameworks/karchive-${PVCUT}*:5 + =kde-frameworks/kcompletion-${PVCUT}*:5 + =kde-frameworks/kconfig-${PVCUT}*:5 + =kde-frameworks/kcoreaddons-${PVCUT}*:5 + =kde-frameworks/ki18n-${PVCUT}*:5 + =kde-frameworks/kiconthemes-${PVCUT}*:5 + =kde-frameworks/kio-${PVCUT}*:5 + =kde-frameworks/kitemviews-${PVCUT}*:5 + =kde-frameworks/kpackage-${PVCUT}*:5 + =kde-frameworks/kservice-${PVCUT}*:5 + =kde-frameworks/ktextwidgets-${PVCUT}*:5 + =kde-frameworks/kwidgetsaddons-${PVCUT}*:5 + =kde-frameworks/kxmlgui-${PVCUT}*:5 +" +RDEPEND="${DEPEND} + >=kde-frameworks/kirigami-${PVCUT}:5 +" + +PATCHES=( "${FILESDIR}/${P}-add-dptr-to-cache.patch" ) # KDE-bug 429442 diff --git a/kde-frameworks/knewstuff/knewstuff-5.77.0.ebuild b/kde-frameworks/knewstuff/knewstuff-5.77.0.ebuild deleted file mode 100644 index 96d2ca852d9f..000000000000 --- a/kde-frameworks/knewstuff/knewstuff-5.77.0.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -ECM_TEST="false" -PVCUT=$(ver_cut 1-2) -QTMIN=5.15.1 -inherit ecm kde.org - -DESCRIPTION="Framework for downloading and sharing additional application data" - -LICENSE="LGPL-2+" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" -IUSE="" - -DEPEND=" - >=dev-qt/qtdeclarative-${QTMIN}:5 - >=dev-qt/qtgui-${QTMIN}:5 - >=dev-qt/qtnetwork-${QTMIN}:5 - >=dev-qt/qtwidgets-${QTMIN}:5 - >=dev-qt/qtxml-${QTMIN}:5 - =kde-frameworks/attica-${PVCUT}*:5 - =kde-frameworks/karchive-${PVCUT}*:5 - =kde-frameworks/kcompletion-${PVCUT}*:5 - =kde-frameworks/kconfig-${PVCUT}*:5 - =kde-frameworks/kcoreaddons-${PVCUT}*:5 - =kde-frameworks/ki18n-${PVCUT}*:5 - =kde-frameworks/kiconthemes-${PVCUT}*:5 - =kde-frameworks/kio-${PVCUT}*:5 - =kde-frameworks/kitemviews-${PVCUT}*:5 - =kde-frameworks/kpackage-${PVCUT}*:5 - =kde-frameworks/kservice-${PVCUT}*:5 - =kde-frameworks/ktextwidgets-${PVCUT}*:5 - =kde-frameworks/kwidgetsaddons-${PVCUT}*:5 - =kde-frameworks/kxmlgui-${PVCUT}*:5 -" -RDEPEND="${DEPEND} - >=kde-frameworks/kirigami-${PVCUT}:5 -" -- cgit v1.2.3