From 15bb7733ddb1f16a0e3936969282ecc42419829a Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 26 Dec 2023 01:33:45 +0000 Subject: gentoo auto-resync : 26:12:2023 - 01:33:45 --- kde-frameworks/Manifest.gz | Bin 13932 -> 13935 bytes kde-frameworks/kio/Manifest | 3 + .../kio-5.113.0-fix-crash-malformed-exec.patch | 41 +++++ .../kio-5.113.0-fix-crash-while-copying.patch | 184 +++++++++++++++++++++ kde-frameworks/kio/kio-5.113.0-r1.ebuild | 99 +++++++++++ 5 files changed, 327 insertions(+) create mode 100644 kde-frameworks/kio/files/kio-5.113.0-fix-crash-malformed-exec.patch create mode 100644 kde-frameworks/kio/files/kio-5.113.0-fix-crash-while-copying.patch create mode 100644 kde-frameworks/kio/kio-5.113.0-r1.ebuild (limited to 'kde-frameworks') diff --git a/kde-frameworks/Manifest.gz b/kde-frameworks/Manifest.gz index fa8559258217..98c07559797a 100644 Binary files a/kde-frameworks/Manifest.gz and b/kde-frameworks/Manifest.gz differ diff --git a/kde-frameworks/kio/Manifest b/kde-frameworks/kio/Manifest index 4cdcef6e0394..3a5ce1d239c0 100644 --- a/kde-frameworks/kio/Manifest +++ b/kde-frameworks/kio/Manifest @@ -1,7 +1,10 @@ +AUX kio-5.113.0-fix-crash-malformed-exec.patch 1629 BLAKE2B aa05b4b860cfd17f5676227ebffa42c9f5a0454eb3c5f1e5805ab80cf0bdeaa830cdb3f60d30895598edf8fc13803498094957a78368d709bac17f9d594695ae SHA512 1a307e14847928053440eb6cdf34a99f3296026f82e25a640619027df7d76a5ea72d6586a740ab5331b2fd74c4ef093a21e9c9cef350f53e521fc712be2d6561 +AUX kio-5.113.0-fix-crash-while-copying.patch 6118 BLAKE2B 0dee76a2102cc044deceb755ca8cd9438a40ba8f1710538325e4ca4b51a28de658ee04a8cc7585e4e72e9885f418bd864ac7f196edf8c30b57b61d95110b9233 SHA512 566ff7ce4032d3a83013f24370fc4f73f4b6e2c61b8288332cda7db61f5628eced0388e953223b333d17d8d33e5f4071345ffde35c024a4007c130e2660b94b9 DIST kio-5.112.0.tar.xz 3798280 BLAKE2B 735ce95f4efff32f62f440700bf63e178686d376dcbeee57fe4d7a322fb577a023c1b54ef5a769e7045142710603e03ceaa96025e2273df204218f8664755f66 SHA512 25229d22d25efaf3cc0b172a99b724859c61638caa4cd0d8a84293697d7f734d815b97a884e48a44baf8db2697acbd0d4d3cac15b1eca7f8c6edace902680e09 DIST kio-5.113.0.tar.xz 3798768 BLAKE2B bd72d5b10cb76ffdb4074684c29764acaca53f9da3d228bf801c8b7365fe1b878b53261ed029e8836cb78a2621443d2c552e8715678d44dd484e9517258d9bff SHA512 25524882e46bec036cb8bd536c758df1570cdfd3dd037f22f9a764801ed2838aa109bf10c17021a1993d78c7f31e45e37b3861764efe47023ebfacfacf5e9024 DIST kio-5.247.0.tar.xz 3349268 BLAKE2B 7645c1181831301f217482613cf05063e6b44bfd2b1492051e6024adf341095cf8b480654e09291029118404099b69c3658deb88b7b1e39106dfc4833519caec SHA512 da56980d742d847ebe3e9156297425aba5a328a4ca0898a3e00907e0a5005b735d5712553d84c1e1e8c12bfbf14e63970df3d9f883fddf491bfddd5bc187286b EBUILD kio-5.112.0.ebuild 2347 BLAKE2B 30baa33d0e1f157353faca3fe4a2304cc1574bcb1611a757bd669bdf8f74ebf9d7890a3acfeb203d71dd493cb3032b07b4e2eb2272ffe558699f9f7b20197d26 SHA512 a8e7b2b896a9d7721c10835527d0a578ee5a235a25883f8a09bda00639d9d18b4e56d7ae0384b8996f456fd88dd0d77baa5c91ba6afad4cffacb637b36b40405 +EBUILD kio-5.113.0-r1.ebuild 2585 BLAKE2B b6c21042dba1e8f64c2fcf89608ad696e4f8aebd88746c2f5c26bbad530697597e7c3eb1040c58c05db9f2f18c7c064a9122ee646e5dd455eaee0310a1353b8b SHA512 36cd7afa9f968cf35334eb607c7828d2d64c826d71656da99aada6be8e961b7f3b85c39e3bc60e29c380da179a30ac697d677e75d40da2f80b95da3c46090054 EBUILD kio-5.113.0.ebuild 2437 BLAKE2B 42e4cc0898c4dc6fbb30b03673f14547ee28098ec5161fe351f50cb53992a0069735acf7de17d96519e2376a895c378e9be766d0c52b4bdaf008b732b0a7f13a SHA512 b94d864d9a46d9e8de3235c3995f53751c3aa037d23564521dd0040caeec4d3aac3772bc376bb7d400a18ac92dc418c191ec0073dcec3c351914c8a3ebd1e1d4 EBUILD kio-5.247.0.ebuild 2209 BLAKE2B 318161549c9c2cae619d5d3f19bed89fa194b28e61abc2f51aeb7903eb3effeb38b2916268dc388e4565d32cb80b1fcf3b9ca14d1c1ef1f7c33cfb224007dd7d SHA512 fe5572ae56ca7ce9ba8c8f0281bcaf10d256adf8a5b61873ad52005a093132575098722bf30fa4b82f54e182b27c48a74104177c7b2ba7d27c21a33b410da8fa MISC metadata.xml 776 BLAKE2B c30d6d930265af6c0f0d5e01e2ad7b4c7961190f013e9447dea890880f947a0ad006ac523e7363e50a58221d807e1b9ce78270800a20226906e48980eb332b6a SHA512 ccf86c003f2933287e41fcac9980f07006b3bde5a303f241d7a1fadeffa0b22656ea6e51fadd5ea5c40d7e8fa0debaf16a0ac004db317a18c99d80461bc82115 diff --git a/kde-frameworks/kio/files/kio-5.113.0-fix-crash-malformed-exec.patch b/kde-frameworks/kio/files/kio-5.113.0-fix-crash-malformed-exec.patch new file mode 100644 index 000000000000..3688fa4af276 --- /dev/null +++ b/kde-frameworks/kio/files/kio-5.113.0-fix-crash-malformed-exec.patch @@ -0,0 +1,41 @@ +From ebad60218b9d9e6901ae48c3dec9b90da963809c Mon Sep 17 00:00:00 2001 +From: Harald Sitter +Date: Wed, 13 Dec 2023 07:44:01 +0100 +Subject: [PATCH] kpropertiesdialog: don't trip over malformed Exec + +when the user incorrectly put env vars into the Program field the +resulting desktop file will be somewhat malformed and literally contain + +> Exec='FOO=1 Bar' + +this then needs careful handling when parsing so we don't accidentally +drain the execline list. when this scenario appears we'll need to assume +the last item in the list is the program as we can't really tell if it +is a program that looks like an env var or an env var without program + +BUG: 465290 +(cherry picked from commit 78d4364677fbe658c6e05d19bb158f895403ccc9) +--- + src/widgets/kpropertiesdialog.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/widgets/kpropertiesdialog.cpp b/src/widgets/kpropertiesdialog.cpp +index 93ec0759cf..25061825af 100644 +--- a/src/widgets/kpropertiesdialog.cpp ++++ b/src/widgets/kpropertiesdialog.cpp +@@ -3379,6 +3379,12 @@ KDesktopPropsPlugin::KDesktopPropsPlugin(KPropertiesDialog *_props) + execLine.pop_front(); + } + for (auto env : execLine) { ++ if (execLine.length() <= 1) { ++ // Don't empty out the list. If the last element contains an equal sign we have to treat it as part of the ++ // program name lest we have no program ++ // https://bugs.kde.org/show_bug.cgi?id=465290 ++ break; ++ } + if (!env.contains(QLatin1String("="))) { + break; + } +-- +GitLab + diff --git a/kde-frameworks/kio/files/kio-5.113.0-fix-crash-while-copying.patch b/kde-frameworks/kio/files/kio-5.113.0-fix-crash-while-copying.patch new file mode 100644 index 000000000000..845e6bc64339 --- /dev/null +++ b/kde-frameworks/kio/files/kio-5.113.0-fix-crash-while-copying.patch @@ -0,0 +1,184 @@ +From 6bea074739d5a75920d5540bc266549df5642511 Mon Sep 17 00:00:00 2001 +From: Akseli Lahtinen +Date: Fri, 1 Dec 2023 11:27:26 +0000 +Subject: [PATCH] WidgetsAskUserActionHandler: Use QPointer to check the + validity of parent widgets + +If Dolphin is closed during the copying process, +and the overwrite/skip dialog appears, +this crashes the copying process since the +parent shows to faulty location. + +Use QPointer to check that the parent widgets are still +valid. If not, we just use nullptr, and the dialogs +will still open. + +This also cleans some repetition in code. + +BUG:448532 +(cherry picked from commit bdef648edd54e146c30e881d8eb95990a59c5bbc) +--- + src/widgets/widgetsaskuseractionhandler.cpp | 90 +++++++++------------ + 1 file changed, 39 insertions(+), 51 deletions(-) + +diff --git a/src/widgets/widgetsaskuseractionhandler.cpp b/src/widgets/widgetsaskuseractionhandler.cpp +index fe2975d0ce..9cbaaec99f 100644 +--- a/src/widgets/widgetsaskuseractionhandler.cpp ++++ b/src/widgets/widgetsaskuseractionhandler.cpp +@@ -22,6 +22,7 @@ + + #include + #include ++#include + #include + #include + +@@ -40,7 +41,10 @@ + void savePersistentUserReply(KIO::AskUserActionInterface::MessageDialogType type, KConfigGroup &cg, const QString &dontAskAgainName, int result); + + WidgetsAskUserActionHandler *const q; +- QWidget *m_parentWidget = nullptr; ++ QPointer m_parentWidget = nullptr; ++ ++ QWidget *getParentWidget(KJob *job); ++ QWidget *getParentWidget(QWidget *widget); + }; + + bool KIO::WidgetsAskUserActionHandlerPrivate::gotPersistentUserReply(KIO::AskUserActionInterface::MessageDialogType type, +@@ -106,6 +110,36 @@ + } + } + ++QWidget *KIO::WidgetsAskUserActionHandlerPrivate::getParentWidget(KJob *job) ++{ ++ // This needs to be in qpointer, otherwise copying process ++ // will crash if done in background and dolphin is closed ++ QPointer parentWidget = nullptr; ++ ++ if (job) { ++ parentWidget = KJobWidgets::window(job); ++ } ++ ++ return getParentWidget(parentWidget); ++} ++ ++QWidget *KIO::WidgetsAskUserActionHandlerPrivate::getParentWidget(QWidget *widget) ++{ ++ // This needs to be in qpointer, otherwise copying process ++ // will crash if done in background and dolphin is closed ++ QPointer parentWidget = widget; ++ ++ if (!parentWidget) { ++ parentWidget = this->m_parentWidget; ++ } ++ ++ if (!parentWidget) { ++ parentWidget = qApp->activeWindow(); ++ } ++ ++ return parentWidget; ++} ++ + KIO::WidgetsAskUserActionHandler::WidgetsAskUserActionHandler(QObject *parent) + : KIO::AskUserActionInterface(parent) + , d(new WidgetsAskUserActionHandlerPrivate(this)) +@@ -128,22 +162,8 @@ + const QDateTime &mtimeSrc, + const QDateTime &mtimeDest) + { +- QWidget *parentWidget = nullptr; +- +- if (job) { +- parentWidget = KJobWidgets::window(job); +- } +- +- if (!parentWidget) { +- parentWidget = d->m_parentWidget; +- } +- +- if (!parentWidget) { +- parentWidget = qApp->activeWindow(); +- } +- + QMetaObject::invokeMethod(qGuiApp, [=] { +- auto *dlg = new KIO::RenameDialog(parentWidget, title, src, dest, options, sizeSrc, sizeDest, ctimeSrc, ctimeDest, mtimeSrc, mtimeDest); ++ auto *dlg = new KIO::RenameDialog(d->getParentWidget(job), title, src, dest, options, sizeSrc, sizeDest, ctimeSrc, ctimeDest, mtimeSrc, mtimeDest); + + dlg->setAttribute(Qt::WA_DeleteOnClose); + dlg->setWindowModality(Qt::WindowModal); +@@ -161,22 +181,8 @@ + + void KIO::WidgetsAskUserActionHandler::askUserSkip(KJob *job, KIO::SkipDialog_Options options, const QString &errorText) + { +- QWidget *parentWidget = nullptr; +- +- if (job) { +- parentWidget = KJobWidgets::window(job); +- } +- +- if (!parentWidget) { +- parentWidget = d->m_parentWidget; +- } +- +- if (!parentWidget) { +- parentWidget = qApp->activeWindow(); +- } +- + QMetaObject::invokeMethod(qGuiApp, [=] { +- auto *dlg = new KIO::SkipDialog(parentWidget, options, errorText); ++ auto *dlg = new KIO::SkipDialog(d->getParentWidget(job), options, errorText); + dlg->setAttribute(Qt::WA_DeleteOnClose); + dlg->setWindowModality(Qt::WindowModal); + +@@ -373,16 +379,6 @@ + return; + } + +- QWidget *parentWidget = parent; +- +- if (!parentWidget) { +- parentWidget = d->m_parentWidget; +- } +- +- if (!parentWidget) { +- parentWidget = qApp->activeWindow(); +- } +- + const KGuiItem primaryActionButton(primaryActionText, primaryActionIconName); + const KGuiItem secondaryActionButton(secondaryActionText, secondaryActionIconName); + +@@ -412,7 +408,7 @@ + hasCancelButton = true; + break; + case AskUserActionInterface::SSLMessageBox: +- d->sslMessageBox(text, metaData, parentWidget); ++ d->sslMessageBox(text, metaData, d->getParentWidget(parent)); + return; + case AskUserActionInterface::Information: + dlgType = KMessageDialog::Information; +@@ -442,7 +438,7 @@ + + QMetaObject::invokeMethod(qGuiApp, [=]() { + auto cancelButton = hasCancelButton ? KStandardGuiItem::cancel() : KGuiItem(); +- auto *dialog = new KMessageDialog(dlgType, text, parentWidget); ++ auto *dialog = new KMessageDialog(dlgType, text, d->getParentWidget(parent)); + + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->setCaption(title); +@@ -492,15 +488,7 @@ + + void KIO::WidgetsAskUserActionHandlerPrivate::sslMessageBox(const QString &text, const KIO::MetaData &metaData, QWidget *parent) + { +- QWidget *parentWidget = parent; +- +- if (!parentWidget) { +- parentWidget = m_parentWidget; +- } +- +- if (!parentWidget) { +- parentWidget = qApp->activeWindow(); +- } ++ QWidget *parentWidget = getParentWidget(parent); + + const QStringList sslList = metaData.value(QStringLiteral("ssl_peer_chain")).split(QLatin1Char('\x01'), Qt::SkipEmptyParts); + diff --git a/kde-frameworks/kio/kio-5.113.0-r1.ebuild b/kde-frameworks/kio/kio-5.113.0-r1.ebuild new file mode 100644 index 000000000000..b2f3e4451367 --- /dev/null +++ b/kde-frameworks/kio/kio-5.113.0-r1.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_DESIGNERPLUGIN="true" +ECM_HANDBOOK="optional" +ECM_HANDBOOK_DIR="docs" +ECM_TEST="forceoptional" +PVCUT=$(ver_cut 1-2) +QTMIN=5.15.9 +inherit ecm frameworks.kde.org xdg-utils + +DESCRIPTION="Framework providing transparent file and data management" + +LICENSE="LGPL-2+" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +IUSE="acl kerberos kf6compat +kwallet X" + +# tests hang +RESTRICT="test" + +RDEPEND=" + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtdeclarative-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5 + >=dev-qt/qtnetwork-${QTMIN}:5[ssl] + >=dev-qt/qtwidgets-${QTMIN}:5 + >=dev-qt/qtxml-${QTMIN}:5 + =kde-frameworks/kauth-${PVCUT}*:5 + =kde-frameworks/karchive-${PVCUT}*:5 + =kde-frameworks/kbookmarks-${PVCUT}*:5 + =kde-frameworks/kcodecs-${PVCUT}*:5 + =kde-frameworks/kcompletion-${PVCUT}*:5 + =kde-frameworks/kconfig-${PVCUT}*:5 + =kde-frameworks/kconfigwidgets-${PVCUT}*:5 + =kde-frameworks/kcoreaddons-${PVCUT}*:5 + =kde-frameworks/kcrash-${PVCUT}*:5 + =kde-frameworks/kdbusaddons-${PVCUT}*:5 + =kde-frameworks/kguiaddons-${PVCUT}*:5 + =kde-frameworks/ki18n-${PVCUT}*:5 + =kde-frameworks/kiconthemes-${PVCUT}*:5 + =kde-frameworks/kitemviews-${PVCUT}*:5 + =kde-frameworks/kjobwidgets-${PVCUT}*:5 + =kde-frameworks/knotifications-${PVCUT}*:5 + =kde-frameworks/kservice-${PVCUT}*:5 + =kde-frameworks/ktextwidgets-${PVCUT}*:5 + =kde-frameworks/kwidgetsaddons-${PVCUT}*:5 + =kde-frameworks/kwindowsystem-${PVCUT}*:5[X?] + =kde-frameworks/kxmlgui-${PVCUT}*:5 + =kde-frameworks/solid-${PVCUT}*:5 + sys-power/switcheroo-control + acl? ( + sys-apps/attr + virtual/acl + ) + handbook? ( + dev-libs/libxml2 + dev-libs/libxslt + =kde-frameworks/kdoctools-${PVCUT}*:5 + ) + kerberos? ( virtual/krb5 ) + kf6compat? ( kde-apps/kio-extras:6 ) + kwallet? ( =kde-frameworks/kwallet-${PVCUT}*:5 ) + X? ( >=dev-qt/qtx11extras-${QTMIN}:5 ) +" +DEPEND="${RDEPEND} + >=dev-qt/qtconcurrent-${QTMIN}:5 + test? ( sys-libs/zlib ) +" +PDEPEND=">=kde-frameworks/kded-${PVCUT}:5" + +PATCHES=( + "${FILESDIR}/${P}-fix-crash-while-copying.patch" # KDE-bug 448532 + "${FILESDIR}/${P}-fix-crash-malformed-exec.patch" # KDE-bug 465290 +) + +src_configure() { + local mycmakeargs=( + -DKIO_NO_PUBLIC_QTCONCURRENT=ON + $(cmake_use_find_package acl ACL) + $(cmake_use_find_package kerberos GSSAPI) + $(cmake_use_find_package kwallet KF5Wallet) + -DKF6_COMPAT_BUILD=$(usex kf6compat) + -DWITH_X11=$(usex X) + ) + + ecm_src_configure +} + +pkg_postinst() { + ecm_pkg_postinst + xdg_desktop_database_update +} + +pkg_postrm() { + ecm_pkg_postrm + xdg_desktop_database_update +} -- cgit v1.2.3