Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=38effe8e8dcab598826f24054a85decc25ebc67d
commit 38effe8e8dcab598826f24054a85decc25ebc67d Author: crazy <[email protected]> Date: Thu Apr 27 17:19:44 2017 +0200 plasma-workspace-5.9.5-2-x86_64 * added backport patch to fix autostart issues when * the app is not found .. diff --git a/source/plasma/plasma-workspace/FrugalBuild b/source/plasma/plasma-workspace/FrugalBuild index 58aa43e..71ba3ee 100644 --- a/source/plasma/plasma-workspace/FrugalBuild +++ b/source/plasma/plasma-workspace/FrugalBuild @@ -4,13 +4,13 @@ pkgname=plasma-workspace pkgver=5.9.5 -pkgrel=1 +pkgrel=2 pkgdesc="KDE Plasma Workspace." groups=('plasma') archs=("x86_64") _F_kde_project="plasma" Finclude kf5 -source+=(kde) +source+=(kde fix-autostart-stuff.patch) depends=("libksysguard5>=$_F_kdever_plasma" "knewstuff>=$_F_kf5_full" "krunner5>=$_F_kf5_full" "kdesu>=$_F_kf5_full" \ "baloo5>=$_F_kf5_full" "kjsembed>=$_F_kf5_full" "knotifyconfig>=$_F_kf5_full" "libkscreen5>=$_F_kdever_plasma" \ "ktexteditor>=$_F_kf5_full" "kinit>=$_F_kf5_full" "kcmutils>=$_F_kf5_full" "kwin5>=$_F_kdever_plasma" \ @@ -50,7 +50,8 @@ replaces+=('kdelibs' 'kdelibs-core' 'kdelibs-data' 'kdelibs-interfaces' 'libkdec conflicts=("${replaces[@]}") sha1sums=('5034b2dd3fad3261a1badd9047270d9d6252642c' \ - '6216aad404aa0b846c835a0e8f9df4941bf74d37') + '6216aad404aa0b846c835a0e8f9df4941bf74d37' \ + '533b18e9291208b3edfa48c3b523e7a5c6fa852e') subpkgs=('plasma-wayland-session') subdescs='Plasma Wayland session' diff --git a/source/plasma/plasma-workspace/fix-autostart-stuff.patch b/source/plasma/plasma-workspace/fix-autostart-stuff.patch new file mode 100644 index 0000000..a657890 --- /dev/null +++ b/source/plasma/plasma-workspace/fix-autostart-stuff.patch @@ -0,0 +1,82 @@ +From ea3f87c5df0251838da71c473fd7b790c932d8b0 Mon Sep 17 00:00:00 2001 +From: David Edmundson <[email protected]> +Date: Thu, 27 Apr 2017 15:52:39 +0100 +Subject: Revert "launch autostart apps in ksmserver using KRun" + +KRun::runApplication will show blocking error dialogs if it fails to +find the executable +This means we don't autostart the next app, which could be fatal if it +comes before... + +Summary: +...kwin/plasma +We shouldn't be having blocking calls in ksmserver it can deadlock +And even in the best case we'd still end up blocking ksplash for 30 +seconds + +We then port to KProcess which was part of the motivation behind the +patch as it +has better stdout handling + +This reverts commit 0f19e92f3e85d064de9cebf280fa8e085485c2e0. + +BUG: 379254 + +Also added port of autostarting applications to KProcess +It has better stdout handling + +Test Plan: Logged in, still got my main session + +Reviewers: #plasma, mart + +Reviewed By: mart + +Subscribers: plasma-devel + +Tags: #plasma + +Differential Revision: https://phabricator.kde.org/D5618 +--- + ksmserver/startup.cpp | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/ksmserver/startup.cpp b/ksmserver/startup.cpp +index e51278b..767116d 100644 +--- a/ksmserver/startup.cpp ++++ b/ksmserver/startup.cpp +@@ -68,9 +68,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + #include <kconfig.h> + #include <kconfiggroup.h> ++#include <kio/desktopexecparser.h> + #include <KSharedConfig> + #include <kprocess.h> +-#include <krun.h> + #include <KNotifyConfig> + #include <KService> + +@@ -679,8 +679,19 @@ void KSMServer::slotAutoStart() + } + KService service(serviceName); + qCInfo(KSMSERVER) << "Starting autostart service " << serviceName; +- if( !KRun::runApplication( service, QList<QUrl>(), nullptr, KRun::RunFlags(), QString(), "0" )) +- qCInfo(KSMSERVER) << "autostart service" << serviceName << "failed to launch"; ++ auto p = new KProcess(this); ++ auto arguments = KIO::DesktopExecParser(service, QList<QUrl>()).resultingArguments(); ++ if (arguments.isEmpty()) { ++ qCInfo(KSMSERVER) << "failed to parse" << serviceName << "for autostart"; ++ continue; ++ } ++ auto program = arguments.takeFirst(); ++ p->setProgram(program, arguments); ++ p->start(); ++ connect(p, static_cast<void (QProcess::*)(int)>(&QProcess::finished), [p](int exitCode) { ++ qCInfo(KSMSERVER) << "autostart service" << p->program() << "finished with exit code " << exitCode; ++ p->deleteLater(); ++ }); + } while (true); + // Loop till we find a service that we can start. + } +-- +cgit v0.11.2 + _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
