summaryrefslogtreecommitdiff
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:11:03 +0100
commit21ed02f5976d3fedfac8e3d7b894685593103c33 (patch)
tree54aa68224134411c6f233d202add552aafd731d0 /kde-plasma/libkworkspace
parentkde-plasma/plasma-systemmonitor: Drop 5.23.4 (r0) (diff)
downloadgentoo-21ed02f5976d3fedfac8e3d7b894685593103c33.tar.gz
gentoo-21ed02f5976d3fedfac8e3d7b894685593103c33.tar.bz2
gentoo-21ed02f5976d3fedfac8e3d7b894685593103c33.zip
kde-plasma/libkworkspace: Fix sleep/suspend race condition
(not fixed in 5.23.4 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>
Diffstat (limited to 'kde-plasma/libkworkspace')
-rw-r--r--kde-plasma/libkworkspace/files/libkworkspace-5.23.3-synchronous-dbus-calls.patch48
-rw-r--r--kde-plasma/libkworkspace/libkworkspace-5.23.4-r1.ebuild60
2 files changed, 108 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.4-r1.ebuild b/kde-plasma/libkworkspace/libkworkspace-5.23.4-r1.ebuild
new file mode 100644
index 000000000000..f0dd4898d65b
--- /dev/null
+++ b/kde-plasma/libkworkspace/libkworkspace-5.23.4-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_TEST="true"
+KDE_ORG_NAME="plasma-workspace"
+KFMIN=5.86.0
+PVCUT=$(ver_cut 1-3)
+QTMIN=5.15.2
+inherit ecm kde.org
+
+DESCRIPTION="Workspace library to interact with the Plasma session manager"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+IUSE=""
+
+RDEPEND="
+ >=dev-qt/qtdbus-${QTMIN}:5
+ >=dev-qt/qtx11extras-${QTMIN}:5
+ >=kde-frameworks/kconfig-${KFMIN}:5
+ >=kde-frameworks/kcoreaddons-${KFMIN}:5
+ >=kde-frameworks/ki18n-${KFMIN}:5
+ >=kde-frameworks/kwindowsystem-${KFMIN}:5
+ >=kde-plasma/kscreenlocker-${PVCUT}:5
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXau
+"
+DEPEND="${RDEPEND}
+ >=kde-frameworks/kinit-${KFMIN}:5
+ >=kde-plasma/kwin-${PVCUT}:5
+"
+
+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
+ find ../po -type f -name "*po" -and -not -name "libkworkspace*" -delete || die
+ rm -rf po/*/docs || die
+ cp -a ../po ./ || die
+ fi
+
+ eapply "${FILESDIR}/${PN}-5.22.80-standalone.patch"
+ sed -e "/set/s/GENTOO_PV/$(ver_cut 1-3)/" -i CMakeLists.txt || die
+ cat >> CMakeLists.txt <<- _EOF_ || die
+ ki18n_install(po)
+ _EOF_
+
+ ecm_src_prepare
+}