diff --git a/0001-libkworkspace-Interim-fix-for-the-logout-issue.patch b/0001-libkworkspace-Interim-fix-for-the-logout-issue.patch new file mode 100644 index 0000000..335a850 --- /dev/null +++ b/0001-libkworkspace-Interim-fix-for-the-logout-issue.patch @@ -0,0 +1,67 @@ +From 74fef0a9973e62df16ff8fc97a795bce1fa2a273 Mon Sep 17 00:00:00 2001 +From: David Edmundson +Date: Tue, 16 Feb 2021 11:27:53 +0000 +Subject: [PATCH] [libkworkspace] Interim fix for the logout issue + +Calls to a DBus activated service can fail if the sender quits whilst +the service is spawning +(https://gitlab.freedesktop.org/dbus/dbus/-/issues/72) and using +dbus-daemon. + +This is a lazy interim fix that just makes these calls block as proper +fixes will require more work. + +BUG: 432460 + + +(cherry picked from commit 81d61861608012e4d7a19e6f85b8d136c298f31f) +--- + libkworkspace/sessionmanagement.cpp | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/libkworkspace/sessionmanagement.cpp b/libkworkspace/sessionmanagement.cpp +index 4b80485cb..3dbe40f0d 100644 +--- a/libkworkspace/sessionmanagement.cpp ++++ b/libkworkspace/sessionmanagement.cpp +@@ -130,10 +130,10 @@ void SessionManagement::requestShutdown(ConfirmationMode confirmationMode) + } + if (confirm) { + LogoutPromptIface iface; +- iface.promptShutDown(); ++ iface.promptShutDown().waitForFinished(); + } else { + ShutdownIface iface; +- iface.logoutAndShutdown(); ++ iface.logoutAndShutdown().waitForFinished(); + } + } + +@@ -148,10 +148,10 @@ void SessionManagement::requestReboot(ConfirmationMode confirmationMode) + } + if (confirm) { + LogoutPromptIface iface; +- iface.promptReboot(); ++ iface.promptReboot().waitForFinished(); + } else { + ShutdownIface iface; +- iface.logoutAndReboot(); ++ iface.logoutAndReboot().waitForFinished(); + } + } + +@@ -166,10 +166,10 @@ void SessionManagement::requestLogout(ConfirmationMode confirmationMode) + } + if (confirm) { + LogoutPromptIface iface; +- iface.promptLogout(); ++ iface.promptLogout().waitForFinished(); + } else { + ShutdownIface iface; +- iface.logout(); ++ iface.logout().waitForFinished(); + } + } + +-- +2.25.1 + diff --git a/0001-locations-runner-Fix-absolute-filepath-arguments.patch b/0001-locations-runner-Fix-absolute-filepath-arguments.patch new file mode 100644 index 0000000..90d2a12 --- /dev/null +++ b/0001-locations-runner-Fix-absolute-filepath-arguments.patch @@ -0,0 +1,31 @@ +From 7070394fb3779032f20b8165de5b5d6b9f104b3a Mon Sep 17 00:00:00 2001 +From: Alexander Lohnau +Date: Wed, 17 Feb 2021 16:23:56 +0100 +Subject: [PATCH] locations runner: Fix absolute filepath + arguments + +The KUriFilter would interpret this as a path and consequently +produce a result. + +BUG: 433053 +FIXED-IN: 5.21 +--- + runners/locations/locationrunner.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/runners/locations/locationrunner.cpp b/runners/locations/locationrunner.cpp +index be1be7e6a..175c07023 100644 +--- a/runners/locations/locationrunner.cpp ++++ b/runners/locations/locationrunner.cpp +@@ -52,7 +52,8 @@ LocationsRunner::~LocationsRunner() + void LocationsRunner::match(Plasma::RunnerContext &context) + { + QString term = context.query(); +- QFileInfo tmpInfo(KShell::tildeExpand(term)); ++ // If we have a query with an executable and optionally arguments, BUG: 433053 ++ QFileInfo tmpInfo(KShell::tildeExpand(KShell::splitArgs(term).constFirst())); + if (tmpInfo.isFile() && tmpInfo.isExecutable()) { + return; + } +-- +2.25.1 + diff --git a/0001-locations-runner-Fix-empty-list-on-invalid-shell-quo.patch b/0001-locations-runner-Fix-empty-list-on-invalid-shell-quo.patch new file mode 100644 index 0000000..f6c3703 --- /dev/null +++ b/0001-locations-runner-Fix-empty-list-on-invalid-shell-quo.patch @@ -0,0 +1,32 @@ +From 3a672ee43f48655ddcb544cc947680ba0aab7d2a Mon Sep 17 00:00:00 2001 +From: Alexander Lohnau +Date: Mon, 22 Feb 2021 18:10:08 +0100 +Subject: [PATCH] locations runner: Fix empty list on invalid shell quotes + +--- + runners/locations/locationrunner.cpp | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/runners/locations/locationrunner.cpp b/runners/locations/locationrunner.cpp +index 175c07023..d1edeef02 100644 +--- a/runners/locations/locationrunner.cpp ++++ b/runners/locations/locationrunner.cpp +@@ -53,9 +53,12 @@ void LocationsRunner::match(Plasma::RunnerContext &context) + { + QString term = context.query(); + // If we have a query with an executable and optionally arguments, BUG: 433053 +- QFileInfo tmpInfo(KShell::tildeExpand(KShell::splitArgs(term).constFirst())); +- if (tmpInfo.isFile() && tmpInfo.isExecutable()) { +- return; ++ const QStringList split = KShell::splitArgs(term); ++ if (!split.isEmpty()) { ++ QFileInfo tmpInfo(KShell::tildeExpand(split.first())); ++ if (tmpInfo.isFile() && tmpInfo.isExecutable()) { ++ return; ++ } + } + // We want to expand ENV variables like $HOME to get the actual path, BUG: 358221 + KUriFilter::self()->filterUri(term, {QStringLiteral("kshorturifilter")}); +-- +2.25.1 + diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index fc5b944..e67e8ee 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Mon Feb 22 17:53:47 UTC 2021 - Fabian Vogt + +- Add patch to fix krunner crash caused by mismatched quotes: + * 0001-locations-runner-Fix-empty-list-on-invalid-shell-quo.patch + +------------------------------------------------------------------- +Thu Feb 18 11:18:08 UTC 2021 - Fabian Vogt + +- Add patch to fix starting applications with arguments from krunner + (kde#433053): + * 0001-locations-runner-Fix-absolute-filepath-arguments.patch + +------------------------------------------------------------------- +Wed Feb 17 13:35:44 UTC 2021 - Fabian Vogt + +- Add patch to fix race on logout (kde#432460): + * 0001-libkworkspace-Interim-fix-for-the-logout-issue.patch + ------------------------------------------------------------------- Thu Feb 11 18:23:15 UTC 2021 - Fabian Vogt diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index a86cbcc..29c4bba 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -42,6 +42,10 @@ Source1: plasma-workspace-%{version}.tar.xz.sig Source2: plasma.keyring %endif Source3: baselibs.conf +# PATCH-FIX-UPSTREAM +Patch1: 0001-libkworkspace-Interim-fix-for-the-logout-issue.patch +Patch2: 0001-locations-runner-Fix-absolute-filepath-arguments.patch +Patch3: 0001-locations-runner-Fix-empty-list-on-invalid-shell-quo.patch # PATCHES 501-??? are PATCH-FIX-OPENSUSE Patch501: 0001-Use-qdbus-qt5.patch Patch502: 0001-Ignore-default-sddm-face-icons.patch