ssuominen    14/05/26 19:37:42

  Added:               
                        
upower-pm-utils-0.9.23-clamp_percentage_for_overfull_batt.patch
                        upower-pm-utils-0.9.23-create-dir-runtime.patch
                        upower-pm-utils-0.9.23-fix-segfault.patch
  Log:
  Initial commit.
  
  (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key 
4868F14D)

Revision  Changes    Path
1.1                  
sys-power/upower-pm-utils/files/upower-pm-utils-0.9.23-clamp_percentage_for_overfull_batt.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-power/upower-pm-utils/files/upower-pm-utils-0.9.23-clamp_percentage_for_overfull_batt.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-power/upower-pm-utils/files/upower-pm-utils-0.9.23-clamp_percentage_for_overfull_batt.patch?rev=1.1&content-type=text/plain

Index: upower-pm-utils-0.9.23-clamp_percentage_for_overfull_batt.patch
===================================================================
>From b8fe9902f3c6c50ca6a23e24fcea99582beebc65 Mon Sep 17 00:00:00 2001
From: Martin Pitt <martinp...@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



1.1                  
sys-power/upower-pm-utils/files/upower-pm-utils-0.9.23-create-dir-runtime.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-power/upower-pm-utils/files/upower-pm-utils-0.9.23-create-dir-runtime.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-power/upower-pm-utils/files/upower-pm-utils-0.9.23-create-dir-runtime.patch?rev=1.1&content-type=text/plain

Index: upower-pm-utils-0.9.23-create-dir-runtime.patch
===================================================================
>From b9cff29978113aefe3ad18521f383f12ab099a34 Mon Sep 17 00:00:00 2001
From: Cosimo Cecchi <cos...@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 <rich...@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



1.1                  
sys-power/upower-pm-utils/files/upower-pm-utils-0.9.23-fix-segfault.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-power/upower-pm-utils/files/upower-pm-utils-0.9.23-fix-segfault.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-power/upower-pm-utils/files/upower-pm-utils-0.9.23-fix-segfault.patch?rev=1.1&content-type=text/plain

Index: upower-pm-utils-0.9.23-fix-segfault.patch
===================================================================
>From 0d64bbddaa0078ef148d609a3cfad854cf00d7de Mon Sep 17 00:00:00 2001
From: Martin Pitt <martinp...@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




Reply via email to