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