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

Reply via email to