[arch-commits] Commit in upower/trunk (2 files)
Jan de Groot
jgc at nymeria.archlinux.org
Mon Oct 28 13:45:33 UTC 2013
Date: Monday, October 28, 2013 @ 14:45:33
Author: jgc
Revision: 197687
upgpkg: upower 0.9.23-2
fix FS#37465 by applying upstream patch from 0.9 branch
Added:
upower/trunk/linux-clamp-percentage-for-overfull-batteries.patch
Modified:
upower/trunk/PKGBUILD
-----------------------------------------------------+
PKGBUILD | 9 +-
linux-clamp-percentage-for-overfull-batteries.patch | 72 ++++++++++++++++++
2 files changed, 78 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2013-10-28 11:57:48 UTC (rev 197686)
+++ PKGBUILD 2013-10-28 13:45:33 UTC (rev 197687)
@@ -3,7 +3,7 @@
pkgname=upower
pkgver=0.9.23
-pkgrel=1
+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"
@@ -12,11 +12,14 @@
makedepends=('intltool' 'docbook-xsl' 'gobject-introspection' 'systemd')
backup=('etc/UPower/UPower.conf')
options=('!libtool')
-source=($url/releases/$pkgname-$pkgver.tar.xz)
-md5sums=('39cfd97bfaf7d30908f20cf937a57634')
+source=($url/releases/$pkgname-$pkgver.tar.xz
+ linux-clamp-percentage-for-overfull-batteries.patch)
+md5sums=('39cfd97bfaf7d30908f20cf937a57634'
+ 'cd8eeb40c2338d28df46e22529bece62')
prepare() {
cd $pkgname-$pkgver
+ patch -Np1 -i ../linux-clamp-percentage-for-overfull-batteries.patch
}
build() {
Added: linux-clamp-percentage-for-overfull-batteries.patch
===================================================================
--- linux-clamp-percentage-for-overfull-batteries.patch (rev 0)
+++ linux-clamp-percentage-for-overfull-batteries.patch 2013-10-28 13:45:33 UTC (rev 197687)
@@ -0,0 +1,72 @@
+From b8fe9902f3c6c50ca6a23e24fcea99582beebc65 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martinpitt at 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
More information about the arch-commits
mailing list