Skip to content
Snippets Groups Projects
Forked from upower / upower
95 commits behind the upstream repository.
To find the state of this project's repository at the time of any of these versions, check out the tags.
NEWS 43.26 KiB
Version 1.90.2
--------------
Released: 2023-07-06

Note that this is the last release of UPower with lid handling. OS components
that rely on the lid status should get it from logind instead. See:
https://www.freedesktop.org/software/systemd/man/org.freedesktop.login1.html

- Fix wireless devices not disappearing from Settings when disconnected
- Require a newer libgudev to avoid bugs related to newline stripping
  when reading sysfs attributes
- Add installed-tests files for use with gnome-desktop-testing
- Fix integration test to work with system installed upower binary and
  under jhbuild

Version 1.90.1
--------------
Released: 2023-07-04

- Detect headsets with kernel batteries such as Logitech and
  Steelseries headsets, and make them automatically disappear if
  the headset is turned off (if the kernel driver supports the
  wireless_status attribute)
- Hide duplicate Logitech Bluetooth devices (Bolt-compatible devices
  connected through Bluetooth would show as 2 batteries)
- Hide duplicate Logitech wireless devices when they get connected
  through USB as well
- Fix Bluetooth device names not synchronising, and use user-chosen
  names when available
- Handle the "present" sysfs attribute changing
- Fix iDevices not appearing
- Fix reading capacity_level with newer libgudev
- Fix OpenBSD backend

Version 1.90.0
--------------
Released: 2022-07-21

Note that the version number bump was made to allow bugfixes for older
releases while also making new releases that contain with more in-depth
code changes. The old (soft) API/ABI guarantees are currently unchanged.

Changes:
- Refactor internal battery handling into separate classes
- Guess charging/discharging state based on energy rate (#196)

Bug fixes:
- Fix polling after resume (#198)
- Fix battery state guessing (#146)
- Reload history when battery ID changes
- Test fixes

Version 0.99.19
---------------
Released: 2022-06-08

Changes:
- Move state guessing into DisplayDevice
- Always use 90% threshold to consider a battery full
- Various test improvements

Bug fixes:
- Fix mice showing up as keyboards (#189)
- Allow unit test inspector to fail (#187)
- Fix test cases when daemon shuts down too slowly (#188)

Version 0.99.18
---------------
Released: 2022-05-17
Changes:
- Remove broken wakeup DBus API
- Tag UPS hid devices using hwdb and update list from upstream
- Only permit Refresh method when in debug mode
- Refactor device polling
- Refactor udev device discovery and sibling detection
- Improved testing and CI
- Handle SIGTERM to trigger a clean shutdown

Bug fixes:
- Improve polling of batteries after line-power "online" status change
- Multiple wacom tablet detection fixes
- Fix updates after a BT hid power supply moves in sysfs
- Fix enumeration of "Whats Up!" devices on startup
- Accept USB power supplies without warning
- Allow building without gtk-doc

Version 0.99.17
---------------
Released: 2022-03-09

Bug fixes:
- Fix FD handling issues that may cause lid to not be detected

Version 0.99.16
---------------
Released: 2022-02-23

Bug fixes:
- Silence unnecessary udev event warnings
- Increase test timeout (#171)
- Explicitly link with plist
- Fix UpClient reference leak
- Fix DisplayDevice state on battery hotplug
- Fix critical action to work after it was cancelled (#172)

Version 0.99.15
---------------
Released: 2022-02-09

Bug fixes:
- Various build fixes
- Update bluetooth device alias when it changes (#169)

Version 0.99.14
---------------
Released: 2022-02-03

Changes:
- Port build system to meson
- New ChargeCycles D-Bus property (#152)
- New async GLib APIs (#121)
- lid related functions are now deprecated
- Refresh API is now deprecated

Bug fixes:
- Plenty of test suite fixes
- Fix leak of inhibitor lock (#160)
- Recognize USB power supplies (#148)
- Fix time compression of data points (#167)
- Fix disk write amplification when battery is low (#150)

Version 0.99.13
---------------
Released: 2021-08-17

Bug fixes:
- Tweak default percentage levels to better match other operating systems
- Support large energy rates seen in some modern laptops
- Fix touchpads showing up as mice
- Fix composite battery state when multiple batteries are used and
  one isn't drawing any power
- Make the icon and warning properties respect the "low battery level"
  configuration option
- Stop the device being suspended during the 20-second "shutdown" grace period

Version 0.99.12
~~~~~~~~~~~~~~~
Released: 2021-06-17

New Features:
- Add a raft of new device types
- Add support for iPhone XR, XS and newer models

Bug fixes:
- Work-around incorrect battery percentage reported by MacBooks
- Identify keyboard/pointing device combos as keyboards
- Fix small memory leak in Bluetooth backend
- Fix warning in Bluetooth backend
- Set update time in Bluetooth backend
- Remove support for obsolete CSR devices

Version 0.99.11
~~~~~~~~~~~~~~~
Released: 2019-09-03

New Features:
 - Add code of conduct document
 - build: Migrate from intltool to gettext
 - rules: Split off HID++ udev rules
 - Harden systemd service
 - Let systemd create /var/lib/upower
 - Move D-Bus policy file to /usr/share/dbus-1/system.d/

Bug fixes:
 - Fix endless loop burning 100% CPU on keyboard plugout with external
   backlight
 - linux: Start polling for unknown device batteries too
 - linux: Retry to get a battery type if it's unknown
 - linux: Don't treat device batteries like laptop batteries
 - Replace use of G_TYPE_INSTANCE_GET_PRIVATE and g_type_class_add_private()

Version 0.99.10
~~~~~~~~~~~~~~~
Released: 2019-02-20

Bugfixes:
 - 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%

Version 0.99.9
~~~~~~~~~~~~~~
Released: 2018-10-25

Bugfixes:
 - Fix lack of update after AC status changes, and broken keyboard
   backlight, following the daemon lockdown added in 0.99.8
 - Multiple API documentation fixes
 - Out-of-tree build fixes

Version 0.99.8
~~~~~~~~~~~~~~
Released: 2018-06-18

New Features:
 - Lock down systemd service file
 - Add support for "Unknown" capacity level, and clarify handling
   of devices with coarse battery levels
 - Add a new version of up_client_get_devices() which unrefs contents

Bugfixes:
 - Fix warnings when D-Bus related properties change
 - Prevent crash after attaching an Apple TV, and support newer
   versions of iOS
 - Lower severity of "unhandled action" messages
 - Fix battery status on MacBooks after a plug or unplug event
 - Fix double-close on exit

Version 0.99.7
~~~~~~~~~~~~~~
Released: 2017-11-28

New Features:
 - Add support for Bluetooth LE device batteries (Bastien Nocera)
 - Allow to be replaced via --replace,-r (Christian Kellner)

Bugfixes:
 - Fix critical action after resume from hibernate (Miroslav Sustek)
 - Fix compilation with libimobiledevice git (Bastien Nocera)

Version 0.99.6
~~~~~~~~~~~~~~
Released: 2017-09-11

New Features:
 - Add UP_DEVICE_KIND_GAMING_INPUT for gaming devices (Bastien Nocera)
 - Detect joysticks as gaming input devices (Bastien Nocera)

Bugfixes:
 - Correctly close inhibitor FD (Benjamin Berg)
 - Fix crash when '@' is present in the device name (oleid, Bastien Nocera)
 - Fix lid detection on FreeBSD (Alberto Villa)
 - Grab the model name from device if unavailable from battery (Bastien Nocera)

Version 0.99.5
~~~~~~~~~~~~~~
Released: 2017-07-24

New Features:
 - Add a more complete self test for HID++ devices (Bastien Nocera)
 - Add BatteryLevel property for devices with a finite number of power levels (Bastien Nocera)
 - Add support for pausing and resuming of the daemon poll (Christian Kellner, Bastien Nocera)
 - Get a serial number for device batteries (Bastien Nocera)
 - Refresh devices after waking up from sleep (Christian Kellner)

Bugfixes:
 - Add proper error and cancellable handling to UpClient constructor (Martin Pitt)
 - Do not spin in a loop when /proc/timer_stats cannot be written (Richard Hughes)
 - Exit early from up-tool when connecting to upower fails (Martin Pitt)
 - Expand the integration-tests to run in more environments (Bastien Nocera, Christian Kellner)
 - Fix reading and writing the keyboard brightness level (Hans de Goede, Marco Trevisan)
 - Fix -Wformat-y2k compilation errors (Bastien Nocera)
 - Lower initial power usage when iDevice isn't accessible (Bastien Nocera)
 - Simplify string checks in upower-glib (Bastien Nocera)

Version 0.99.4
~~~~~~~~~~~~~~
Released: 2016-02-16

New Features:
 - Add support for Logitech G700s/G700 Gaming Mouse (muzena)
 - Port to GDBus (Cosimo Cecchi)
 - Support g_autoptr() for all libupower-glib object types (Kalev Lember)

Bugfixes:
 - Add critical action support for *BSD (Eric Koegel)
 - Change the default low battery policy to percentage (Bastien Nocera)
 - Fix deprecation warning in integration-test (Bastien Nocera)
 - Fix memory leak in up_client_get_devices() (Bastien Nocera)
 - Fix possible double-free (Bastien Nocera)
 - Update HID rules and fix build regression (Arnaud Quette)

Version 0.99.3
~~~~~~~~~~~~~~
Released: 2015-05-28

Bugfixes:
 - Bail out when iDevice state is malformed (Bastien Nocera)
 - Defer getting iDevice info until ready (Bastien Nocera)
 - Fix crash on uninitialized variant (Vlad Orlov)
 - Fix libimobiledevice msg in configure (Bastien Nocera)
 - More memory handling fixes in iDevice (Bastien Nocera)
 - Properly detect bluetooth mice and keyboards that are HID devices (Marc Deslauriers)
 - Support Logitech Unifying in Linux 3.19 (Peter Wu)
 - Work-around broken battery on the Onda v975w (Bastien Nocera)

Version 0.99.2
~~~~~~~~~~~~~~
Released: 2014-12-18

Bugfixes:
 - Avoid unaligned memory access in hidpp-device (Peter Wu)
 - Bump GLib min req to 2.34 (Eric Koegel)
 - Correct check to prevent the display of invalid ASCII codes (Eric Koegel)
 - Fencepost array access error (Eric Koegel)
 - Fix cleanup in up_device_idevice_coldplug/finalize (Nikolay Martynov)
 - Fix crash if there is no session D-BUS (Martin Pitt)
 - Fix error handling for Python 3.4 (Martin Pitt)
 - Fix various memory and reference leaks (Peter Wu)
 - Release resources at shutdown (Peter Wu)
 - Respect the CriticalPowerAction config option (Bastien Nocera)
 - Set update-time on the aggregate device (Bastien Nocera)
 - Split out updating on_battery and warning_level (Bastien Nocera)
 - Update aggregate device on battery removal (Evangelos Foutras)
 - Update display device when battery is removed (Bastien Nocera)
 - Use g_get_real_time() when possible (Bastien Nocera)

Version 0.99.1
~~~~~~~~~~~~~~
Released: 2014-08-18

New Features:
 - Expose "capacity" and "energy-full-design" properties on OpenBSD (Fabian Raetz)
 - Remove IsDocked property (Bastien Nocera)
 - Remove unused polkit dependency (Eric Koegel, Martin Pitt)

Bugfixes:
 - Create the history directory at runtime (Cosimo Cecchi)
 - Do not log a critical warning when using _set_object_path_sync() (Richard Hughes)
 - Fix API doc for up_client_get_on_battery() (Bastien Nocera)
 - Fix possible UpHistoryItem leak on failure (Bastien Nocera)
 - Fix segfault on getting property when daemon is not running (Martin Pitt)
 - Fix shutdown on boot on some machines (Bastien Nocera)
 - Fix small memleak on startup with Logitech devices (Bastien Nocera)
 - Free the obtained device list array after use (Alexander Jesner)
 - Update lid status when updating AC status (Jasper Lievisse Adriaanse)

Version 0.99.0
~~~~~~~~~~~~~~
Released: 2013-10-29

Notes:
 - This version contains major API changes. Use the 0.9.* versions if you want
   to keep using the old API.

New Features:
 - Add WarningLevel and IconName properties to all devices (Bastien Nocera)
 - Add DisplayDevice composite battery (Bastien Nocera)
 - Enforce critical battery policy on the daemon side (Bastien Nocera)

Bugfixes:
 - Reduce client-side and daemon-side wake-ups (Bastien Nocera)
 - Emit PropertiesChanged signals (Bastien Nocera)
 - Register objects on the bus once they've been setup (Bastien Nocera)
 - Clamp percentage for overfull batteries (Martin Pitt)

Feature Removals:
 - Remove battery recall support (Bastien Nocera)
 - Remove QoS support (Bastien Nocera)
 - Remove OnLowBattery property (use WarningLevel instead) (Bastien Nocera)
 - Remove DeviceChanged and Changed signals (PropertiesChanged
   signals are sent instead) (Bastien Nocera)

Version 0.9.22
~~~~~~~~~~~~~~
Released: 2013-10-08

New Features:
 - Add temperature property for batteries (Seth Forshee)

Bugfixes:
 - Fix error handling in up_client_get_properties_sync() (Bastien Nocera, Martin Pitt)
 - Make GetHistory() array order consistent (Martin Pitt)
 - Fix crash with bluetooth input devices (Martin Pitt)
 - Lots of fixes/rework for Logitech wireless input devices (Peter Wu)
 - Allow valid UTF-8 encoded properties (Shih-Yuan Lee (FourDollars))
 - Detect the battery of bluetooth input devices (Shih-Yuan Lee (FourDollars))
 - Only one warning if no valid voltage found (Timothée Ravier)
 - openbsd: Do not call g_thread_init() (Richard Hughes)

Version 0.9.21
~~~~~~~~~~~~~~
Released: 2013-07-26

New Features:
 - Add support for Logitech Wireless (NonUnifying) devices (Arkadiusz Miśkiewicz)
 - Use PIE to better secure installed tools and also use full RELRO in the daemon (Richard Hughes)

Bugfixes:
 - Allow clients to call org.freedesktop.DBus.Peer (Richard Hughes)
 - Detect udev rules dir (Tom Gundersen)
 - Drop --enable-systemd and linking to libsystemd-daemon (Martin Pitt)
 - Find hidraw devices correctly with systemd udev >= v196 (Arkadiusz Miśkiewicz)
 - Fix test for logind availability (Martin Pitt)
 - Update the upower man page with all the current options (Richard Hughes)

Version 0.9.20
~~~~~~~~~~~~~~
Released: 2013-03-18

New Features:
 - Add a --enable-deprecated configure argument to remove pm-utils support (Richard Hughes)
 - Deprecate running the powersave scripts (Richard Hughes)
 - Factor out the Logitech Unifying support to support other devices (Richard Hughes)
 - Require applications to define UPOWER_ENABLE_DEPRECATED to use deprecated functionality (Richard Hughes)

Bugfixes:
 - Bump maximum accepted "time to empty" to 10 days (Martin Pitt)
 - Don't use the deprecated INCLUDES in Makefile.am (Richard Hughes)
 - Fix batteries which report current energy but full charge (Alex Hornung)
 - Fix K750 features name, use 1 second interval (Julien Danjou)
 - Fix memory leak in up_polkit_get_subject (Charles Kerr)
 - Fix two memory leaks (Colin Watson)
 - integration-test: Always run on a fake system bus (Martin Pitt)
 - integration-test: Move to using umockdev (Martin Pitt)
 - Never use -WError when building (Richard Hughes)
 - Raise the hard PolicyKit dep to 0.97 (Richard Hughes)

Version 0.9.19
~~~~~~~~~~~~~~
Released: 2013-01-02

New Features:
 - Add a Documentation tag to the service file (Matthias Clasen)
 - Add luminosity property (Julien Danjou)
 - Add support for Logitech Unifying devices (Julien Danjou)

Bugfixes:
 - Always return 0 from notify-upower.sh (Richard Hughes)
 - Do not continue to poll if /proc/timer_stats is not readable (Richard Hughes)
 - Fix "can-hibernate" formatting in upower --dump (Martin Pitt)
 - Fix device matching for recent kernels (Peter Hurley)
 - Fix srcdir != builddir (Colin Walters)
 - Send resume signal when built with systemd and using pm-utils suspend (Jan Alexander Steffens)

Version 0.9.18
~~~~~~~~~~~~~~
Released: 2012-08-08

New Features:
 - Use systemd if possible for suspend and hibernate (Matthias Clasen)

Bugfixes:
 - openbsd: Properly initialize update-time when creating devices (Landry Breuil)

Version 0.9.17
~~~~~~~~~~~~~~
Released: 2012-06-25

New Features:
 - Fail on CRITICALs in the integration-test (Martin Pitt)

Bugfixes:
 - Drop 'type' parameter from CancelRequest() signature (Sascha Silbe)
 - Fix the LatencyChanged signal (Sascha Silbe)
 - Fix use-after-free of qos item (Sascha Silbe)
 - Fix wrong PowerSupply property for devices without a scope sysfs attribute (Martin Pitt)
 - linux: Don't allow non-power-supply devices to set the OnBattery property (Daniel Nicoletti)
 - linux: Remove obsolete check for magicmouse_ and duplicated wacom_ checks (Daniel Nicoletti)
 - linux: Treat the battery state 'not charging' as PENDING_CHARGE (Richard Hughes)
 - Selectively disable warnings for deprecated GValueArray (Martin Pitt)

Version 0.9.16
~~~~~~~~~~~~~~
Released: 2012-04-30

Translations:
New Features:
 - Add boolean RunPowersaveCommand to UPower.conf (Landry Breuil)
 - Install a systemd service file if systemd is used (Benedikt Morbach)

Bugfixes:
 - Clamp the UPS percentage from 0 to 100 to fix syslog spam (Richard Hughes)
 - Correct the cap on the energy rate (Gary Ching-Pang Lin)
 - Do not print error message for missing /etc/crypttab (Kelly Anderson)
 - Fix crash in up_device_csr_finalize (Martin Pitt)
 - Never detect HID devices with batteries as power supplies (Richard Hughes)
 - Re-coldplug dock status when resuming from sleep (Evan Broder)
 - Return all history records for a timespan of zero (Richard Hughes)
 - libupower-glib: fix small memory leak (Pavel Vasin)
 - libupower-glib: srcdir != builddir fix (Ryan Lortie)
 - openbsd: Fix history by not trying to refresh if /dev/apm wasn't opened yet (Landry Breuil)
 - openbsd: Handle case where minutes_left might be negative (Landry Breuil)
 - openbsd: Set powersave command to apm -C/-A (Landry Breuil)
 - openbsd: Use a singleton pattern to access /dev/apm (Landry Breuil)

Version 0.9.15
~~~~~~~~~~~~~~
Released: 2011-12-05

New Features:
 - Add --with-historydir to specify where we want the history files to be stored (Landry Breuil)
 - Use linear regression to get better predicted battery times (Leonardo Robol)

Bugfixes:
 - Don't assert when the power_supply device type is usb (Richard Hughes)
 - Don't spam the log when we're saving history when on low power (Richard Hughes)
 - Fail the tests gracefully if GI is not available (Martin Pitt)
 - Fix crash in up_device_csr_finalize() (Martin Pitt)
 - Fix invocation of src/linux/integration-test (Martin Pitt)
 - Handle Linux power supplies not exporting a present property (Heiko Stübner)
 - If a power-supply device doesn't report charge or energy, try to read the percentage (Richard Hughes)
 - Move the wacom hack to allow us to support other types of USB device (Richard Hughes)
 - Port the tests to Python 3 (Martin Pitt)

Version 0.9.14
~~~~~~~~~~~~~~
Released: 2011-10-03

New Features:
 - Filter the debugging details unless --verbose is specified (Richard Hughes)

Bugfixes:
 - Fix linux up_backend_supports_sleep_state() return code (Christian Seiler)
 - Fix the kFreeBSD detection (Pino Toscano)

Version 0.9.13
~~~~~~~~~~~~~~
Released: 2011-09-05

New Features:
 - Modernize autotools config (Javier Jardón)
 - Use git.mk and remove the manual .gitignore files (Richard Hughes)
 - Use upstream gettext instead the glib one (Javier Jardón)

Bugfixes:
 - Avoid warnings about missing annotations (Javier Jardón)
 - Don't rely on files' presence to define the default backend (Diego Elio Pettenò)
 - Fully port the test suite to use GObject Introspection (Martin Pitt)
 - Hardcode wacom battery devices as not power-supply devices (Richard Hughes)
 - Use autoreconf instead custom script (Javier Jardón)
 - Use g_unix_signal_add_full() which has been renamed in GLib (Denis Washington)

Version 0.9.12
~~~~~~~~~~~~~~
Released: 2011-07-04

Bugfixes:
 - Add AC_PROG_LIBTOOL as advised by autotools (Landry Breuil)
 - Add openbsd missing includes for close and strcmp (Landry Breuil)
 - Fix how we estimate the device rate for batteries that do not provide this data (Richard Hughes)
 - Silence some openbsd warnings about unused vars and bad return values (Landry Breuil)
 - Switch to using .xz tarballs (Richard Hughes)

Version 0.9.11
~~~~~~~~~~~~~~
Released: 2011-05-25

New Features:
 - Add new NotifySleep() and NotifyResume() signals that include the sleep type (Richard Hughes)

Bugfixes:
 - Ensure up-apm-native.h gets shipped in the tarball for OpenBSD (Richard Hughes)
 - Check energy vs. charge in the Linux integration tests (Martin Pitt)
 - Only include glib-unix.h if the GLib version is >= 2.29.4 (Richard Hughes)
 - Respect $PYTHON for running the test suite (Martin Pitt)
 - Run subset of tests when system D-BUS is not available (Martin Pitt)

Version 0.9.10
~~~~~~~~~~~~~~
Released: 2011-05-03

New Features:
 - Add a config option 'IgnoreLid' for users with broken lid switches (Richard Hughes)
 - Add integration test suite for Linux (Martin Pitt)
 - Add option to run daemon on the session bus for testing (Martin Pitt)
 - Add OpenBSD backend which uses the APM_IOC_GETPOWER ioctl() (Landry Breuil)
 - Support virtual UPS devices for testing (Martin Pitt)

Bugfixes:
 - Consider a discharging UPS as "on battery" (Martin Pitt)
 - Do not overwrite aclocal flags in autogen, fixes b.fd.o #35261 (Tobias Mueller)
 - Fix "unknown" battery status guessing to not be recursive (Martin Pitt)
 - Respect $UPOWER_CONF_FILE_NAME in up_config_init (Martin Pitt)
 - Support batteries that report both energy and charge (Benson Leung)
 - upower needs -pthread (Landry Breuil)
 - Use the new threadsafe signal handling support in GLib (Richard Hughes)
 - Wuninitialized needs -O (Landry Breuil)

Version 0.9.9
~~~~~~~~~~~~~
Released: 2011-03-21

New Features:
 - Add a config option to disable the Watts Up Pro device (Richard Hughes)
 - Add a LidForceSleep property to ensure that we don't melt any laptops (Richard Hughes)
 - Add an option for polling dock devices in UPower.conf, defaulting to false (Richard Hughes)

Bugfixes:
 - Depend on stable GUdev API (Michael Biebl)
 - Drop devkit and devkit-power-daemon symlinks (Michael Biebl)
 - Fix bitmap check in the input code (Arnaud Patard)
 - Honour ACLOCAL_FLAGS in Makefile.am (Richard Hughes)

Version 0.9.8
~~~~~~~~~~~~~
Released: 2011-01-07

New Features:
 - Add an IsDocked binary property to the main interface (Richard Hughes)
 - Use the number of active DRM devices to determine the system docked status (Richard Hughes)

Bugfixes:
 - Add method to set history dir (Martin Pitt)
 - Check for and link against libplist (Martin Pitt)
 - Drop check for polkit-backend again (Martin Pitt)
 - Fix compilation error against Linux 2.6.36 (Martin Pitt)
 - Fix links to git repository in HACKING (Zygmunt Krynicki)
 - Fix self check to work as non-root (Martin Pitt)
 - Re-add AM_MAINTAINER_MODE (but enable it by default) (Michael Biebl)
 - Reduce race condition in history purging self check (Martin Pitt)
 - Support the power_now sysfs attribute to get time remaining on new kernels (Richard Hughes)
 - Update the list of HID UPS devices (Arnaud Quette)

Version 0.9.7
~~~~~~~~~~~~~
Released: 2010-11-01

Translations:
 - Add French translation (Christoph Thompson)

New Features:
 - Add support for controlling leds keyboard backlights (Alex Murray)
 - Port from EggDebug to the GLib built-in logging framework (Richard Hughes)

Bugfixes:
 - Fix building with gobject-introspection 0.9.10 (Edward Sheldrake)
 - Fix up all the warnings when building with new versions of gobject-introspection (Richard Hughes)
 - Keyboard backlight of zero is not an error (Alex Murray)
 - libupower-glib: Reject invalid object paths to avoid asserting libdbus (Richard Hughes)
 - Remove the UP_DEVICE_SUPPLY_CHARGED_THRESHOLD heuristic (Michal Schmidt)

Version 0.9.6
~~~~~~~~~~~
Released: 2010-10-04

New Features:
 - Remove devkit-power-gobject (Richard Hughes)

Bugfixes:
 - Allow explicitly disabling libimobiledevice support (Brett Witherspoon)
 - Free GErrors after returning them (Matthias Clasen)
 - Add missing D-Bus return in up_qos_cancel_request() (Matthias Clasen)
 - Fix double D-BUS return in up_daemon_*_allowed (Matthias Clasen)
 - Fix up_polkit_get_subject() D-BUS error return (Matthias Clasen)
 - Ensure the new device types get valid descriptions in upower --dump (Richard Hughes)
 - Fix compile with the latest PolicyKit release (Richard Hughes)
 - Only save by default 7 days data to stop the log files becoming huge. Fixes rh#634228 (Richard Hughes)
 - Do not continue to poll the serial port if there is no Watts Up Pro adaptor (Richard Hughes)
 - Fix the build with new versions of gobject-introspection (Richard Hughes)

Version 0.9.5
~~~~~~~~~~~
Released: 2010-07-12

New Features:
 - Add battery query support for iDevices (Bastien Nocera)
 - Assign names to our idle sources when using new versions of glib2 (Richard Hughes)
 - Dynamic testing for enough hibernate swap (Martin Pitt)
 - Port UPower to libusb1 to avoid unfixable crashes (Richard Hughes)
 - Port to GTest (Richard Hughes)
 - Get the powersave command from the backend rather than hardcoding Linux specifics (Richard Hughes)

Bugfixes:
 - Update the list of supported TrippLite HID Power Devices (Joseph Stockman)
 - Fix a potential daemon crash. Fixes fd#27902 (Mariusz Ceier)
 - Increase UP_DAEMON_SWAP_WATERLINE (Martin Pitt)
 - Fix up a potential crasher in the CSR device code (Richard Hughes)
 - When calculating used swap space, only use anonymous pages (Steven Walter)
 - Use pm-is-supported to test if various sleep modes are supported (Victor Lowther)

IMPORTANT NOTE:
 - This is the last release with the deprecated devkit-power-gobject library
   included. Users should have ported to libupower-glib months ago...

Version 0.9.4
~~~~~~~~~~~
Released: 2010-05-12

New Features:
 - Detect when the kernel changes the reported charge units. Fixes rh#587112 (Kyle McMartin)

Bugfixes:
 - Only emit ::Sleeping() after we've checked AboutToSleep (Richard Hughes)
 - Ensure we send ::Sleeping() if clients do not call AboutToSleep (Richard Hughes)
 - Ensure we sent ::notify signals when UpDaemon properties change (Richard Hughes)

Version 0.9.3
~~~~~~~~~~~
Released: 2010-05-06

New Features:
 - Add a config file with SleepTimeout and AllowHibernateEncryptedSwap entries (Richard Hughes)

Bugfixes:
 - Fix c&p typo in documentation (Michael Biebl)
 - The gettext package should match the tarball name (Richard Hughes)
 - Provide UpDaemon with C setters rather than relying on GObject properties (Richard Hughes)
 - Sanity check the device is not already in the list before adding (Richard Hughes)
 - Fix recognition of lithium iron phosphate (LiFePO4) batteries (Sascha Silbe)

Version 0.9.2
~~~~~~~~~~~~~
Released: 2010-04-06

New Features:
 - Add a missing accessor: up_client_get_lid_is_present() (Richard Hughes)
 - Change the tarball name to be all lower case to match udisks and udev (Richard Hughes)
 - Convert the daemon to using objects from libupower-glib, not devkit-power-gobject (Richard Hughes)
 - Do not allow client programs to enumerate the device list more than once (Richard Hughes)
 - Get the encrypted swap status from the backend, rather than hardcoding Linux specifics (Richard Hughes)
 - Get the kernel sleep capabilities from the backend, rather than hardcoding Linux specifics (Richard Hughes)
 - Get the suspend and hibernate commands from the backend, rather than hardcoding Linux specifics (Richard Hughes)
 - Get the swap size from the backend, rather than hardcoding Linux specifics (Richard Hughes)
 - Show in ./configure summary if unit tests have been enabled or not (Michael Biebl)

Bugfixes:
 - Do not warn what we are correcting energy-full when there is no data to copy (Richard Hughes)
 - Ensure we enumerate devices before we start monitoring them (Richard Hughes)
 - Fixes to the autogen.sh script (Michael Biebl)
 - Make dummy backend usable for architectures without a native backend (Michael Biebl)
 - Remove libdevkit-power-gobject dependency from backends (Michael Biebl)
 - Simplify udev subdirectory handling (Michael Biebl)

Version 0.9.1
~~~~~~~~~~~~~
Released: 2010-03-03

New Features:
 - Add a new method and two new signals to inform userspace of the pending suspend and the resume event (Richard Hughes)
 - Add {Suspend,Hibernate}Allowed D-Bus methods (Martin Pitt)
 - Add up_polkit_is_allowed() function (Martin Pitt)
 - Check PolicyKit in client's can_{suspend,hibernate} properties (Martin Pitt)
 - Don't ship an introspection file for devkit-power-gobject, it's soon to be obsolete (Richard Hughes)
 - Install the introspection data to the correct location (Richard Hughes)
 - Make the upower client tool use libupower-glib, rather than devit-power-gobject (Richard Hughes)
 - Use GCancellable in libupower-glib so we can eventually get to GIO async methods (Richard Hughes)

Bugfixes:
 - Ensure we return all lines of the UpDevice when we call up_device_to_string() (Richard Hughes)
 - Fix libupower-glib include dir and pkgconfig (Martin Pitt)
 - Fix up autogen.sh after the configure.ac modernisation (Michael Biebl)
 - Fix up the FreeBSD backend compile (Michael Biebl)
 - Fix up the include directory in the pkgconfig file (Richard Hughes)
 - Make sure the tests link against all necessary libraries (Michael Biebl)
 - Move the history files to /var/lib/upower (Michael Biebl)
 - Update help and g_option_context_new to upower (Michael Biebl)
 - Use the new project name in g_option_context_new (Michael Biebl)

Version 0.9.0
~~~~~~~~~~~
Released: 2010-02-01

NOTES:
 - The DBus service and interfaces have been renamed
 - The devkit-power-gobject library is still API and ABI stable
 - The libupower library co-installs with devkit-power-gobject for now
 - The version has changed to 0.9.0 from 015. You'll need to use an epoch in
   your distro package if you're not renaming the package from DeviceKit-power
   to UPower. See the sample Fedora spec if you need a template.

Translations:
 - Add Swedish translation (Daniel Nylander)
 - Added Italian translation (Luca Ferretti)
 - Add Polish translation (Piotr Drąg)

New Features:
 - Add initial GObject introspection support (Richard Hughes)
Bugfixes:
 - Use a fallback for the capability bit when checking the lid status. Fixes #25041 (Richard Hughes)
 - Rename the DBus service from org.freedesktop.DeviceKit.Power to org.freedesktop.UPower (Richard Hughes)
 - Rename the PolicyKit rules from org.freedesktop.devicekit.power to org.freedesktop.upower (Richard Hughes)
 - Make the client tool be called upower, but maintain a symlink to devkit-power (Richard Hughes)
 - Rename the man pages and rename the main daemon binary name (Richard Hughes)
 - Change the version number to 0.9.0 and tarball name to UPower (Richard Hughes)
 - Version-lock the devkit-power-gobject version to 015, not 0.9.0 (Richard Hughes)
 - Make DkpClient a singleton to avoid some weird race conditions (Richard Hughes)
 - Add libupower so applications can switch away from devkit-power-gobject (Richard Hughes)
 - Update the Free Software Foundation address (Richard Hughes)

Version 014
~~~~~~~~~~~
Released: 2010-01-08

New Features:
 - Import the FreeBSD backend (Joe Marcus Clarke)

Bugfixes:
 - Check if swap exists before determining how much is free (Debbie Beliveau)
 - Comment out some problematic compiler warnings (Joe Marcus Clarke)
 - Prevent segfault if connection to system dbus fails (Martin Koegler)
 - Fix segfault in the history code. Fixes fd#25632 (Richard Hughes)

Version 013
~~~~~~~~~~~
Released: 2009-12-07

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - This will probably be the last release of DeviceKit-power as the project has
   been renamed to upower.

New Features:
 - When using devkit-power --monitor, print a timestamp before each message for
   debugging. Fixes fd#24666 (Richard Hughes)

Bugfixes:
 - Update the list of HID UPS (Arnaud Quette)
 - Use a gdouble for percentage to fix on-battery reporting (Byron Clark)
 - Bug 24262 – incorrect battery recall warning for Lenovo T61 (Martin Pitt)
 - Fix the toshiba battery recal notices by matching up the double quotes (Richard Hughes)
 - Avoid going from discharging to pending-discharge when the expansion battery
   is very low (Richard Hughes)
 - Some vendors fill the NVRAM full of junk. Don't crash the daemon if the
   battery is broken. Fixes rh#533654 (Richard Hughes)
 - When the internal battery is in the unknown state, we can't make a decision
   whether the system is on battery power (Richard Hughes)
 - Some batteries give out massive rate values when nearly empty (Richard Hughes)

Version 012
~~~~~~~~~~~
Released: 2009-10-19

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.

New Features:
 - Detect encrypted swap and prevent hibernate in this case. Fixes fd#23196 (Richard Hughes)
 - Add g_object_notify() calls for properties on DkpClient (Richard Hughes)

Bugfixes:
 - Ensure we only reset the update-time property when we have done the refresh, not before (Richard Hughes)
 - Don't emit changed events from the DkpBackend layer, instead push then through DkpDevice (Richard Hughes)
 - When we do a delayed refresh, actually do 5 x 1 second apart rather than 1 x 3 seconds (Richard Hughes)

Version 011
~~~~~~~~~~~
Released: 2009-10-06

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - The DBus interface has changed to use FirstLetterCaps property names
   so Qt projects can use the DBus interface without resorting to ugly hacks.

New Features:
 - Return meaningful errors if the user tries to suspend or hibernate without
   kernel support or swap set up (Richard Hughes)
 - Use the sysfs file 'type' to work out the battery type before using a
   fallback (Enrico Zini, Richard Hughes)

Bugfixes:
 - Update list of HID UPS devices (Arnaud Quette)
 - Add backend code to make DeviceKit-power compile without GUdev for non-Linux
   platforms (Richard Hughes)
 - Only disable the polling if the kernel tells us we're fully charged, not if
   we guessed it (Richard Hughes)
 - Make the remove logic much cleaner to try to fix bugs where removing the
   mouse kills the session (Richard Hughes)
 - Fix up some small memory leaks (Richard Hughes)
 - Freeze and thaw the device during initial coldplug (Richard Hughes)
 - Fix up a few potential problems spotted by clang (Richard Hughes)
 - Fix a tiny memory leak when we collect the properties from the interface
   multiple times (Richard Hughes)
 - Use voltage_now as a fallback to the design voltage (Enrico Zini, Richard Hughes)

Version 010
~~~~~~~~~~~
Released: 2009-07-22

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - This project now depends on GUdev and PolicyKit1

New Features:
 - Port to GUdev (Richard Hughes)
 - Port to PolicyKit1 (Richard Hughes)

Bugfixes:
 - Add a notify flag to set_lid_is_closed to fix the initial state (Loïc Minier)
 - Correct a description string from one of the new enums (Richard Hughes)
 - Only guess the battery status if we have > 1 battery in the system (Richard Hughes)
 - Use the global battery state as a metric for single battery machines (Richard Hughes)
 - Query the kernel to decide if we have hibernate and suspend support (Richard Hughes)
 - If we don't have enough swap available, don't advertise hibernate. Fixes rh#513015 (Richard Hughes)
 - Force a refresh all battery devices when the ac-adaptor changes. Fixes rh#512995 (Richard Hughes)

Version 009
~~~~~~~~~~~
Released: 2009-07-06

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - The experimental devkit-power-gobject library has no API or ABI guarantees.
 - This is the first version of DeviceKit-power where multiple laptop batteries
   are officially supported.

New Features:
 - Interface with pm-powersave as external vendors are using this (Richard Hughes)
 - Enable pretty compiler output with new automake versions (Richard Hughes)
 - udev rules files now live in /lib/udev/rules.d, not /etc/udev/rules.d (Richard Hughes)
 - Add battery recall data rules (Richard Hughes)
 - Export the recall-notice, recall-vendor and recall-url properties on power devices (Richard Hughes)
 - Protect the non-GObject accessors with DKP_DISABLE_DEPRECATED (Richard Hughes)
 - Add two new state enums, pending-discharge and pending-charge (Richard Hughes)
 - Use the global state to fix the unknown battery status (Richard Hughes)

Bugfixes:
 - Suppress lid change event on startup (Martin Pitt)
 - Fix two issues with the pm-powersave code (Roland Dreier)
 - Mark batteries as empty if they have unknown state and a very low energy (Richard Hughes)
 - For power_supply, unknown is a valid state from the kernel (Richard Hughes)
 - Don't assume all batteries have positive energy_full values (Richard Hughes)
 - Add one more variation of lithium-poly (Richard Hughes)
 - Don't show empty vendor, model or serials in the debug outputs (Richard Hughes)
 - Fix a small memory leak on supply coldplugging (Richard Hughes)
 - Hardcode pm-powersave like we do pm-suspend and pm-hibernate (Richard Hughes)
 - Initial refresh after coldplug is not fatal if it fails (Richard Hughes)
 - Set the GObject properties correctly in the DkpDeviceHid class (Richard Hughes)
 - The UPS can't expose empty or fully-charged, so fixup these states (Richard Hughes)
 - Fix detecting the USB UPS devices (Richard Hughes)
 - Add a lid-is-present property (Richard Hughes)
 - Be less asserty when enum values are added in newer versions of the spec (Richard Hughes)
 - Add a DKP_CHECK_VERSION macro which we can use in client tools (Richard Hughes)
 - Move the udev rules to their own directory (Richard Hughes)
 - Move a small rule about the fully charged level from g-p-m (Richard Hughes)

Version 008
~~~~~~~~~~~
Released: 2009-06-01

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - The experimental devkit-power-gobject library has no API or ABI guarantees.

New Features:
 - Allow the daemon to get the global online state for all devices (Matthew Garrett)
 - Add a has-capability to the org.freedesktop.DeviceKit.Power.Wakeups interface (Richard Hughes)
 - Add a property lid-is-closed for g-p-m and x-p-m to use (Richard Hughes)

Bugfixes:
 - Fix up some issues in DkpClient, and expose GObject properties (Ali Abdallah)
 - Remove the 0x prefix from some rule matches (Ronald)
 - Allow all DBus properties to be read with the new DBus (Richard Hughes)
 - Only reset the update-time if the read was successful (Richard Hughes)
 - Optimise the udev rules to skip non-usb devices (Richard Hughes)
 - Ensure we get properties on devices correctly that have not yet been changed (Richard Hughes)
 - Make the suspend and hibernate scripts execute synchronously. Fixes rh#497563 (Richard Hughes)
 - Ignore method timeouts when we suspend and hibernate (Richard Hughes)
 - Add two missing files to the last commit (Richard Hughes)
 - Don't overwrite energy-full-design with zero after coldplug (Richard Hughes)
 - Only get the device state for the poll after the refresh (Richard Hughes)
 - Continue to poll when power supply device is marked unknown. Fixes rh#495493 (Richard Hughes)
 - Correct a debugging statement (Richard Hughes)
 - Never overwrite ID_PRODUCT or ID_VENDOR (Richard Hughes)
 - Don't return history data relative to the earliest point (Richard Hughes)
 - Setup different polls based on the battery state (Matthew Garrett)
 - Don't poll on unknown forever. Based on a patch from Matthew Garrett (Richard Hughes)
 - Fix up the return statuses from coldplug and refresh (Richard Hughes)
 - Only attempt to print history if the device is capable (Richard Hughes)
 - Allow properties in DkpDevice (client) to be set (Richard Hughes)

Version 007
~~~~~~~~~~~
Released: 2009-03-30

Note:
 - The DBus interface of DeviceKit-power may be subject to change in future
   versions of this daemon.
 - The experimental devkit-power-gobject library has no API or ABI guarantees.

New Features:
 - Get rid of internal Object and instead use the GObject property system (Richard Hughes)
 - Move the library directory from libdevkit-power to devkit-power-gobject (Richard Hughes)
 - Ship a shared library. There are now three external projects using copies of
   this, which is rediculous (Richard Hughes)
 - Require I_KNOW_THE_DEVICEKIT_POWER_API_IS_SUBJECT_TO_CHANGE (Richard Hughes)

Bugfixes:
 - Fix up DBus interface for CVE-2008-4311 (Stanislav Brabec)
 - Fix g-p-m and DeviceKit-power when running with a permissive dbus. Fixes fd#20882 (Frederic Crozat)
 - Remove use of EggObjList, and make the library more sane (Richard Hughes)
 - Fix compile error in dkp-power. Fixes #20749 (Richard Hughes)

Version 006
~~~~~~~~~~~
Released: 2009-02-10

Bugfixes:
 - Fix compile failure with gcc-4.4.0 and old versions of glib2 (Richard Hughes)
 - Only enable the wakeups polling if a client requires the data (Richard Hughes)
 - Correctly set the power-supply property (David Zeuthen)
 - Don't crash when we limit the resolution of a small dataset (Richard Hughes)
 - Don't sync to disk every 5 seconds, do it every 10 minutes (Richard Hughes)
 - Fix the QoS interface with the proper signature (Richard Hughes)

Version 005
~~~~~~~~~~~
Released: 2009-02-02

New Features:
 - Add a wakeups interface so we can get data from the system over DBus (Richard Hughes)
 - Allow showing the wakeup data in the devkit-power command line tool (Richard Hughes)

Version 004
~~~~~~~~~~~
Released: 2009-01-23

Bugfixes:
 - Fix the battery capacity calculation. Fixes fd#19165 (Richard Hughes)
 - Special case machines where the kernel does not convert charge to power (Richard Hughes)
 - Check all the power supply fields for valid data (Richard Hughes)

Version 003
~~~~~~~~~~~
Released: 2008-12-09

New Features:
 - Implement the .QoS interface -- still proof of concept (Richard Hughes)

Bugfixes:
 - Enable the low power saving code in DkpHistory (Richard Hughes)
 - Don't keep putting off the profile saving in DkpHistory (Richard Hughes)
 - Allow DeviceKit-power to run with the 'fixed' DBus (Richard Hughes)

Version 002
~~~~~~~~~~~
Released: 2008-11-13

New Features:
 - add in CanSuspend and CanHibernate into API (Richard Hughes)
 - add two new properties, has-history and has-statistics (Richard Hughes)
 - add voltage property of a power device (Richard Hughes)
 - all logging for all the other device types too (Richard Hughes)
 - Move object paths so things are rooted under /org/freedesktop/DeviceKit/Power (David Zeuthen)
 - Add functionality to monitor a Watts Up Pro device (Richard Hughes)
 - Turn some methods into properties (David Zeuthen)

Bugfixes:
 - Also rename configure.in to configure.ac in autogen.sh (David Zeuthen)
 - Fix up deps and build system (David Zeuthen)
 - We're a fd.o project (David Zeuthen)
 - Update my email address (David Zeuthen)
 - Update mailing list reference in man pages (David Zeuthen)
 - Update bug report URL to point to our mailing list (David Zeuthen)
 - Nuke devkit-power-on-battery for now (David Zeuthen)
 - Don't report negative rate when charging (Richard Hughes)
 - Remove the battery- and line-power- prefix from the device properties (Richard Hughes)
 - Add DkpStatsObj convenience helpers (Richard Hughes)
 - Save the time to full and time to empty too (Richard Hughes)
 - Don't clear the list when we print it (Richard Hughes)
 - Support getting stats from DkpSupply devices (Richard Hughes)
 - Poll every 10 seconds to get better stats results (Richard Hughes)
 - Work out the statistics by binning them into percentage sized holes (Richard Hughes)
 - Add two remove functions to the generic object list (Richard Hughes)
 - Don't unconditionally set the energy_full to energy_full_design if larger (Richard Hughes)
 - Add a first approximation of a time resolution limiter (Richard Hughes)
 - Expand the client helper library to cover all the base API for gnome-power-manager (Richard Hughes)
 - Use 0 for unknown, not -1 as some values like rate and voltage are valid when negative (Richard Hughes)
 - Use a better resolution limiting function for getting the history to reduce CPU load (Richard Hughes)
 - Match the WUP device on the tty device, not the USB device (Richard Hughes)
 - Fix the include headers for DeviceKit 002 (Richard Hughes)
 - Document how to access the D-Bus service with examples (David Zeuthen)

Version 001
~~~~~~~~~~~
Released: 2008-09-02

- Initial proof of concept version