summaryrefslogtreecommitdiff
path: root/kde-frameworks
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-05-19 13:06:44 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-05-19 13:06:44 +0100
commit97967bbbae8f43c98315b079178f1717f130e302 (patch)
tree27523f8cbd75ed85f33294862514b786a30dd6e5 /kde-frameworks
parent30c53e395853f5bfe805a1e429fcf26666eed8f8 (diff)
gentoo resync : 19.05.2018
Diffstat (limited to 'kde-frameworks')
-rw-r--r--kde-frameworks/Manifest.gzbin13893 -> 13894 bytes
-rw-r--r--kde-frameworks/solid/Manifest2
-rw-r--r--kde-frameworks/solid/files/solid-5.46.0-crash-on-unmount.patch193
-rw-r--r--kde-frameworks/solid/solid-5.46.0-r1.ebuild35
4 files changed, 230 insertions, 0 deletions
diff --git a/kde-frameworks/Manifest.gz b/kde-frameworks/Manifest.gz
index d27dc169d2a8..00a3a7d614b7 100644
--- a/kde-frameworks/Manifest.gz
+++ b/kde-frameworks/Manifest.gz
Binary files differ
diff --git a/kde-frameworks/solid/Manifest b/kde-frameworks/solid/Manifest
index f94bfc86928a..44bddcb2ee2d 100644
--- a/kde-frameworks/solid/Manifest
+++ b/kde-frameworks/solid/Manifest
@@ -1,5 +1,7 @@
+AUX solid-5.46.0-crash-on-unmount.patch 8078 BLAKE2B b82620b7927d4810050ec3057c090fdbd516ae35f9ee6079966f40f88a5fb7e3a95d29d324c029575001ba9865980faea20a3a246c851d5d6b41b27d4074d0b2 SHA512 01023049c0a3de2e7aa104c6e43c72acc18227e4c361f884ab07f1c5d10538b4e621b3b5e41150b6e5c98e96a0ed26080d2e78c6e36275ab3db2b414af078647
DIST solid-5.43.0.tar.xz 249208 BLAKE2B 26db66973201b164b227e25763f619a4988edfd230673eb5d322eab438b1e6e40261b5a9dac7f921de27490c93e874efdf29c843bd82dbeca030693cad579e4d SHA512 6a7dc7d75a0340e69900758be5aecc201bf8c1e5a28b549e4f50107ae9ff800701b0abb88cf0c917347723e62d3222f4e066e399c916c537f3560ac7b9d20f1d
DIST solid-5.46.0.tar.xz 257668 BLAKE2B 3ec991f4b5b9f68cbf6770663625f7c332f1cbfc3d0ec6b489b464c8c460bd509dc570135075cae45430b2857d9cccbc6df48bf754f4d880858e4484f8fcbb32 SHA512 3b5a62f9723cd164a0ee2504e27a650bfae4a9d6b063db08e95d4a2735242092b39cb5b509d28408ca435adce18bf780c22a0acb4c8bf47749c5273edf6ed46c
EBUILD solid-5.43.0.ebuild 721 BLAKE2B 54d4937bf158d6829b43a52ceadc0cf9291a96a4f1c5b876d478511e40201f9c397a1c669457683eb9d93e4c46a0e815fcc1805cbf65959e274eb1a46ecab72a SHA512 3497cfe5c1761c01db16b649126d2953e25b98fe6d628c2df9fb1140cbb787e78be3050a1999bfc93c7a917086dfd829674b54121e1f40cb613fbf143d585b85
+EBUILD solid-5.46.0-r1.ebuild 779 BLAKE2B 818923b01483c2ead8fbccc71bb40f1fc115a4cfe2e038ac06ea4bbfecc3ab429fdc0b42ee270158ae2f95b5644ff156f06ac58396cdeecc4bd34b7efd2bea87 SHA512 f4d4cfff1e15cbb4def3c66c778b396307489d798728827344fd39859590ac8c1af70e0f9ce9c4867c3da6892530a60bfc81d3f75a1da396c1c26303729719f8
EBUILD solid-5.46.0.ebuild 723 BLAKE2B 911ac9dfbdb3d07f1813c2ab918afc61db02f32503170a7d602fe3c3e8c3dc9edb40359132c80f4d11c913c50fdef1928898e7b7a91dcdea1a041090cc91368c SHA512 34fc5f901ea145470607edb4a636fcc0aaeb86b475140ccb6b595315cf09e20d3e146b763ff76af8d7dc89aa010eb884de53caac53e646b88d7aaa81dae54204
MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3
diff --git a/kde-frameworks/solid/files/solid-5.46.0-crash-on-unmount.patch b/kde-frameworks/solid/files/solid-5.46.0-crash-on-unmount.patch
new file mode 100644
index 000000000000..378890b6b878
--- /dev/null
+++ b/kde-frameworks/solid/files/solid-5.46.0-crash-on-unmount.patch
@@ -0,0 +1,193 @@
+From 967dc53dc9a5d1c7ba0c9f57fcb9bc640cd9663b Mon Sep 17 00:00:00 2001
+From: Kai Uwe Broulik <kde@privat.broulik.de>
+Date: Wed, 16 May 2018 14:37:33 +0200
+Subject: [FStab Handling] Clean up process running by using lambdas
+
+Encapsulates the QProcess* into the job it's supposed to be doing without storing it as a member and polluting state when multiple
+actions are requested simultaneously.
+
+CCBUG: 388499
+
+Differential Revision: https://phabricator.kde.org/D9653
+---
+ src/solid/devices/backends/fstab/fstabhandling.cpp | 29 +++++++--------
+ src/solid/devices/backends/fstab/fstabhandling.h | 9 ++---
+ .../devices/backends/fstab/fstabstorageaccess.cpp | 42 ++++++++--------------
+ .../devices/backends/fstab/fstabstorageaccess.h | 3 --
+ 4 files changed, 30 insertions(+), 53 deletions(-)
+
+diff --git a/src/solid/devices/backends/fstab/fstabhandling.cpp b/src/solid/devices/backends/fstab/fstabhandling.cpp
+index 9d078dd..e56f55a 100644
+--- a/src/solid/devices/backends/fstab/fstabhandling.cpp
++++ b/src/solid/devices/backends/fstab/fstabhandling.cpp
+@@ -226,34 +226,31 @@ QStringList Solid::Backends::Fstab::FstabHandling::options(const QString &device
+ return options;
+ }
+
+-QProcess *Solid::Backends::Fstab::FstabHandling::callSystemCommand(const QString &commandName,
+- const QStringList &args,
+- QObject *obj, const char *slot)
++bool Solid::Backends::Fstab::FstabHandling::callSystemCommand(const QString &commandName, const QStringList &args,
++ const QObject *receiver, std::function<void(QProcess *)> callback)
+ {
+ QStringList env = QProcess::systemEnvironment();
+ env.replaceInStrings(QRegExp("^PATH=(.*)", Qt::CaseInsensitive), "PATH=/sbin:/bin:/usr/sbin/:/usr/bin");
+
+- QProcess *process = new QProcess(obj);
++ QProcess *process = new QProcess();
+
+- QObject::connect(process, SIGNAL(finished(int,QProcess::ExitStatus)),
+- obj, slot);
++ QObject::connect(process, static_cast<void(QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished), receiver,
++ [process, callback](int exitCode, QProcess::ExitStatus exitStatus) {
++ Q_UNUSED(exitCode);
++ Q_UNUSED(exitStatus);
++ callback(process);
++ process->deleteLater();
++ });
+
+ process->setEnvironment(env);
+ process->start(commandName, args);
+
+ if (process->waitForStarted()) {
+- return process;
+- } else {
+- delete process;
+- return nullptr;
++ return true;
+ }
+-}
+
+-QProcess *Solid::Backends::Fstab::FstabHandling::callSystemCommand(const QString &commandName,
+- const QString &device,
+- QObject *obj, const char *slot)
+-{
+- return callSystemCommand(commandName, QStringList() << device, obj, slot);
++ delete process;
++ return false;
+ }
+
+ void Solid::Backends::Fstab::FstabHandling::_k_updateMtabMountPointsCache()
+diff --git a/src/solid/devices/backends/fstab/fstabhandling.h b/src/solid/devices/backends/fstab/fstabhandling.h
+index 2b6b9d9..bcd6c33 100644
+--- a/src/solid/devices/backends/fstab/fstabhandling.h
++++ b/src/solid/devices/backends/fstab/fstabhandling.h
+@@ -25,6 +25,8 @@
+ #include <QtCore/QString>
+ #include <QtCore/QMultiHash>
+
++#include <functional>
++
+ class QProcess;
+ class QObject;
+
+@@ -44,12 +46,7 @@ public:
+ static QStringList currentMountPoints(const QString &device);
+ static QStringList mountPoints(const QString &device);
+ static QStringList options(const QString &device);
+- static QProcess *callSystemCommand(const QString &commandName,
+- const QStringList &args,
+- QObject *obj, const char *slot);
+- static QProcess *callSystemCommand(const QString &commandName,
+- const QString &device,
+- QObject *obj, const char *slot);
++ static bool callSystemCommand(const QString &commandName, const QStringList &args, const QObject *recvr, std::function<void(QProcess *)> callback);
+ static void flushMtabCache();
+ static void flushFstabCache();
+
+diff --git a/src/solid/devices/backends/fstab/fstabstorageaccess.cpp b/src/solid/devices/backends/fstab/fstabstorageaccess.cpp
+index a4063ff..e8fce5b 100644
+--- a/src/solid/devices/backends/fstab/fstabstorageaccess.cpp
++++ b/src/solid/devices/backends/fstab/fstabstorageaccess.cpp
+@@ -91,10 +91,13 @@ bool FstabStorageAccess::setup()
+ return false;
+ }
+ m_fstabDevice->broadcastActionRequested("setup");
+- m_process = FstabHandling::callSystemCommand("mount", filePath(),
+- this, SLOT(slotSetupFinished(int,QProcess::ExitStatus)));
+-
+- return m_process != nullptr;
++ return FstabHandling::callSystemCommand("mount", {filePath()}, this, [this](QProcess *process) {
++ if (process->exitCode() == 0) {
++ m_fstabDevice->broadcastActionDone("setup", Solid::NoError, QString());
++ } else {
++ m_fstabDevice->broadcastActionDone("setup", Solid::UnauthorizedOperation, process->readAllStandardError());
++ }
++ });
+ }
+
+ void FstabStorageAccess::slotSetupRequested()
+@@ -108,10 +111,13 @@ bool FstabStorageAccess::teardown()
+ return false;
+ }
+ m_fstabDevice->broadcastActionRequested("teardown");
+- m_process = FstabHandling::callSystemCommand("umount", filePath(),
+- this, SLOT(slotTeardownFinished(int,QProcess::ExitStatus)));
+-
+- return m_process != nullptr;
++ return FstabHandling::callSystemCommand("umount", {filePath()}, this, [this](QProcess *process) {
++ if (process->exitCode() == 0) {
++ m_fstabDevice->broadcastActionDone("teardown", Solid::NoError, QString());
++ } else {
++ m_fstabDevice->broadcastActionDone("teardown", Solid::UnauthorizedOperation, process->readAllStandardError());
++ }
++ });
+ }
+
+ void FstabStorageAccess::slotTeardownRequested()
+@@ -119,31 +125,11 @@ void FstabStorageAccess::slotTeardownRequested()
+ emit teardownRequested(m_fstabDevice->udi());
+ }
+
+-void FstabStorageAccess::slotSetupFinished(int exitCode, QProcess::ExitStatus /*exitStatus*/)
+-{
+- if (exitCode == 0) {
+- m_fstabDevice->broadcastActionDone("setup", Solid::NoError, QString());
+- } else {
+- m_fstabDevice->broadcastActionDone("setup", Solid::UnauthorizedOperation, m_process->readAllStandardError());
+- }
+- delete m_process;
+-}
+-
+ void FstabStorageAccess::slotSetupDone(int error, const QString &errorString)
+ {
+ emit setupDone(static_cast<Solid::ErrorType>(error), errorString, m_fstabDevice->udi());
+ }
+
+-void FstabStorageAccess::slotTeardownFinished(int exitCode, QProcess::ExitStatus /*exitStatus*/)
+-{
+- if (exitCode == 0) {
+- m_fstabDevice->broadcastActionDone("teardown", Solid::NoError, QString());
+- } else {
+- m_fstabDevice->broadcastActionDone("teardown", Solid::UnauthorizedOperation, m_process->readAllStandardError());
+- }
+- delete m_process;
+-}
+-
+ void FstabStorageAccess::slotTeardownDone(int error, const QString &errorString)
+ {
+ emit teardownDone(static_cast<Solid::ErrorType>(error), errorString, m_fstabDevice->udi());
+diff --git a/src/solid/devices/backends/fstab/fstabstorageaccess.h b/src/solid/devices/backends/fstab/fstabstorageaccess.h
+index 10ca0a9..61deb88 100644
+--- a/src/solid/devices/backends/fstab/fstabstorageaccess.h
++++ b/src/solid/devices/backends/fstab/fstabstorageaccess.h
+@@ -68,8 +68,6 @@ Q_SIGNALS:
+ void teardownRequested(const QString &udi) Q_DECL_OVERRIDE;
+
+ private Q_SLOTS:
+- void slotSetupFinished(int exitCode, QProcess::ExitStatus exitStatus);
+- void slotTeardownFinished(int exitCode, QProcess::ExitStatus exitStatus);
+ void onMtabChanged(const QString &device);
+ void connectDBusSignals();
+
+@@ -80,7 +78,6 @@ private Q_SLOTS:
+
+ private:
+ Solid::Backends::Fstab::FstabDevice *m_fstabDevice;
+- QProcess *m_process;
+ QString m_filePath;
+ bool m_isAccessible;
+ bool m_isIgnored;
+--
+cgit v0.11.2
+
diff --git a/kde-frameworks/solid/solid-5.46.0-r1.ebuild b/kde-frameworks/solid/solid-5.46.0-r1.ebuild
new file mode 100644
index 000000000000..89de724de8ef
--- /dev/null
+++ b/kde-frameworks/solid/solid-5.46.0-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+VIRTUALX_REQUIRED="test"
+inherit kde5
+
+DESCRIPTION="Provider for platform independent hardware discovery, abstraction and management"
+LICENSE="LGPL-2.1+"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="nls"
+
+RDEPEND="
+ $(add_qt_dep qtdbus)
+ $(add_qt_dep qtdeclarative)
+ $(add_qt_dep qtwidgets)
+ $(add_qt_dep qtxml)
+ sys-fs/udisks:2
+ virtual/udev
+"
+DEPEND="${RDEPEND}
+ nls? ( $(add_qt_dep linguist-tools) )
+ test? ( $(add_qt_dep qtconcurrent) )
+"
+
+PATCHES=( "${FILESDIR}/${P}-crash-on-unmount.patch" )
+
+pkg_postinst() {
+ kde5_pkg_postinst
+
+ if ! has_version "app-misc/media-player-info" ; then
+ einfo "For media player support, install app-misc/media-player-info"
+ fi
+}