mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-11-08 18:27:07 -08:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user