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...";
