summaryrefslogtreecommitdiff
path: root/extra/upower
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2014-04-15 03:26:32 +0000
committerNicolás Reynolds <fauno@endefensadelsl.org>2014-04-15 03:26:32 +0000
commitad45d1982b97faa9372d99e51daa687c7c09de7d (patch)
treeaf490221f2b733b8f0cf68f3898566d5049c3ab4 /extra/upower
parent7c266ff5a9e1f533fd8bd8c2fbbcc05df350dcd3 (diff)
Tue Apr 15 03:22:01 UTC 2014
Diffstat (limited to 'extra/upower')
-rw-r--r--extra/upower/PKGBUILD17
-rw-r--r--extra/upower/create-dir-runtime.patch34
-rw-r--r--extra/upower/fix-segfault.patch24
-rw-r--r--extra/upower/linux-clamp-percentage-for-overfull-batteries.patch72
4 files changed, 68 insertions, 79 deletions
diff --git a/extra/upower/PKGBUILD b/extra/upower/PKGBUILD
index 891dacb42..32eb9e520 100644
--- a/extra/upower/PKGBUILD
+++ b/extra/upower/PKGBUILD
@@ -1,24 +1,27 @@
-# $Id: PKGBUILD 198471 2013-10-30 15:04:10Z allan $
+# $Id: PKGBUILD 210539 2014-04-14 20:07:36Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=upower
-pkgver=0.9.23
+pkgver=0.99.0
pkgrel=2
pkgdesc="Abstraction for enumerating power devices, listening to device events and querying history and statistics"
arch=('i686' 'x86_64')
url="http://upower.freedesktop.org"
license=('GPL')
-depends=('systemd-tools' 'libsystemd' 'libusb' 'polkit' 'dbus-glib' 'libimobiledevice')
+depends=('systemd-tools' 'systemd' 'libusb' 'polkit' 'dbus-glib' 'libimobiledevice')
makedepends=('intltool' 'docbook-xsl' 'gobject-introspection' 'systemd')
backup=('etc/UPower/UPower.conf')
source=($url/releases/$pkgname-$pkgver.tar.xz
- linux-clamp-percentage-for-overfull-batteries.patch)
-md5sums=('39cfd97bfaf7d30908f20cf937a57634'
- 'cd8eeb40c2338d28df46e22529bece62')
+ create-dir-runtime.patch
+ fix-segfault.patch)
+md5sums=('14f43bc13353e23e7280863f33ac50d2'
+ '74901767f9c94451083b3d92396454ab'
+ 'fa2f37eec44703e4c10edb5d9abb0f6b')
prepare() {
cd $pkgname-$pkgver
- patch -Np1 -i ../linux-clamp-percentage-for-overfull-batteries.patch
+ patch -Np1 -i ../create-dir-runtime.patch
+ patch -Np1 -i ../fix-segfault.patch
}
build() {
diff --git a/extra/upower/create-dir-runtime.patch b/extra/upower/create-dir-runtime.patch
new file mode 100644
index 000000000..34340d44e
--- /dev/null
+++ b/extra/upower/create-dir-runtime.patch
@@ -0,0 +1,34 @@
+From b9cff29978113aefe3ad18521f383f12ab099a34 Mon Sep 17 00:00:00 2001
+From: Cosimo Cecchi <cosimo@endlessm.com>
+Date: Tue, 25 Feb 2014 09:43:04 +0000
+Subject: Create the history directory at runtime
+
+In addition to build time - this increases compatibilty with OSTree,
+which starts out with an empty /var.
+
+Signed-off-by: Richard Hughes <richard@hughsie.com>
+---
+diff --git a/src/up-history.c b/src/up-history.c
+index f9d0fdf..795b093 100644
+--- a/src/up-history.c
++++ b/src/up-history.c
+@@ -414,6 +414,7 @@ up_history_set_directory (UpHistory *history, const gchar *dir)
+ {
+ g_free (history->priv->dir);
+ history->priv->dir = g_strdup (dir);
++ g_mkdir_with_parents (dir, 0755);
+ }
+
+ /**
+@@ -887,7 +888,8 @@ up_history_init (UpHistory *history)
+ history->priv->data_time_full = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
+ history->priv->data_time_empty = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
+ history->priv->max_data_age = UP_HISTORY_DEFAULT_MAX_DATA_AGE;
+- history->priv->dir = g_build_filename (HISTORY_DIR, NULL);
++
++ up_history_set_directory (history, HISTORY_DIR);
+ }
+
+ /**
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/extra/upower/fix-segfault.patch b/extra/upower/fix-segfault.patch
new file mode 100644
index 000000000..3e8976320
--- /dev/null
+++ b/extra/upower/fix-segfault.patch
@@ -0,0 +1,24 @@
+From 0d64bbddaa0078ef148d609a3cfad854cf00d7de Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martinpitt@gnome.org>
+Date: Fri, 08 Nov 2013 13:59:50 +0000
+Subject: lib: Fix segfault on getting property when daemon is not running
+
+This fixes "upower --version" when the daemon is not running, and thus the
+client proxy is NULL.
+---
+diff --git a/libupower-glib/up-client.c b/libupower-glib/up-client.c
+index 35d7b5d..17fb02d 100644
+--- a/libupower-glib/up-client.c
++++ b/libupower-glib/up-client.c
+@@ -322,6 +322,9 @@ up_client_get_property (GObject *object,
+ UpClient *client;
+ client = UP_CLIENT (object);
+
++ if (client->priv->proxy == NULL)
++ return;
++
+ switch (prop_id) {
+ case PROP_DAEMON_VERSION:
+ g_value_set_string (value, up_client_glue_get_daemon_version (client->priv->proxy));
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/extra/upower/linux-clamp-percentage-for-overfull-batteries.patch b/extra/upower/linux-clamp-percentage-for-overfull-batteries.patch
deleted file mode 100644
index 6e643c42d..000000000
--- a/extra/upower/linux-clamp-percentage-for-overfull-batteries.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From b8fe9902f3c6c50ca6a23e24fcea99582beebc65 Mon Sep 17 00:00:00 2001
-From: Martin Pitt <martinpitt@gnome.org>
-Date: Tue, 22 Oct 2013 08:02:51 +0000
-Subject: linux: Clamp percentage for overfull batteries
-
-Some batteries report energy > energy_full and a percentage ("capacity"
-attribute) > 100%. Clamp these within 0 and 100% for both plausibility as well
-as to avoid setting an out-of-range property which would then become 0%.
-
-https://launchpad.net/bugs/1240673
----
-diff --git a/src/linux/integration-test b/src/linux/integration-test
-index 8489bf3..4be1922 100755
---- a/src/linux/integration-test
-+++ b/src/linux/integration-test
-@@ -442,6 +442,39 @@ class Tests(unittest.TestCase):
- self.assertEqual(self.get_dbus_property('OnLowBattery'), False)
- self.stop_daemon()
-
-+ def test_battery_overfull(self):
-+ '''battery which reports a > 100% percentage for a full battery'''
-+
-+ self.testbed.add_device('power_supply', 'BAT0', None,
-+ ['type', 'Battery',
-+ 'present', '1',
-+ 'status', 'Full',
-+ 'current_now', '1000',
-+ 'charge_now', '11000000',
-+ 'charge_full', '10000000',
-+ 'charge_full_design', '11000000',
-+ 'capacity', '110',
-+ 'voltage_now', '12000000'], [])
-+
-+ self.start_daemon()
-+ devs = self.proxy.EnumerateDevices()
-+ self.assertEqual(len(devs), 1)
-+ bat0_up = devs[0]
-+
-+ # should clamp percentage
-+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), 100.0)
-+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'IsPresent'), True)
-+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'State'),
-+ UP_DEVICE_STATE_FULLY_CHARGED)
-+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Energy'), 132.0)
-+ # should adjust EnergyFull to reality, not what the battery claims
-+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'EnergyFull'), 132.0)
-+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'EnergyFullDesign'), 132.0)
-+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Voltage'), 12.0)
-+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), True)
-+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), 2)
-+ self.stop_daemon()
-+
- def test_battery_temperature(self):
- '''battery which reports temperature'''
-
-diff --git a/src/linux/up-device-supply.c b/src/linux/up-device-supply.c
-index 8020277..b953d65 100644
---- a/src/linux/up-device-supply.c
-+++ b/src/linux/up-device-supply.c
-@@ -708,6 +708,10 @@ up_device_supply_refresh_battery (UpDeviceSupply *supply)
- /* get a precise percentage */
- if (sysfs_file_exists (native_path, "capacity")) {
- percentage = sysfs_get_double (native_path, "capacity");
-+ if (percentage < 0.0f)
-+ percentage = 0.0f;
-+ if (percentage > 100.0f)
-+ percentage = 100.0f;
- /* for devices which provide capacity, but not {energy,charge}_now */
- if (energy < 0.1f && energy_full > 0.0f)
- energy = energy_full * percentage / 100;
---
-cgit v0.9.0.2-2-gbebe