aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2021-11-09 15:35:21 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2021-12-10 16:09:54 +0100
commit92c8a38b51613f972cbbdcf6fe3a6a96612f20c1 (patch)
tree8bc4350e1a2158a7fef0bbc76621155dd8ea4fb8
parentsys-libs/kpmcore: drop 21.12.0* (diff)
downloadkde-92c8a38b51613f972cbbdcf6fe3a6a96612f20c1.tar.gz
kde-92c8a38b51613f972cbbdcf6fe3a6a96612f20c1.tar.bz2
kde-92c8a38b51613f972cbbdcf6fe3a6a96612f20c1.zip
kde-plasma/libkworkspace: Fix sleep/suspend race condition
(not fixed in 5.23 branch yet) See also: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1164 Thanks-to: Joe Breuer <kde@jmbreuer.net> Bug: https://bugs.gentoo.org/818124 Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
-rw-r--r--kde-plasma/libkworkspace/files/libkworkspace-5.23.3-synchronous-dbus-calls.patch48
-rw-r--r--kde-plasma/libkworkspace/libkworkspace-5.23.49.9999.ebuild5
2 files changed, 53 insertions, 0 deletions
diff --git a/kde-plasma/libkworkspace/files/libkworkspace-5.23.3-synchronous-dbus-calls.patch b/kde-plasma/libkworkspace/files/libkworkspace-5.23.3-synchronous-dbus-calls.patch
new file mode 100644
index 0000000000..411bebf704
--- /dev/null
+++ b/kde-plasma/libkworkspace/files/libkworkspace-5.23.3-synchronous-dbus-calls.patch
@@ -0,0 +1,48 @@
+From 9ecd45f28dc5c3a4b1716d09e0ba121ec5fb2a50 Mon Sep 17 00:00:00 2001
+From: Joe Breuer <kde@jmbreuer.net>
+Date: Mon, 1 Nov 2021 07:19:51 +0000
+Subject: [PATCH] Fix sleep/suspend sometimes not working ... from
+ ksmserver-logout-greeter, by making the DBus calls synchronous.
+
+---
+ libkworkspace/sessionmanagementbackend.cpp | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/sessionmanagementbackend.cpp b/sessionmanagementbackend.cpp
+index 83cd39395..a77a8a475 100644
+--- a/sessionmanagementbackend.cpp
++++ b/sessionmanagementbackend.cpp
+@@ -137,7 +137,6 @@ void LogindSessionBackend::shutdown()
+ {
+ // logind will confirm credentials with the caller, if the app quits after sending this
+ // this may fail
+- // its not really needed for suspend tasks where the calling app won't be closing
+ m_login1->PowerOff(true).waitForFinished();
+ }
+
+@@ -148,17 +147,19 @@ void LogindSessionBackend::reboot()
+
+ void LogindSessionBackend::suspend()
+ {
+- m_login1->Suspend(true);
++ // these need to be synchronous as well - ksmserver-logout-greeter specifically calls these
++ // and will quit immediately after
++ m_login1->Suspend(true).waitForFinished();
+ }
+
+ void LogindSessionBackend::hybridSuspend()
+ {
+- m_login1->HybridSleep(true);
++ m_login1->HybridSleep(true).waitForFinished();
+ }
+
+ void LogindSessionBackend::hibernate()
+ {
+- m_login1->Hibernate(true);
++ m_login1->Hibernate(true).waitForFinished();;
+ }
+
+ bool LogindSessionBackend::canShutdown() const
+--
+GitLab
+
diff --git a/kde-plasma/libkworkspace/libkworkspace-5.23.49.9999.ebuild b/kde-plasma/libkworkspace/libkworkspace-5.23.49.9999.ebuild
index 252d6c896f..2122fa3b82 100644
--- a/kde-plasma/libkworkspace/libkworkspace-5.23.49.9999.ebuild
+++ b/kde-plasma/libkworkspace/libkworkspace-5.23.49.9999.ebuild
@@ -37,6 +37,11 @@ DEPEND="${RDEPEND}
S="${S}/${PN}"
+PATCHES=(
+ # Pending: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1164
+ "${FILESDIR}"/${PN}-5.23.3-synchronous-dbus-calls.patch # bug 818124
+)
+
src_prepare() {
# delete colliding libkworkspace translations, let ecm_src_prepare do its magic
if [[ ${KDE_BUILD_TYPE} = release ]]; then