diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2021-11-09 15:35:21 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2021-11-09 18:14:20 +0100 |
commit | 5c3a65d7d43f8204ab5aa011bd8393d4e242a102 (patch) | |
tree | fe9b63790b28db04d17e4fd372e9856916427395 /kde-plasma/libkworkspace | |
parent | kde-plasma/libkworkspace: 5.23.3 version bump (diff) | |
download | gentoo-5c3a65d7d43f8204ab5aa011bd8393d4e242a102.tar.gz gentoo-5c3a65d7d43f8204ab5aa011bd8393d4e242a102.tar.bz2 gentoo-5c3a65d7d43f8204ab5aa011bd8393d4e242a102.zip |
kde-plasma/libkworkspace: Fix sleep/suspend race condition
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>
Diffstat (limited to 'kde-plasma/libkworkspace')
-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.3.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 000000000000..411bebf70412 --- /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.3.ebuild b/kde-plasma/libkworkspace/libkworkspace-5.23.3.ebuild index aacfb311c9ba..12ee0890aa83 100644 --- a/kde-plasma/libkworkspace/libkworkspace-5.23.3.ebuild +++ b/kde-plasma/libkworkspace/libkworkspace-5.23.3.ebuild @@ -37,6 +37,11 @@ DEPEND="${RDEPEND} S="${S}/${PN}" +PATCHES=( + # Pending: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1164 + "${FILESDIR}"/${P}-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 |