[kde-workspace] hack to use org.freedesktop.login1 to handle suspend (instead of upower),

Rex Dieter rdieter at fedoraproject.org
Fri Jan 11 05:15:04 UTC 2013


commit 41bb96e7476e0cfa85527b2c2bb02b47fb26001b
Author: Rex Dieter <rdieter at math.unl.edu>
Date:   Thu Jan 10 23:15:30 2013 -0600

    hack to use org.freedesktop.login1 to handle suspend (instead of upower),
    
      seems to help avoid double-sleep (#859227)

 kde-workspace-4.9.97-systemd_login1_power.patch |   21 +++++++++++++++++++++
 kde-workspace.spec                              |   12 ++++++++++--
 2 files changed, 31 insertions(+), 2 deletions(-)
---
diff --git a/kde-workspace-4.9.97-systemd_login1_power.patch b/kde-workspace-4.9.97-systemd_login1_power.patch
new file mode 100644
index 0000000..313a0c9
--- /dev/null
+++ b/kde-workspace-4.9.97-systemd_login1_power.patch
@@ -0,0 +1,21 @@
+diff -up kde-workspace-4.9.97/powerdevil/daemon/backends/upower/upowersuspendjob.cpp.systemd_login1 kde-workspace-4.9.97/powerdevil/daemon/backends/upower/upowersuspendjob.cpp
+--- kde-workspace-4.9.97/powerdevil/daemon/backends/upower/upowersuspendjob.cpp.systemd_login1	2012-12-17 08:21:54.000000000 -0600
++++ kde-workspace-4.9.97/powerdevil/daemon/backends/upower/upowersuspendjob.cpp	2013-01-10 22:16:37.963348167 -0600
+@@ -60,10 +60,16 @@ void UPowerSuspendJob::doStart()
+ {
+     if (m_supported & m_method)
+     {
++        QScopedPointer<QDBusInterface> m_login1Interface(new QDBusInterface("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus()));
+         switch(m_method)
+         {
+         case PowerDevil::BackendInterface::ToRam:
+-            m_upowerInterface->Suspend();
++            if ( m_login1Interface->isValid() ) {
++                m_login1Interface->call("Suspend",false);
++            } else {
++                kDebug() <<  m_login1Interface->lastError();
++                m_upowerInterface->Suspend();
++            }
+             break;
+         case PowerDevil::BackendInterface::ToDisk:
+             m_upowerInterface->Hibernate();
diff --git a/kde-workspace.spec b/kde-workspace.spec
index 67bb3c1..844a03b 100644
--- a/kde-workspace.spec
+++ b/kde-workspace.spec
@@ -5,7 +5,7 @@
 Summary: KDE Workspace
 Name:    kde-workspace
 Version: 4.9.97
-Release: 2%{?dist}
+Release: 3%{?dist}
 
 License: GPLv2
 URL:     https://projects.kde.org/projects/kde/kde-workspace
@@ -89,6 +89,10 @@ Patch52: kde-workspace-4.8.2-bz#732830-login.patch
 # http://bugs.kde.org/242065
 Patch53: kde-workspace-4.7.95-kdm_xauth.patch
 
+# bring systemd-login1 power love to powerdevil
+# FIXME: suspend support only for now
+Patch54: kde-workspace-4.9.97-systemd_login1_power.patch
+
 # pam/systemd bogosity: kdm restart/shutdown does not work 
 # http://bugzilla.redhat.com/796969
 Patch57: kde-workspace-4.8.0-bug796969.patch
@@ -432,6 +436,7 @@ Requires: akonadi
 %patch51 -p1 -b .add_apper_to_kickoff_favorites
 %patch52 -p1 -b .bz#732830-login
 %patch53 -p1 -b .kdm_xauth
+%patch54 -p1 -b .systemd_login1_power
 %patch57 -p1 -b .bug796969
 %patch62 -p0 -b .systemd-displaymanager
 
@@ -458,7 +463,6 @@ pushd %{_target_platform}
   -DKDE4_KDM_PAM_SERVICE=kdm \
   -DKDE4_KCHECKPASS_PAM_SERVICE=kcheckpass \
   -DKDE4_KSCREENSAVER_PAM_SERVICE=kscreensaver \
-  -DPOWERDEVIL_USE_SYSTEMD:BOOL=ON \
   ..
 popd
 
@@ -969,6 +973,10 @@ fi
 
 
 %changelog
+* Thu Jan 10 2013 Rex Dieter <rdieter at fedoraproject.org> 4.9.97-3
+- hack to use org.freedesktop.login1 to handle suspend (instead of upower),
+  seems to help avoid double-sleep (#859227)
+
 * Wed Jan 09 2013 Rex Dieter <rdieter at fedoraproject.org> 4.9.97-2
 - kded_xrandrmonitor subpkg, to allow use of it or kscreen
 


More information about the scm-commits mailing list