Compare commits

...

No commits in common. "c8s" and "c10s" have entirely different histories.
c8s ... c10s

11 changed files with 491 additions and 585 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

46
.gitignore vendored
View File

@ -1 +1,47 @@
#testing
tests/artifacts/
tests/source/
upower-0.9.5.tar.bz2
/upower-0.9.6.tar.bz2
/upower-0.9.7.tar.bz2
/upower-0.9.8.tar.bz2
/upower-0.9.9.tar.bz2
/upower-0.9.10.tar.bz2
/upower-0.9.11.tar.bz2
/upower-0.9.12.tar.xz
/upower-0.9.13.tar.xz
/upower-0.9.14.tar.xz
/upower-0.9.15.tar.xz
/upower-0.9.16.tar.xz
/upower-0.9.17.tar.xz
/upower-0.9.18.tar.xz
/upower-0.9.19.tar.xz
/upower-0.9.20.tar.xz
/upower-0.9.21.tar.xz
/upower-0.9.22.tar.xz
/upower-0.9.23.tar.xz
/upower-0.99.0.tar.xz
/upower-0.99.1.tar.xz
/upower-0.99.2.tar.xz
/upower-0.99.3.tar.xz
/upower-0.99.4.tar.xz
/upower-0.99.5.tar.xz
/upower-0.99.6.tar.xz
/upower-0.99.7.tar.xz
/upower-0.99.8.tar.xz
/upower-0.99.9.tar.xz
/upower-0.99.10.tar.xz
/upower-0.99.11.tar.xz
/upower-0.99.12.tar.xz
/upower-0.99.13.tar.xz
/upower-v0.99.14.tar.bz2
/upower-v0.99.19.tar.bz2
/upower-v0.99.20.tar.bz2
/upower-v1.90.1.tar.bz2
/upower-v1.90.2.tar.bz2
/upower-v1.90.4.tar.bz2
/upower-v1.90.6.tar.bz2
/upower-v1.90.8.tar.bz2
/upower-v1.90.9.tar.bz2
/upower-v1.90.10.tar.bz2

View File

@ -0,0 +1,42 @@
From c5df437cc15580f617a7eb8f8e3e572c742624fa Mon Sep 17 00:00:00 2001
From: Kate Hsuan <hpa@redhat.com>
Date: Thu, 27 Nov 2025 17:17:10 +0800
Subject: [PATCH] linux: up-device-supply: fix the resource leak
1. free the udev parent node automatically.
2. free new_model_name variable in the same scope.
---
src/linux/up-device-supply.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/linux/up-device-supply.c b/src/linux/up-device-supply.c
index 889367f..ae4e696 100644
--- a/src/linux/up-device-supply.c
+++ b/src/linux/up-device-supply.c
@@ -331,7 +331,9 @@ static void
up_device_supply_sibling_discovered_guess_type (UpDevice *device,
GObject *sibling)
{
- GUdevDevice *input, *native_device, *parent_device, *parent_sibling;
+ GUdevDevice *input, *native_device;
+ g_autoptr (GUdevDevice) parent_device = NULL;
+ g_autoptr (GUdevDevice) parent_sibling = NULL;
UpDeviceKind cur_type, new_type;
gboolean is_same_parent = FALSE;
char *new_model_name;
@@ -492,9 +494,10 @@ up_device_supply_sibling_discovered_guess_type (UpDevice *device,
"type", new_type,
"model", new_model_name,
NULL);
- g_free (new_model_name);
- } else
+ } else {
g_object_set (device, "type", new_type, NULL);
+ }
+ g_free (new_model_name);
}
}
--
2.51.1

284
changelog Normal file
View File

@ -0,0 +1,284 @@
* Mon Feb 07 2022 Bastien Nocera <bnocera@redhat.com> - 0.99.14-1
+ upower-0.99.14-1
- Update to 0.99.14
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.13-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Aug 17 2021 Bastien Nocera <bnocera@redhat.com> - 0.99.13-1
+ upower-0.99.13-1
- Update to 0.99.13
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jun 17 2021 Bastien Nocera <bnocera@redhat.com> - 0.99.12-1
+ upower-0.99.12-1
- Update to 0.99.12
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.99.11-10
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.11-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jan 19 2021 Bastien Nocera <bnocera@redhat.com> - 0.99.11-8
+ upower-0.99.11-8
- Remove USB dependency
* Tue Nov 24 2020 Bastien Nocera <bnocera@redhat.com> - 0.99.11-7
+ upower-0.99.11-7
- Disable libimobiledevice integration on RHEL
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.11-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jun 17 2020 Bastien Nocera <bnocera@redhat.com> - 0.99.11-5
+ upower-0.99.11-5
- Use upstreamed libplist patch
- Add support for iPhone XS,XR
* Tue Jun 16 2020 Adam Williamson <awilliam@redhat.com> - 0.99.11-4
- Fix imobiledevice support with new libplist, rebuild for soname bumps
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.11-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Sep 4 2019 Christian Kellner <ckellner@redhat.com> - 0.99.11-2
- Add systemd service snippets
- Use macros for _unitdir and _udevrulesdir
- Mark _datadir/gtk-doc as directory
* Tue Sep 3 2019 Christian Kellner <ckellner@redhat.com> - 0.99.11-1
- New upstream release 0.99.11
- Intltool has been replaced by gettext
- D-Bus configuration moved from sysconfdir to datadir
- Systemd is creating /var/lib/upower, so 'ghost' the dir
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.10-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Feb 20 2019 Christian Kellner <ckellner@redhat.com> - 0.99.10-1
- New upstream release with the following changes:
- Set 'pending-charge' for DisplayDevice if at least one battery is in
the 'pending-charge' state
- Map pending-charge to fully-charged when charge is 100%
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Nov 20 2018 Christian Kellner <ckellner@redhat.com> - 0.99.9-1
- New upstream release
- Drop unneccessary patch to fix udev events access
- Fix daemon lockdown issues (keyboard backlight, AC status changes)
- Out-of-tree build fixes and documentation fixes
* Sun Oct 07 2018 Kalev Lember <klember@redhat.com> - 0.99.8-3
- Backport an upstream fix for upower not having access to udev events
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Bastien Nocera <bnocera@redhat.com> - 0.99.8-1
+ upower-0.99.8-1
- Update to 0.99.8
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Feb 03 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.99.7-2
- Switch to %%ldconfig_scriptlets
* Tue Nov 28 2017 Bastien Nocera <bnocera@redhat.com> - 0.99.7-1
+ upower-0.99.7-1
- Update to 0.99.7
- Add Bluetooth LE battery support
- Fix critical action after resume from hibernate
* Mon Sep 11 2017 Richard Hughes <rhughes@redhat.com> - 0.99.6-1
- New upstream release
- Detect joysticks as gaming input devices
- Fix crash when '@' is present in the device name
- Grab the model name from device if unavailable from battery
* Thu Aug 24 2017 Benjamin Berg <bberg@redhat.com> - 0.99.5-4
- Add patch to not correctly close the inhibitor FD
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon Jul 24 2017 Richard Hughes <rhughes@redhat.com> - 0.99.5-1
- New upstream release
- Add BatteryLevel property for devices with a finite number of power levels
- Add support for pausing and resuming of the daemon poll
- Do not spin in a loop when /proc/timer_stats cannot be written
- Fix reading and writing the keyboard brightness level
- Get a serial number for device batteries
- Refresh devices after waking up from sleep
- Lower initial power usage when iDevice isn't accessible
* Tue Feb 14 2017 Dan Horák <dan[at]danny.cz> - 0.99.4-4
- Add explicit BR:systemd to fix s390(x) build
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Mar 14 2016 Bastien Nocera <bnocera@redhat.com> 0.99.4-2
- Fix getting the critical action
* Tue Feb 16 2016 Richard Hughes <rhughes@redhat.com> - 0.99.4-1
- New upstream release
- Add support for Logitech G700s/G700 Gaming Mouse
- Change the default low battery policy to percentage
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu May 28 2015 Richard Hughes <rhughes@redhat.com> - 0.99.3-1
- New upstream release
- Fix several crashes
- Properly detect bluetooth mice and keyboards that are HID devices
- Support Logitech Unifying in Linux 3.19
- Work-around broken battery on the Onda v975w
* Wed Mar 18 2015 Rex Dieter <rdieter@fedoraproject.org> - 0.99.2-4
- pull in upstream crash fix (#1128390)
- use %%autosetup
- -devel: tighten subpkg dep via %%_isa
- -devel-docs: fix Summary
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 0.99.2-3
- Rebuilt for Fedora 23 Change
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
* Wed Feb 11 2015 Peter Robinson <pbrobinson@fedoraproject.org> 0.99.2-2
- Rebuild (libimobiledevice)
- Use %%license
* Thu Dec 18 2014 Richard Hughes <rhughes@redhat.com> - 0.99.2-1
- New upstream release
- Fix various memory and reference leaks
- Respect the CriticalPowerAction config option
- Set update-time on the aggregate device
- Update display device when battery is removed
* Sun Nov 16 2014 Kalev Lember <kalevlember@gmail.com> - 0.99.1-3
- Obsolete compat-upower09 from rhughes-f20-gnome-3-12 copr
* Wed Oct 15 2014 Peter Robinson <pbrobinson@fedoraproject.org> 0.99.1-2
- Rebuild for libimobiledevice 1.1.7
* Mon Aug 18 2014 Richard Hughes <rhughes@redhat.com> - 0.99.1-1
- New upstream release
- Create the history directory at runtime
- Do not log a critical warning when using _set_object_path_sync()
- Fix API doc for up_client_get_on_battery()
- Fix possible UpHistoryItem leak on failure
- Fix segfault on getting property when daemon is not running
- Fix shutdown on boot on some machines
- Fix small memleak on startup with Logitech devices
- Free the obtained device list array after use
- Remove IsDocked property
- Remove unused polkit dependency
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Tue Jul 22 2014 Kalev Lember <kalevlember@gmail.com> - 0.99.0-6
- Rebuilt for gobject-introspection 1.41.4
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon May 5 2014 Peter Robinson <pbrobinson@fedoraproject.org> 0.99.0-4
- Rebuild for libimobiledevice 1.1.6
* Mon Mar 17 2014 Richard Hughes <rhughes@redhat.com> - 0.99.0-3
- Split out a new devel-docs subpackage to fix multilib_policy=all installs.
- Resolves: #1070661
* Fri Nov 08 2013 Bastien Nocera <bnocera@redhat.com> 0.99.0-2
- Fix crash when D-Bus isn't available
* Tue Oct 29 2013 Richard Hughes <rhughes@redhat.com> - 0.99.0-1
- New upstream release
- This version contains major API changes and bumps library soname.
- Add DisplayDevice composite battery
- Add WarningLevel and IconName properties to all devices
- Clamp percentage for overfull batteries
- Emit PropertiesChanged signals
- Enforce critical battery policy on the daemon side
- Reduce client-side and daemon-side wake-ups
- Register objects on the bus once they've been setup
- Remove DeviceChanged and Changed signals
- Remove OnLowBattery property (use WarningLevel instead)
- Remove QoS support
- Remove battery recall support
* Fri Oct 18 2013 Richard Hughes <rhughes@redhat.com> - 0.9.23-1
- New upstream release
- Add missing dbus-glib-1 to private requires
- Avoid trying to close fd that wasn't opened
- Disable Watts-Up devices by default
- Don't guess discharging state for devices
- Fix crasher calling _about_to_sleep_sync()
- Really don't overwrite retval with prop values
- Update and correct Toshiba recall list
* Wed Oct 09 2013 Bastien Nocera <bnocera@redhat.com> 0.9.22-1
- Update to 0.9.22
- Fixes incorrect reporting of some properties
- Fixes battery values for Logitech unifying devices
- Bluetooth input devices support
- Device name fixes
* Fri Jul 26 2013 Richard Hughes <rhughes@redhat.com> - 0.9.21-1
- New upstream release
- Add support for Logitech Wireless (NonUnifying) devices
- Allow clients to call org.freedesktop.DBus.Peer
- Update the upower man page with all the current options
- Use PIE to better secure installed tools and also use full RELRO in the daemon
* Thu Apr 25 2013 Matthias Clasen <mclasen@redhat.com> - 0.9.20-3
- Enabled hardened build
- Don't use /lib/udev in file paths
* Tue Mar 19 2013 Matthias Clasen <mclasen@redhat.com> - 0.9.20-2
- Rebuild
* Mon Mar 11 2013 Richard Hughes <rhughes@redhat.com> - 0.9.20-1
- New upstream release
- Add a --enable-deprecated configure argument to remove pm-utils support
- Deprecate running the powersave scripts
- Factor out the Logitech Unifying support to support other devices
- Require unfixed applications to define UPOWER_ENABLE_DEPRECATED
- Fix batteries which report current energy but full charge
- Fix several small memory leaks
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.19-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Wed Jan 02 2013 Richard Hughes <rhughes@redhat.com> - 0.9.19-1
- New upstream release
- Add a Documentation tag to the service file
- Add support for Logitech Unifying devices
- Do not continue to poll if /proc/timer_stats is not readable
- Fix device matching for recent kernels
- Resolves: #848521
* Wed Oct 24 2012 Dan Horák <dan[at]danny.cz> - 0.9.18-2
- the notify-upower script is not installed with dummy backend on s390(x)
* Wed Aug 08 2012 Richard Hughes <rhughes@redhat.com> - 0.9.18-1
- New upstream release
- Use systemd for suspend and hibernate
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.17-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

View File

@ -1,6 +1,6 @@
--- !Policy
product_versions:
- rhel-8
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}

View File

@ -1,338 +0,0 @@
From 91e9ccf69394d3c005f0386e92c8a84c158aa0c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Rechi=20Vita?= <jprvita@endlessm.com>
Date: Thu, 1 Nov 2018 14:45:28 -0700
Subject: [PATCH 1/7] daemon: Make comment more succinct
This will help make it more clear when adding an extra state on the
following commit. It also makes the language consistent between the
different lines. There are no changes on the meaning of these lines nor
any functional changes on this commit.
---
src/up-daemon.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/up-daemon.c b/src/up-daemon.c
index 1a5dddc..95fff6b 100644
--- a/src/up-daemon.c
+++ b/src/up-daemon.c
@@ -209,9 +209,9 @@ up_daemon_update_display_battery (UpDaemon *daemon)
power_supply == FALSE)
continue;
- /* If one battery is charging, then the composite is charging
- * If all batteries are discharging, then the composite is discharging
- * If all batteries are fully charged, then they're all fully charged
+ /* If one battery is charging, the composite is charging
+ * If all batteries are discharging, the composite is discharging
+ * If all batteries are fully charged, the composite is fully charged
* Everything else is unknown */
if (state == UP_DEVICE_STATE_CHARGING)
state_total = UP_DEVICE_STATE_CHARGING;
--
2.38.1
From dc2de4e321c34e62a784ac6d9971f7defbf4984f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Rechi=20Vita?= <jprvita@endlessm.com>
Date: Mon, 15 Oct 2018 17:05:27 -0700
Subject: [PATCH 2/7] daemon: Consider pending-charge when calculating the
display state
Without this change if all batteries in the system are in the
pending-charge state, the display device state is set to unknown, and
its icon to battery-missing-symbolic.
This change makes the pending-charge state be considered when
calculating the DisplayDevice state, setting it to pending-charge if at
least one battery in the system is pending-charge and no other is
charging or discharging.
Closes: #81
Closes: #19
---
src/up-daemon.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/up-daemon.c b/src/up-daemon.c
index 95fff6b..690f379 100644
--- a/src/up-daemon.c
+++ b/src/up-daemon.c
@@ -210,14 +210,18 @@ up_daemon_update_display_battery (UpDaemon *daemon)
continue;
/* If one battery is charging, the composite is charging
- * If all batteries are discharging, the composite is discharging
+ * If all batteries are discharging or pending-charge, the composite is discharging
* If all batteries are fully charged, the composite is fully charged
+ * If one battery is pending-charge and no other is charging or discharging, then the composite is pending-charge
* Everything else is unknown */
if (state == UP_DEVICE_STATE_CHARGING)
state_total = UP_DEVICE_STATE_CHARGING;
else if (state == UP_DEVICE_STATE_DISCHARGING &&
state_total != UP_DEVICE_STATE_CHARGING)
state_total = UP_DEVICE_STATE_DISCHARGING;
+ else if (state == UP_DEVICE_STATE_PENDING_CHARGE &&
+ (state_total == UP_DEVICE_STATE_UNKNOWN || state_total == UP_DEVICE_STATE_PENDING_CHARGE))
+ state_total = UP_DEVICE_STATE_PENDING_CHARGE;
else if (state == UP_DEVICE_STATE_FULLY_CHARGED &&
state_total == UP_DEVICE_STATE_UNKNOWN)
state_total = UP_DEVICE_STATE_FULLY_CHARGED;
--
2.38.1
From 4420273ca55a6f6e97dd5075bca63e8a012c8794 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Rechi=20Vita?= <jprvita@endlessm.com>
Date: Fri, 2 Nov 2018 09:49:33 -0700
Subject: [PATCH 3/7] integration-test: Define PENDING_CHARGE and
PENDING_DISCHARGE states
Add definitions for UP_DEVICE_STATE_PENDING_CHARGE and
UP_DEVICE_STATE_PENDING_DISCHARGE.
---
src/linux/integration-test | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/linux/integration-test b/src/linux/integration-test
index 81064dd..fbd95da 100755
--- a/src/linux/integration-test
+++ b/src/linux/integration-test
@@ -60,7 +60,9 @@ BATTERY_IFACE = 'org.bluez.Battery1'
UP_DEVICE_STATE_CHARGING,
UP_DEVICE_STATE_DISCHARGING,
UP_DEVICE_STATE_EMPTY,
- UP_DEVICE_STATE_FULLY_CHARGED) = (0, 1, 2, 3, 4)
+ UP_DEVICE_STATE_FULLY_CHARGED,
+ UP_DEVICE_STATE_PENDING_CHARGE,
+ UP_DEVICE_STATE_PENDING_DISCHARGE) = (0, 1, 2, 3, 4, 5, 6)
(UP_DEVICE_LEVEL_UNKNOWN,
UP_DEVICE_LEVEL_NONE,
--
2.38.1
From ec968accf4038a48a1bc8a1a8c177a7550739233 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Rechi=20Vita?= <jprvita@endlessm.com>
Date: Fri, 2 Nov 2018 09:55:22 -0700
Subject: [PATCH 4/7] integration-test: Test DisplayDevice pending-charge
Test relaying the pending-charge state to the DisplayDevice. This commit
adds three tests: only one battery pending-charge, one battery
pending-charge and another one discharging, and one battery
pending-charge and another one charging.
---
src/linux/integration-test | 72 ++++++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
diff --git a/src/linux/integration-test b/src/linux/integration-test
index fbd95da..ad6dade 100755
--- a/src/linux/integration-test
+++ b/src/linux/integration-test
@@ -491,6 +491,78 @@ class Tests(dbusmock.DBusTestCase):
self.assertEqual(self.get_dbus_display_property('WarningLevel'), UP_DEVICE_LEVEL_NONE)
self.stop_daemon()
+ def test_display_pending_charge_one_battery(self):
+ '''One battery pending-charge'''
+
+ self.testbed.add_device('power_supply', 'BAT0', None,
+ ['type', 'Battery',
+ 'present', '1',
+ 'status', 'Not charging',
+ 'charge_full', '10500000',
+ 'charge_full_design', '11000000',
+ 'capacity', '40',
+ 'voltage_now', '12000000'], [])
+
+ self.start_daemon()
+ devs = self.proxy.EnumerateDevices()
+ self.assertEqual(len(devs), 1)
+ self.assertEqual(self.get_dbus_display_property('State'), UP_DEVICE_STATE_PENDING_CHARGE)
+ self.stop_daemon()
+
+ def test_display_pending_charge_other_battery_discharging(self):
+ '''One battery pending-charge and another one discharging'''
+
+ self.testbed.add_device('power_supply', 'BAT0', None,
+ ['type', 'Battery',
+ 'present', '1',
+ 'status', 'Not charging',
+ 'charge_full', '10500000',
+ 'charge_full_design', '11000000',
+ 'capacity', '40',
+ 'voltage_now', '12000000'], [])
+ self.testbed.add_device('power_supply', 'BAT1', None,
+ ['type', 'Battery',
+ 'present', '1',
+ 'status', 'Discharging',
+ 'charge_full', '10500000',
+ 'charge_full_design', '11000000',
+ 'capacity', '40',
+ 'voltage_now', '12000000'], [])
+
+
+ self.start_daemon()
+ devs = self.proxy.EnumerateDevices()
+ self.assertEqual(len(devs), 2)
+ self.assertEqual(self.get_dbus_display_property('State'), UP_DEVICE_STATE_DISCHARGING)
+ self.stop_daemon()
+
+ def test_display_pending_charge_other_battery_charging(self):
+ '''One battery pending-charge and another one charging'''
+
+ self.testbed.add_device('power_supply', 'BAT0', None,
+ ['type', 'Battery',
+ 'present', '1',
+ 'status', 'Not charging',
+ 'charge_full', '10500000',
+ 'charge_full_design', '11000000',
+ 'capacity', '40',
+ 'voltage_now', '12000000'], [])
+ self.testbed.add_device('power_supply', 'BAT1', None,
+ ['type', 'Battery',
+ 'present', '1',
+ 'status', 'Charging',
+ 'charge_full', '10500000',
+ 'charge_full_design', '11000000',
+ 'capacity', '40',
+ 'voltage_now', '12000000'], [])
+
+
+ self.start_daemon()
+ devs = self.proxy.EnumerateDevices()
+ self.assertEqual(len(devs), 2)
+ self.assertEqual(self.get_dbus_display_property('State'), UP_DEVICE_STATE_CHARGING)
+ self.stop_daemon()
+
def test_battery_charge(self):
'''battery which reports charge instead of energy
--
2.38.1
From 9318e73c8cd55522829970a74dc9d6ca59e4f828 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Rechi=20Vita?= <jprvita@endlessm.com>
Date: Fri, 2 Nov 2018 16:05:21 -0700
Subject: [PATCH 5/7] linux: Don't set out_state before state is final
Currently up_device_supply_refresh_battery sets out_state before the
state value is definitive, so the wrong state value is returned to the
caller. Luckily the only caller does not make use of this value at the
moment, so there are no user-visible consequences. Nonetheless this is a
bug, so this commit fixes it.
---
src/linux/up-device-supply.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/linux/up-device-supply.c b/src/linux/up-device-supply.c
index 11a14e1..993cf12 100644
--- a/src/linux/up-device-supply.c
+++ b/src/linux/up-device-supply.c
@@ -664,7 +664,6 @@ up_device_supply_refresh_battery (UpDeviceSupply *supply,
}
state = up_device_supply_get_state (native_path);
- *out_state = state;
/* reset unknown counter */
if (state != UP_DEVICE_STATE_UNKNOWN) {
@@ -834,6 +833,8 @@ up_device_supply_refresh_battery (UpDeviceSupply *supply,
supply->priv->energy_old_first = 0;
}
+ *out_state = state;
+
g_object_set (device,
"energy", energy,
"energy-full", energy_full,
--
2.38.1
From ebea310f15cb61a3f5558800a45951d3c885201d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Rechi=20Vita?= <jprvita@endlessm.com>
Date: Mon, 26 Nov 2018 13:12:18 -0800
Subject: [PATCH 6/7] linux: Map pending-charge to fully-charged when charge is
100%
Some devices report "Not charging" when the battery is full and AC power
is connected. In this situation we should report fully-charged instead
of pending-charge.
Closes: #86.
---
src/linux/up-device-supply.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/linux/up-device-supply.c b/src/linux/up-device-supply.c
index 993cf12..42971da 100644
--- a/src/linux/up-device-supply.c
+++ b/src/linux/up-device-supply.c
@@ -733,6 +733,12 @@ up_device_supply_refresh_battery (UpDeviceSupply *supply,
percentage = CLAMP(percentage, 0.0f, 100.0f);
}
+ /* Some devices report "Not charging" when the battery is full and AC
+ * power is connected. In this situation we should report fully-charged
+ * instead of pending-charge. */
+ if (state == UP_DEVICE_STATE_PENDING_CHARGE && percentage == 100.0)
+ state = UP_DEVICE_STATE_FULLY_CHARGED;
+
/* the battery isn't charging or discharging, it's just
* sitting there half full doing nothing: try to guess a state */
if (state == UP_DEVICE_STATE_UNKNOWN && supply->priv->is_power_supply) {
--
2.38.1
From b327348ac160b57430ba4d2662835513ea35c08c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Rechi=20Vita?= <jprvita@endlessm.com>
Date: Mon, 26 Nov 2018 13:13:00 -0800
Subject: [PATCH 7/7] integration-test: Test mapping pending-charge to
fully-charged
---
src/linux/integration-test | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/src/linux/integration-test b/src/linux/integration-test
index ad6dade..c6fb5c0 100755
--- a/src/linux/integration-test
+++ b/src/linux/integration-test
@@ -563,6 +563,31 @@ class Tests(dbusmock.DBusTestCase):
self.assertEqual(self.get_dbus_display_property('State'), UP_DEVICE_STATE_CHARGING)
self.stop_daemon()
+ def test_map_pending_charge_to_fully_charged(self):
+ '''Map pending-charge to fully-charged'''
+
+ bat0 = self.testbed.add_device('power_supply', 'BAT0', None,
+ ['type', 'Battery',
+ 'present', '1',
+ 'status', 'Not charging',
+ 'charge_full', '10500000',
+ 'charge_full_design', '11000000',
+ 'capacity', '100',
+ 'voltage_now', '12000000'], [])
+
+ self.start_daemon()
+ devs = self.proxy.EnumerateDevices()
+ self.assertEqual(len(devs), 1)
+ bat0_up = devs[0]
+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'State'), UP_DEVICE_STATE_FULLY_CHARGED)
+ self.stop_daemon()
+
+ # and make sure we still return pending-charge below 100%
+ self.testbed.set_attribute(bat0, 'capacity', '99')
+ self.start_daemon()
+ self.assertEqual(self.get_dbus_dev_property(bat0_up, 'State'), UP_DEVICE_STATE_PENDING_CHARGE)
+ self.stop_daemon()
+
def test_battery_charge(self):
'''battery which reports charge instead of energy
--
2.38.1

19
plans/integration.fmf Normal file
View File

@ -0,0 +1,19 @@
summary: Test for Upower
discover:
how: fmf
prepare:
- name: packages
how: install
package:
- upower
- upower-tests
- umockdev-devel
- dbus-x11
- polkit-devel
- python3-dbus
- python3-dbusmock
- python3-gobject-base
- python3-pip
- python3-packaging
execute:
how: tmt

View File

@ -1 +1 @@
SHA512 (upower-0.99.7.tar.xz) = a1ad200e715284eae815580bba3faad480f7f13401f6ff1a2e7446172796a2413990ce2b553de713ddc530849b2dff1f0ddc12fbd2fd9b55510bbb644d2340a4
SHA512 (upower-v1.90.10.tar.bz2) = f7bfb4c4301b6155a17c6b1baf12947503037bb8f8827ab7993ade39ef1aaece64bc08318c73600f62cd5b2ff7d372cc58652045efa803fff5951abd466a3d63

View File

@ -0,0 +1,3 @@
summary: Upower integration test
duration: 10m
test: bash ./run-it.sh

18
tests/integration/run-it.sh Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/bash
set -u
# main script
IT="${1:-/usr/libexec/installed-tests/upower/integration-test.py}"
# check if we need to install additional packages
# which is the case if we are on RHEL 8
source /etc/os-release || exit 1
if [[ "$ID" = *"rhel"* ]] && [[ "$VERSION_ID" == *"8"* ]]; then
dnf config-manager -y --add-repo umockdev.repo
dnf install -y umockdev-devel python3-gobject-base
pip3 install python-dbusmock
fi
# execute the integration test via umockdev-wrapper
exec umockdev-wrapper "$IT"

View File

@ -1,99 +1,125 @@
Summary: Power Management Service
Name: upower
Version: 0.99.7
Release: 4%{?dist}
License: GPLv2+
Group: System Environment/Libraries
Version: 1.90.10
Release: %autorelease
License: GPL-2.0-or-later
URL: http://upower.freedesktop.org/
Source0: http://upower.freedesktop.org/releases/upower-%{version}.tar.xz
Source0: https://gitlab.freedesktop.org/upower/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.bz2
BuildRequires: sqlite-devel
BuildRequires: libtool
BuildRequires: intltool
BuildRequires: meson
BuildRequires: git
BuildRequires: gettext
BuildRequires: libgudev1-devel
%define idevice disabled
%ifnarch s390 s390x
BuildRequires: libusbx-devel
%if ! 0%{?rhel}
%define idevice enabled
BuildRequires: libimobiledevice-devel
%endif
%endif
BuildRequires: glib2-devel >= 2.6.0
BuildRequires: gobject-introspection-devel
BuildRequires: gtk-doc
BuildRequires: polkit-devel
BuildRequires: systemd
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: udev
Requires: gobject-introspection
# 0.99.10 backport
Patch0: pending-charge.patch
%if 0%{?fedora}
# From rhughes-f20-gnome-3-12 copr
Obsoletes: compat-upower09 < 0.99
%endif
# Patches
Patch0001: 0001-linux-up-device-supply-fix-the-resource-leak.patch
%description
UPower (formerly DeviceKit-power) provides a daemon, API and command
line tools for managing power devices attached to the system.
%package libs
Summary: Client libraries for UPower
Requires: gobject-introspection
Recommends: %{name}%{?_isa} = %{version}-%{release}
Conflicts: %{name} < 0.99.20-4
%description libs
Client libraries for UPower.
%package devel
Summary: Headers and libraries for UPower
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description devel
Headers and libraries for UPower.
%package devel-docs
Summary: Developer documentation for for libupower-glib
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
BuildArch: noarch
%description devel-docs
Developer documentation for for libupower-glib.
%package tests
Summary: Test files for Upower
Requires: %{name}%{?_isa} = %{version}-%{release}
%description tests
Test files for Upower
%prep
%autosetup -p1
%autosetup -n %{name}-v%{version} -p1 -S git
%build
%configure \
--enable-gtk-doc \
--disable-static \
--enable-introspection \
%ifarch s390 s390x
--with-backend=dummy
%endif
%meson \
-Didevice=%{idevice} \
-Dman=true \
-Dgtk-doc=true \
-Dintrospection=enabled
# Disable SMP build, fails to build docs
make
%meson_build
%install
make install DESTDIR=$RPM_BUILD_ROOT
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
%meson_install
mkdir -p $RPM_BUILD_ROOT%{_libexecdir}/installed-tests
mv $RPM_BUILD_ROOT%{_libexecdir}/upower $RPM_BUILD_ROOT%{_libexecdir}/installed-tests
%find_lang upower
%ldconfig_scriptlets
%post
%systemd_post upower.service
%preun
%systemd_preun upower.service
%postun
%systemd_postun_with_restart upower.service
%files -f upower.lang
%{!?_licensedir:%global license %%doc}
%license COPYING
%doc NEWS AUTHORS HACKING README
%{_libdir}/libupower-glib.so.*
%{_sysconfdir}/dbus-1/system.d/*.conf
%ifnarch s390 s390x
/usr/lib/udev/rules.d/*.rules
%endif
%dir %{_localstatedir}/lib/upower
%doc NEWS AUTHORS HACKING.md README.md
%{_datadir}/dbus-1/system.d/*.conf
%{_udevrulesdir}/*.rules
%{_udevhwdbdir}/*.hwdb
%ghost %dir %{_localstatedir}/lib/upower
%dir %{_sysconfdir}/UPower
%config %{_sysconfdir}/UPower/UPower.conf
%{_bindir}/*
%{_bindir}/upower
%{_libexecdir}/*
%{_libdir}/girepository-1.0/*.typelib
%{_mandir}/man1/*
%{_mandir}/man7/*
%{_mandir}/man8/*
%{_datadir}/dbus-1/system-services/*.service
/usr/lib/systemd/system/*.service
%{_unitdir}/*.service
%{_datadir}/installed-tests/upower/upower-integration.test
%{_datadir}/polkit-1/actions/org.freedesktop.upower.policy
%{_datadir}/zsh/site-functions/_upower
%files libs
%license COPYING
%{_libdir}/libupower-glib.so.3{,.*}
%{_libdir}/girepository-1.0/*.typelib
%files devel
%{_datadir}/dbus-1/interfaces/*.xml
@ -105,210 +131,15 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
%{_includedir}/libupower-glib/upower.h
%files devel-docs
%{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html/UPower
%{_datadir}/gtk-doc/html/UPower/*
%files tests
%{_libexecdir}/installed-tests/upower
%dir %{_datadir}/installed-tests/
%dir %{_datadir}/installed-tests/upower/
%{_datadir}/installed-tests/upower/upower-integration.test
%changelog
* Mon Dec 19 2022 Bastien Nocera <bnocera@redhat.com> - 0.99.7-4
- Fix pending-charge state on some laptops
Resolves: rhbz#2130664
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Feb 03 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.99.7-2
- Switch to %%ldconfig_scriptlets
* Tue Nov 28 2017 Bastien Nocera <bnocera@redhat.com> - 0.99.7-1
+ upower-0.99.7-1
- Update to 0.99.7
- Add Bluetooth LE battery support
- Fix critical action after resume from hibernate
* Mon Sep 11 2017 Richard Hughes <rhughes@redhat.com> - 0.99.6-1
- New upstream release
- Detect joysticks as gaming input devices
- Fix crash when '@' is present in the device name
- Grab the model name from device if unavailable from battery
* Thu Aug 24 2017 Benjamin Berg <bberg@redhat.com> - 0.99.5-4
- Add patch to not correctly close the inhibitor FD
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon Jul 24 2017 Richard Hughes <rhughes@redhat.com> - 0.99.5-1
- New upstream release
- Add BatteryLevel property for devices with a finite number of power levels
- Add support for pausing and resuming of the daemon poll
- Do not spin in a loop when /proc/timer_stats cannot be written
- Fix reading and writing the keyboard brightness level
- Get a serial number for device batteries
- Refresh devices after waking up from sleep
- Lower initial power usage when iDevice isn't accessible
* Tue Feb 14 2017 Dan Horák <dan[at]danny.cz> - 0.99.4-4
- Add explicit BR:systemd to fix s390(x) build
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Mar 14 2016 Bastien Nocera <bnocera@redhat.com> 0.99.4-2
- Fix getting the critical action
* Tue Feb 16 2016 Richard Hughes <rhughes@redhat.com> - 0.99.4-1
- New upstream release
- Add support for Logitech G700s/G700 Gaming Mouse
- Change the default low battery policy to percentage
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.99.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu May 28 2015 Richard Hughes <rhughes@redhat.com> - 0.99.3-1
- New upstream release
- Fix several crashes
- Properly detect bluetooth mice and keyboards that are HID devices
- Support Logitech Unifying in Linux 3.19
- Work-around broken battery on the Onda v975w
* Wed Mar 18 2015 Rex Dieter <rdieter@fedoraproject.org> - 0.99.2-4
- pull in upstream crash fix (#1128390)
- use %%autosetup
- -devel: tighten subpkg dep via %%_isa
- -devel-docs: fix Summary
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 0.99.2-3
- Rebuilt for Fedora 23 Change
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
* Wed Feb 11 2015 Peter Robinson <pbrobinson@fedoraproject.org> 0.99.2-2
- Rebuild (libimobiledevice)
- Use %%license
* Thu Dec 18 2014 Richard Hughes <rhughes@redhat.com> - 0.99.2-1
- New upstream release
- Fix various memory and reference leaks
- Respect the CriticalPowerAction config option
- Set update-time on the aggregate device
- Update display device when battery is removed
* Sun Nov 16 2014 Kalev Lember <kalevlember@gmail.com> - 0.99.1-3
- Obsolete compat-upower09 from rhughes-f20-gnome-3-12 copr
* Wed Oct 15 2014 Peter Robinson <pbrobinson@fedoraproject.org> 0.99.1-2
- Rebuild for libimobiledevice 1.1.7
* Mon Aug 18 2014 Richard Hughes <rhughes@redhat.com> - 0.99.1-1
- New upstream release
- Create the history directory at runtime
- Do not log a critical warning when using _set_object_path_sync()
- Fix API doc for up_client_get_on_battery()
- Fix possible UpHistoryItem leak on failure
- Fix segfault on getting property when daemon is not running
- Fix shutdown on boot on some machines
- Fix small memleak on startup with Logitech devices
- Free the obtained device list array after use
- Remove IsDocked property
- Remove unused polkit dependency
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Tue Jul 22 2014 Kalev Lember <kalevlember@gmail.com> - 0.99.0-6
- Rebuilt for gobject-introspection 1.41.4
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon May 5 2014 Peter Robinson <pbrobinson@fedoraproject.org> 0.99.0-4
- Rebuild for libimobiledevice 1.1.6
* Mon Mar 17 2014 Richard Hughes <rhughes@redhat.com> - 0.99.0-3
- Split out a new devel-docs subpackage to fix multilib_policy=all installs.
- Resolves: #1070661
* Fri Nov 08 2013 Bastien Nocera <bnocera@redhat.com> 0.99.0-2
- Fix crash when D-Bus isn't available
* Tue Oct 29 2013 Richard Hughes <rhughes@redhat.com> - 0.99.0-1
- New upstream release
- This version contains major API changes and bumps library soname.
- Add DisplayDevice composite battery
- Add WarningLevel and IconName properties to all devices
- Clamp percentage for overfull batteries
- Emit PropertiesChanged signals
- Enforce critical battery policy on the daemon side
- Reduce client-side and daemon-side wake-ups
- Register objects on the bus once they've been setup
- Remove DeviceChanged and Changed signals
- Remove OnLowBattery property (use WarningLevel instead)
- Remove QoS support
- Remove battery recall support
* Fri Oct 18 2013 Richard Hughes <rhughes@redhat.com> - 0.9.23-1
- New upstream release
- Add missing dbus-glib-1 to private requires
- Avoid trying to close fd that wasn't opened
- Disable Watts-Up devices by default
- Don't guess discharging state for devices
- Fix crasher calling _about_to_sleep_sync()
- Really don't overwrite retval with prop values
- Update and correct Toshiba recall list
* Wed Oct 09 2013 Bastien Nocera <bnocera@redhat.com> 0.9.22-1
- Update to 0.9.22
- Fixes incorrect reporting of some properties
- Fixes battery values for Logitech unifying devices
- Bluetooth input devices support
- Device name fixes
* Fri Jul 26 2013 Richard Hughes <rhughes@redhat.com> - 0.9.21-1
- New upstream release
- Add support for Logitech Wireless (NonUnifying) devices
- Allow clients to call org.freedesktop.DBus.Peer
- Update the upower man page with all the current options
- Use PIE to better secure installed tools and also use full RELRO in the daemon
* Thu Apr 25 2013 Matthias Clasen <mclasen@redhat.com> - 0.9.20-3
- Enabled hardened build
- Don't use /lib/udev in file paths
* Tue Mar 19 2013 Matthias Clasen <mclasen@redhat.com> - 0.9.20-2
- Rebuild
* Mon Mar 11 2013 Richard Hughes <rhughes@redhat.com> - 0.9.20-1
- New upstream release
- Add a --enable-deprecated configure argument to remove pm-utils support
- Deprecate running the powersave scripts
- Factor out the Logitech Unifying support to support other devices
- Require unfixed applications to define UPOWER_ENABLE_DEPRECATED
- Fix batteries which report current energy but full charge
- Fix several small memory leaks
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.19-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Wed Jan 02 2013 Richard Hughes <rhughes@redhat.com> - 0.9.19-1
- New upstream release
- Add a Documentation tag to the service file
- Add support for Logitech Unifying devices
- Do not continue to poll if /proc/timer_stats is not readable
- Fix device matching for recent kernels
- Resolves: #848521
* Wed Oct 24 2012 Dan Horák <dan[at]danny.cz> - 0.9.18-2
- the notify-upower script is not installed with dummy backend on s390(x)
* Wed Aug 08 2012 Richard Hughes <rhughes@redhat.com> - 0.9.18-1
- New upstream release
- Use systemd for suspend and hibernate
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.17-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
%autochangelog