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

Reply via email to