commit:     92c8a38b51613f972cbbdcf6fe3a6a96612f20c1
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Nov  9 14:35:21 2021 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Fri Dec 10 15:09:54 2021 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=92c8a38b

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 <AT> jmbreuer.net>
Bug: https://bugs.gentoo.org/818124
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 ...bkworkspace-5.23.3-synchronous-dbus-calls.patch | 48 ++++++++++++++++++++++
 .../libkworkspace-5.23.49.9999.ebuild              |  5 +++
 2 files changed, 53 insertions(+)

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 <k...@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

Reply via email to