I repost this here,
just in case someone want to give this a try.

Cheers,
Fabian


---------- Forwarded message ----------
From: Fabian Raetz <[email protected]>
Date: 2014-04-01 1:02 GMT+02:00
Subject: [PATCH] Enable Power Management (UPower Backend)
To: [email protected]


Hi,

this diff below enables the UPowerManager which makes KDE's solid
framework aware of batteries. The second part removes the UDEV requirement
in powerdevils UPowerBackend. Not sure why this was added ... to me it
seems that there are all kind of fallbacks in case UDEV is not available.

with this diff applied, i never should forget to plug in my power suply again ;)


Not sure if these patches are good enough for upstream or OpenBSD portstree
...... someone of you will probably know how to patch this correctly. :)

Suspend/Resume things are not supported by our upower? Not looked into this...

CAVEATS:
    - After the  Desktop loaded i get a notification that my battery
      is corrupted i should buy a new one...not sure where this
      notification is coming from.
    - Shutdown/Suspend Actions not working for me ... the notification
      pops up but no shutdown is happening -.-


Cheers,
Fabian


Index: libs/Makefile
===================================================================
RCS file: /cvs/ports/x11/kde4/libs/Makefile,v
retrieving revision 1.47
diff -u -p -r1.47 Makefile
--- libs/Makefile       8 Feb 2014 16:54:25 -0000       1.47
+++ libs/Makefile       31 Mar 2014 21:41:58 -0000
@@ -11,7 +11,7 @@ PKGNAME-langlist =    kde4-langlist-${MODKD
 PKG_ARCH-en_US =       *
 PKG_ARCH-langlist =    *
 PKGSPEC-main =         kdelibs->=4
-REVISION-main =                4
+REVISION-main =                5

 DPB_PROPERTIES =       parallel tag:kde4

@@ -98,6 +98,7 @@ RUN_DEPENDS-main =    ${RUN_DEPENDS} \
                        misc/shared-desktop-ontologies \
                        net/cagibi \
                        sysutils/gamin \
+                       sysutils/upower \
                        x11/dbus \
                        x11/grantlee \
                        x11/gtk+2,-guic \
Index: libs/patches/patch-solid_solid_managerbase_cpp
===================================================================
RCS file: libs/patches/patch-solid_solid_managerbase_cpp
diff -N libs/patches/patch-solid_solid_managerbase_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ libs/patches/patch-solid_solid_managerbase_cpp      31 Mar 2014
21:41:58 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+--- solid/solid/managerbase.cpp.orig   Mon Mar 31 17:31:17 2014
++++ solid/solid/managerbase.cpp        Mon Mar 31 17:33:52 2014
+@@ -80,7 +80,11 @@ void Solid::ManagerBasePrivate::loadBackends()
+ #        elif defined(Q_WS_WIN) && !defined(_WIN32_WCE)
+             m_backends << new Solid::Backends::Win::WinDeviceManager(0);
+ #        elif defined(Q_OS_UNIX) && !defined(Q_OS_LINUX)
++#           if defined(Q_OS_OPENBSD)
++            m_backends << new Solid::Backends::UPower::UPowerManager(0);
++#           else
+             m_backends << new Solid::Backends::Hal::HalManager(0);
++#           endif
+
+ #        elif defined(Q_OS_LINUX)
+             bool solidHalLegacyEnabled
Index: workspace/Makefile
===================================================================
RCS file: /cvs/ports/x11/kde4/workspace/Makefile,v
retrieving revision 1.19
diff -u -p -r1.19 Makefile
--- workspace/Makefile  10 Mar 2014 20:27:25 -0000      1.19
+++ workspace/Makefile  31 Mar 2014 21:41:59 -0000
@@ -3,7 +3,7 @@
 COMMENT =      KDE workspace
 MODKDE4_VERSION =      4.11.6
 DISTNAME =     kde-workspace-${MODKDE4_VERSION}
-REVISION =     0
+REVISION =     1

 MASTER_SITES = ${MASTER_SITE_KDE:=stable/4.12.2/src/}

Index: workspace/patches/patch-powerdevil_daemon_BackendConfig_cmake
===================================================================
RCS file: workspace/patches/patch-powerdevil_daemon_BackendConfig_cmake
diff -N workspace/patches/patch-powerdevil_daemon_BackendConfig_cmake
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ workspace/patches/patch-powerdevil_daemon_BackendConfig_cmake
 31 Mar 2014 21:41:59 -0000
@@ -0,0 +1,38 @@
+$OpenBSD$
+--- powerdevil/daemon/BackendConfig.cmake.orig Thu Jan 30 20:25:09 2014
++++ powerdevil/daemon/BackendConfig.cmake      Mon Mar 31 23:24:56 2014
+@@ -3,7 +3,6 @@
+
+
+ ########################## UPower Backend
#####################################
+-if (UDEV_FOUND)
+     include_directories(${CMAKE_CURRENT_SOURCE_DIR}/backends/upower
+                         ${X11_INCLUDE_DIR}
+                         ${X11_Xrandr_INCLUDE_PATH})
+@@ -14,10 +13,16 @@ if (UDEV_FOUND)
+         backends/upower/powerdevilupowerbackend.cpp
+         backends/upower/xrandrbrightness.cpp
+         backends/upower/xrandrx11helper.cpp
+-        backends/upower/udevqtclient.cpp
+-        backends/upower/udevqtdevice.cpp
+     )
+
++    if (UDEV_FOUND)
++        set(powerdevilupowerbackend_SRCS
++            ${powerdevilupowerbackend_SRCS}
++            backends/upower/udevqtclient.cpp
++            backends/upower/udevqtdevice.cpp
++        )
++    endif (UDEV_FOUND)
++
+     set_source_files_properties(
+     
${CMAKE_CURRENT_SOURCE_DIR}/backends/upower/dbus/org.freedesktop.UPower.xml
+     
${CMAKE_CURRENT_SOURCE_DIR}/backends/upower/dbus/org.freedesktop.UPower.Device.xml
+@@ -47,7 +52,6 @@ if (UDEV_FOUND)
+     install(TARGETS backlighthelper DESTINATION ${LIBEXEC_INSTALL_DIR})
+     kde4_install_auth_helper_files(backlighthelper
org.kde.powerdevil.backlighthelper root)
+     kde4_install_auth_actions(org.kde.powerdevil.backlighthelper
${CMAKE_CURRENT_SOURCE_DIR}/backends/upower/backlight_helper_actions.actions)
+-endif (UDEV_FOUND)
+
+ ########################## HAL Backend #####################################
+
Index: 
workspace/patches/patch-powerdevil_daemon_backends_upower_powerdevilupowerbackend_cpp
===================================================================
RCS file: 
workspace/patches/patch-powerdevil_daemon_backends_upower_powerdevilupowerbackend_cpp
diff -N 
workspace/patches/patch-powerdevil_daemon_backends_upower_powerdevilupowerbackend_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ 
workspace/patches/patch-powerdevil_daemon_backends_upower_powerdevilupowerbackend_cpp
      31 Mar 2014 21:41:59 -0000
@@ -0,0 +1,33 @@
+$OpenBSD$
+--- powerdevil/daemon/backends/upower/powerdevilupowerbackend.cpp.orig
Thu Jan 30 20:25:09 2014
++++ powerdevil/daemon/backends/upower/powerdevilupowerbackend.cpp
 Mon Mar 31 23:32:07 2014
+@@ -156,7 +156,14 @@ void PowerDevilUPowerBackend::init()
+     bool screenBrightnessAvailable = false;
+     m_upowerInterface = new
OrgFreedesktopUPowerInterface(UPOWER_SERVICE,
"/org/freedesktop/UPower", QDBusConnection::systemBus(), this);
+     m_brightnessControl = new XRandrBrightness();
+-    if (!m_brightnessControl->isSupported()) {
++    if (m_brightnessControl->isSupported()) {
++        kDebug() << "Using XRandR";
++        m_randrHelper = new XRandRX11Helper();
++        connect(m_randrHelper, SIGNAL(brightnessChanged()), this,
SLOT(slotScreenBrightnessChanged()));
++        screenBrightnessAvailable = true;
++    }
++#ifdef HAVE_UDEV
++    else {
+         kDebug() << "Using helper";
+         KAuth::Action action("org.kde.powerdevil.backlighthelper.syspath");
+         action.setHelperID(HELPER_ID);
+@@ -169,12 +176,8 @@ void PowerDevilUPowerBackend::init()
+             connect(client, SIGNAL(deviceChanged(UdevQt::Device)),
SLOT(onDeviceChanged(UdevQt::Device)));
+             screenBrightnessAvailable = true;
+         }
+-    } else {
+-        kDebug() << "Using XRandR";
+-        m_randrHelper = new XRandRX11Helper();
+-        connect(m_randrHelper, SIGNAL(brightnessChanged()), this,
SLOT(slotScreenBrightnessChanged()));
+-        screenBrightnessAvailable = true;
+     }
++#endif
+
+     // Capabilities
+     setCapabilities(SignalResumeFromSuspend);
Index: workspace/patches/patch-powerdevil_daemon_powerdevilbackendloader_cpp
===================================================================
RCS file: workspace/patches/patch-powerdevil_daemon_powerdevilbackendloader_cpp
diff -N workspace/patches/patch-powerdevil_daemon_powerdevilbackendloader_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ workspace/patches/patch-powerdevil_daemon_powerdevilbackendloader_cpp
      31 Mar 2014 21:41:59 -0000
@@ -0,0 +1,29 @@
+$OpenBSD$
+--- powerdevil/daemon/powerdevilbackendloader.cpp.orig Mon Mar 31 21:55:12 2014
++++ powerdevil/daemon/powerdevilbackendloader.cpp      Mon Mar 31 21:55:28 2014
+@@ -21,9 +21,7 @@
+ #include <config-powerdevil.h>
+ #include "powerdevilbackendloader.h"
+
+-#ifdef HAVE_UDEV
+ #include "backends/upower/powerdevilupowerbackend.h"
+-#endif
+ #include "backends/hal/powerdevilhalbackend.h"
+
+ #include <KDebug>
+@@ -33,7 +31,6 @@ namespace BackendLoader {
+
+ BackendInterface* loadBackend(QObject *parent)
+ {
+-#ifdef HAVE_UDEV
+     // Check UPower first
+     kDebug() << "Loading UPower backend...";
+     if (PowerDevilUPowerBackend::isAvailable()) {
+@@ -42,7 +39,6 @@ BackendInterface* loadBackend(QObject *parent)
+     }
+
+     kDebug() << "Failed!";
+-#endif
+
+     // If we are here, try HAL
+     kDebug() << "Loading HAL backend...";

Reply via email to