summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2017-06-18 11:28:45 +0200
committerPacho Ramos <pacho@gentoo.org>2017-06-18 11:30:37 +0200
commit32b0ec2c6ae435577dfcd98fdc3ac27f6c8d0eaa (patch)
tree9b597102a0d0a6a8b556125302ce4e0d8344331c /sys-power/upower
parentapp-editors/focuswriter: version bump 1.6.5 (diff)
downloadgentoo-32b0ec2c6ae435577dfcd98fdc3ac27f6c8d0eaa.tar.gz
gentoo-32b0ec2c6ae435577dfcd98fdc3ac27f6c8d0eaa.tar.bz2
gentoo-32b0ec2c6ae435577dfcd98fdc3ac27f6c8d0eaa.zip
sys-power/upower: Fix critical battery action being ignored (#618038 by Alex Guzman), not rely on /proc/timer_stats (#621090 by Maxim Britov).
Package-Manager: Portage-2.3.6, Repoman-2.3.2
Diffstat (limited to 'sys-power/upower')
-rw-r--r--sys-power/upower/files/upower-0.99.4-copy-paste.patch28
-rw-r--r--sys-power/upower/files/upower-0.99.4-timer-stats.patch42
-rw-r--r--sys-power/upower/upower-0.99.4-r1.ebuild95
3 files changed, 165 insertions, 0 deletions
diff --git a/sys-power/upower/files/upower-0.99.4-copy-paste.patch b/sys-power/upower/files/upower-0.99.4-copy-paste.patch
new file mode 100644
index 000000000000..6afe9b7a9831
--- /dev/null
+++ b/sys-power/upower/files/upower-0.99.4-copy-paste.patch
@@ -0,0 +1,28 @@
+From 28cee8e2845b094488c337c4ecfa84ada0b6be60 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt@ubuntu.com>
+Date: Tue, 23 Feb 2016 09:51:07 +0100
+Subject: daemon: fix get_critical_action()
+
+Fix copy&paste error from e7e9156f that called the wrong _complete_ function
+for up_daemon_get_critical_action().
+
+https://bugs.freedesktop.org/show_bug.cgi?id=94262
+
+diff --git a/src/up-daemon.c b/src/up-daemon.c
+index be14cbe..e95f904 100644
+--- a/src/up-daemon.c
++++ b/src/up-daemon.c
+@@ -435,8 +435,8 @@ up_daemon_get_critical_action (UpExportedDaemon *skeleton,
+ GDBusMethodInvocation *invocation,
+ UpDaemon *daemon)
+ {
+- up_exported_daemon_complete_get_display_device (skeleton, invocation,
+- up_backend_get_critical_action (daemon->priv->backend));
++ up_exported_daemon_complete_get_critical_action (skeleton, invocation,
++ up_backend_get_critical_action (daemon->priv->backend));
+ return TRUE;
+ }
+
+--
+cgit v0.10.2
+
diff --git a/sys-power/upower/files/upower-0.99.4-timer-stats.patch b/sys-power/upower/files/upower-0.99.4-timer-stats.patch
new file mode 100644
index 000000000000..2ac44205459d
--- /dev/null
+++ b/sys-power/upower/files/upower-0.99.4-timer-stats.patch
@@ -0,0 +1,42 @@
+From 798588a480eaae50368bed75fc78f8314523b2a3 Mon Sep 17 00:00:00 2001
+From: Richard Hughes <richard@hughsie.com>
+Date: Sun, 23 Apr 2017 20:22:02 +0100
+Subject: Do not spin in a loop when /proc/timer_stats cannot be written
+
+Only set up the polling once the write has succeeded.
+
+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=100626
+
+diff --git a/src/up-wakeups.c b/src/up-wakeups.c
+index 1bc3c7b..99433dd 100644
+--- a/src/up-wakeups.c
++++ b/src/up-wakeups.c
+@@ -626,6 +626,13 @@ up_wakeups_timerstats_enable (UpWakeups *wakeups)
+
+ g_debug ("enabling timer stats");
+
++ /* enable timer stats */
++ file = fopen (UP_WAKEUPS_SOURCE_USERSPACE, "w");
++ if (file == NULL)
++ return FALSE;
++ fprintf (file, "1\n");
++ fclose (file);
++
+ /* setup polls */
+ wakeups->priv->poll_kernel_id =
+ g_timeout_add_seconds (UP_WAKEUPS_POLL_INTERVAL_KERNEL,
+@@ -637,11 +644,6 @@ up_wakeups_timerstats_enable (UpWakeups *wakeups)
+ (GSourceFunc) up_wakeups_poll_userspace_cb, wakeups);
+ g_source_set_name_by_id (wakeups->priv->poll_userspace_id, "[upower] up_wakeups_poll_userspace_cb");
+
+- file = fopen (UP_WAKEUPS_SOURCE_USERSPACE, "w");
+- if (file == NULL)
+- return FALSE;
+- fprintf (file, "1\n");
+- fclose (file);
+ wakeups->priv->polling_enabled = TRUE;
+ return TRUE;
+ }
+--
+cgit v0.10.2
+
diff --git a/sys-power/upower/upower-0.99.4-r1.ebuild b/sys-power/upower/upower-0.99.4-r1.ebuild
new file mode 100644
index 000000000000..3d9123df0d9e
--- /dev/null
+++ b/sys-power/upower/upower-0.99.4-r1.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit ltprune systemd
+
+DESCRIPTION="D-Bus abstraction for enumerating power devices, querying history and statistics"
+HOMEPAGE="https://upower.freedesktop.org/"
+SRC_URI="https://${PN}.freedesktop.org/releases/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/3" # based on SONAME of libupower-glib.so
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+
+# gtk-doc files are not available as prebuilt in the tarball
+IUSE="doc +introspection ios kernel_FreeBSD kernel_linux selinux"
+
+COMMON_DEPS="
+ >=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.34:2
+ sys-apps/dbus:=
+ introspection? ( dev-libs/gobject-introspection:= )
+ kernel_linux? (
+ virtual/libusb:1
+ virtual/libgudev:=
+ virtual/udev
+ ios? (
+ >=app-pda/libimobiledevice-1:=
+ >=app-pda/libplist-1:=
+ )
+ )
+"
+RDEPEND="
+ ${COMMON_DEPS}
+ selinux? ( sec-policy/selinux-devicekit )
+"
+DEPEND="${COMMON_DEPS}
+ doc? ( dev-util/gtk-doc )
+ dev-libs/libxslt
+ app-text/docbook-xsl-stylesheets
+ dev-util/intltool
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+"
+
+QA_MULTILIB_PATHS="usr/lib/${PN}/.*"
+
+DOCS="AUTHORS HACKING NEWS README"
+
+PATCHES=(
+ # Fix calling the wrong _complete_ function for up_daemon_get_critical_action()
+ # (from 'master')
+ "${FILESDIR}"/${P}-copy-paste.patch
+
+ # Do not spin in a loop when /proc/timer_stats cannot be written
+ # (from 'master')
+ "${FILESDIR}"/${P}-timer-stats.patch
+)
+
+src_prepare() {
+ default
+ sed -i -e '/DISABLE_DEPRECATED/d' configure || die
+}
+
+src_configure() {
+ local backend myconf
+
+ if use kernel_linux; then
+ backend=linux
+ elif use kernel_FreeBSD; then
+ backend=freebsd
+ else
+ backend=dummy
+ fi
+
+ econf \
+ $(use_enable doc gtk-doc) \
+ --libexecdir="${EPREFIX}"/usr/lib/${PN} \
+ --localstatedir="${EPREFIX}"/var \
+ $(use_enable introspection) \
+ --disable-static \
+ ${myconf} \
+ --enable-man-pages \
+ --disable-tests \
+ --with-backend=${backend} \
+ $(use_with ios idevice) \
+ --with-systemdutildir="$(systemd_get_utildir)" \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+}
+
+src_install() {
+ default
+ keepdir /var/lib/upower #383091
+ prune_libtool_files
+}