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
This commit is contained in:
Pacho Ramos
2017-06-18 11:30:37 +02:00
parent f12f784d0d
commit 32b0ec2c6a
3 changed files with 165 additions and 0 deletions
@@ -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
@@ -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
+95
View File
@@ -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
}