Skip to content

Commit f069c92

Browse files
enhance(x11/kf6-solid): add upower
1 parent b4ef6cc commit f069c92

2 files changed

Lines changed: 70 additions & 2 deletions

File tree

x11-packages/kf6-solid/build.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@ TERMUX_PKG_DESCRIPTION='Hardware integration and detection'
33
TERMUX_PKG_LICENSE="LGPL-2.0, LGPL-3.0"
44
TERMUX_PKG_MAINTAINER="@termux"
55
TERMUX_PKG_VERSION="6.23.0"
6+
TERMUX_PKG_REVISION=1
67
TERMUX_PKG_SRCURL="https://download.kde.org/stable/frameworks/${TERMUX_PKG_VERSION%.*}/solid-${TERMUX_PKG_VERSION}.tar.xz"
78
TERMUX_PKG_SHA256=448502ea32c8e049ebd3caf34c5c768fce7f879f25f8b5e700fd3300d317a0cc
8-
TERMUX_PKG_DEPENDS="libimobiledevice, libplist, qt6-qtbase, libc++, util-linux"
9-
# media-player-info, systemd-libs, udisks2, upower can be added to TERMUX_PKG_DEPENDS when available
9+
TERMUX_PKG_DEPENDS="libimobiledevice, libplist, qt6-qtbase, libc++, upower, util-linux"
10+
# media-player-info, systemd-libs, udisks2 can be added to TERMUX_PKG_DEPENDS when available
1011
TERMUX_PKG_BUILD_DEPENDS="extra-cmake-modules (>= ${TERMUX_PKG_VERSION%.*}), qt6-qtdeclarative, qt6-qttools"
1112
TERMUX_PKG_AUTO_UPDATE=true
1213
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
14+
-DCMAKE_SYSTEM_NAME=Linux
15+
-DBUILD_DEVICE_BACKEND_upower=ON
16+
-DUSE_DBUS=ON
17+
-DUDEV_DISABLED=ON
1318
-DKDE_INSTALL_QMLDIR=lib/qt6/qml
1419
-DKDE_INSTALL_QTPLUGINDIR=lib/qt6/plugins
1520
"
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
--- a/src/solid/devices/backends/upower/upowerdevice.cpp
2+
+++ b/src/solid/devices/backends/upower/upowerdevice.cpp
3+
@@ -24,7 +24,7 @@
4+
: Solid::Ifaces::Device()
5+
, m_udi(udi)
6+
{
7+
- QDBusConnection::systemBus().connect(QStringLiteral(UP_DBUS_SERVICE),
8+
+ QDBusConnection::sessionBus().connect(QStringLiteral(UP_DBUS_SERVICE),
9+
m_udi,
10+
QStringLiteral("org.freedesktop.DBus.Properties"),
11+
QStringLiteral("PropertiesChanged"),
12+
@@ -33,7 +33,7 @@
13+
14+
// TODO port this to Solid::Power, we can't link against kdelibs4support for this signal
15+
// older upower versions not affected
16+
- QDBusConnection::systemBus().connect(QStringLiteral("org.freedesktop.login1"), //
17+
+ QDBusConnection::sessionBus().connect(QStringLiteral("org.freedesktop.login1"), //
18+
QStringLiteral("/org/freedesktop/login1"),
19+
QStringLiteral("org.freedesktop.login1.Manager"),
20+
QStringLiteral("PrepareForSleep"),
21+
@@ -201,7 +201,7 @@
22+
QDBusMessage call =
23+
QDBusMessage::createMethodCall(QStringLiteral(UP_DBUS_SERVICE), m_udi, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("Get"));
24+
call.setArguments({QStringLiteral(UP_DBUS_INTERFACE_DEVICE), key});
25+
- QDBusReply<QVariant> reply = QDBusConnection::systemBus().call(call);
26+
+ QDBusReply<QVariant> reply = QDBusConnection::sessionBus().call(call);
27+
28+
if (reply.isValid()) {
29+
m_cache[key] = reply.value();
30+
@@ -227,7 +227,7 @@
31+
QDBusMessage call =
32+
QDBusMessage::createMethodCall(QStringLiteral(UP_DBUS_SERVICE), m_udi, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("GetAll"));
33+
call.setArguments({QStringLiteral(UP_DBUS_INTERFACE_DEVICE)});
34+
- QDBusReply<QVariantMap> reply = QDBusConnection::systemBus().call(call);
35+
+ QDBusReply<QVariantMap> reply = QDBusConnection::sessionBus().call(call);
36+
37+
if (reply.isValid()) {
38+
m_cache = reply.value();
39+
40+
--- a/src/solid/devices/backends/upower/upowermanager.cpp
41+
+++ b/src/solid/devices/backends/upower/upowermanager.cpp
42+
@@ -22,7 +22,7 @@
43+
UPowerManager::UPowerManager(QObject *parent)
44+
: Solid::Ifaces::DeviceManager(parent)
45+
, m_supportedInterfaces({Solid::DeviceInterface::GenericInterface, Solid::DeviceInterface::Battery})
46+
- , m_manager(QDBusConnection::systemBus())
47+
+ , m_manager(QDBusConnection::sessionBus())
48+
, m_knownDevices(udiPrefix())
49+
{
50+
qDBusRegisterMetaType<QList<QDBusObjectPath>>();
51+
@@ -36,9 +36,9 @@
52+
QStringLiteral("org.freedesktop.DBus"),
53+
QStringLiteral("ListActivatableNames"));
54+
55+
- QDBusReply<QStringList> reply = QDBusConnection::systemBus().call(message);
56+
+ QDBusReply<QStringList> reply = QDBusConnection::sessionBus().call(message);
57+
if (reply.isValid() && reply.value().contains(QStringLiteral(UP_DBUS_SERVICE))) {
58+
- QDBusConnection::systemBus().interface()->startService(QStringLiteral(UP_DBUS_SERVICE));
59+
+ QDBusConnection::sessionBus().interface()->startService(QStringLiteral(UP_DBUS_SERVICE));
60+
serviceFound = true;
61+
}
62+
}
63+

0 commit comments

Comments
 (0)