diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2021-11-09 15:35:21 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2021-12-10 16:09:54 +0100 |
commit | 92c8a38b51613f972cbbdcf6fe3a6a96612f20c1 (patch) | |
tree | 8bc4350e1a2158a7fef0bbc76621155dd8ea4fb8 | |
parent | sys-libs/kpmcore: drop 21.12.0* (diff) | |
download | kde-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.patch | 48 | ||||
-rw-r--r-- | kde-plasma/libkworkspace/libkworkspace-5.23.49.9999.ebuild | 5 |
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 |