02.04.2014 15:30 пользователь "Fabian Raetz" <[email protected]> написал: > > I repost this here, > just in case someone want to give this a try.
Thank you a lot for your effort. I'll take look and probably commit this in a few days. FWIW, I'm working on Solid backend for OpenBSD. If you (or someone else) is interested and want to participate, I'll publish it somewhere as a repo. > 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..."; >
