[gnome-power-manager/f14/master] Assorted backlight fixes

Matthias Clasen mclasen at fedoraproject.org
Mon Aug 23 18:49:44 UTC 2010


commit 12c4d5160184b531f9c56084719107166247687c
Author: Matthias Clasen <mclasen at redhat.com>
Date:   Mon Aug 23 14:48:44 2010 -0400

    Assorted backlight fixes

 ...Don-t-crash-on-systems-which-don-t-have-X.patch |   27 ++++++++++++++
 gnome-power-manager-2.31.6-backlight-is-None.patch |   13 +++++++
 ...ger-2.31.90-fix-step-for-legacy-backlight.patch |   38 ++++++++++++++++++++
 gnome-power-manager.spec                           |   15 +++++++-
 4 files changed, 92 insertions(+), 1 deletions(-)
---
diff --git a/0001-Fix-627711-Don-t-crash-on-systems-which-don-t-have-X.patch b/0001-Fix-627711-Don-t-crash-on-systems-which-don-t-have-X.patch
new file mode 100644
index 0000000..e08c0b5
--- /dev/null
+++ b/0001-Fix-627711-Don-t-crash-on-systems-which-don-t-have-X.patch
@@ -0,0 +1,27 @@
+From 6efb4351cbaacedab824564e12163dd733ae40fb Mon Sep 17 00:00:00 2001
+From: Chris Coulson <chris.coulson at canonical.com>
+Date: Mon, 23 Aug 2010 12:05:59 +0100
+Subject: [PATCH] Fix #627711 - Don't crash on systems which don't have XBACKLIGHT
+
+---
+ src/gpm-brightness.c |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/src/gpm-brightness.c b/src/gpm-brightness.c
+index 5453124..bff3411 100644
+--- a/src/gpm-brightness.c
++++ b/src/gpm-brightness.c
+@@ -518,6 +518,10 @@ gpm_brightness_foreach_screen (GpmBrightness *brightness, GpmXRandROp op)
+ 
+ 	g_return_val_if_fail (GPM_IS_BRIGHTNESS (brightness), FALSE);
+ 
++	/* Return immediately if we can't use XRandR */
++	if (!brightness->priv->has_extension)
++		return FALSE;
++
+ 	/* do for each screen */
+ 	length = brightness->priv->resources->len;
+ 	for (i=0; i<length; i++) {
+-- 
+1.7.1
+
diff --git a/gnome-power-manager-2.31.6-backlight-is-None.patch b/gnome-power-manager-2.31.6-backlight-is-None.patch
new file mode 100644
index 0000000..a4427bf
--- /dev/null
+++ b/gnome-power-manager-2.31.6-backlight-is-None.patch
@@ -0,0 +1,13 @@
+diff -up gnome-power-manager-2.31.6/src/gpm-brightness.c.backlight-is-None gnome-power-manager-2.31.6/src/gpm-brightness.c
+--- gnome-power-manager-2.31.6/src/gpm-brightness.c.backlight-is-None	2010-08-15 19:57:12.636000106 -0400
++++ gnome-power-manager-2.31.6/src/gpm-brightness.c	2010-08-15 19:57:20.948000051 -0400
+@@ -176,6 +176,9 @@ gpm_brightness_output_get_internal (GpmB
+ 
+ 	g_return_val_if_fail (GPM_IS_BRIGHTNESS (brightness), FALSE);
+ 
++	if (brightness->priv->backlight == None)
++		return FALSE;
++
+ 	if (XRRGetOutputProperty (brightness->priv->dpy, output, brightness->priv->backlight,
+ 				  0, 4, False, False, None,
+ 				  &actual_type, &actual_format,
diff --git a/gnome-power-manager-2.31.90-fix-step-for-legacy-backlight.patch b/gnome-power-manager-2.31.90-fix-step-for-legacy-backlight.patch
new file mode 100644
index 0000000..cad183c
--- /dev/null
+++ b/gnome-power-manager-2.31.90-fix-step-for-legacy-backlight.patch
@@ -0,0 +1,38 @@
+diff -up gnome-power-manager-2.31.90/src/gpm-brightness.c.fix-step-for-legacy-backlight gnome-power-manager-2.31.90/src/gpm-brightness.c
+--- gnome-power-manager-2.31.90/src/gpm-brightness.c.fix-step-for-legacy-backlight	2010-08-23 12:30:47.150042001 -0400
++++ gnome-power-manager-2.31.90/src/gpm-brightness.c	2010-08-23 12:32:04.816041208 -0400
+@@ -695,8 +695,13 @@ gpm_brightness_up (GpmBrightness *bright
+ 		if (brightness->priv->extension_levels < 0)
+ 			brightness->priv->extension_levels = gpm_brightness_helper_get_value ("get-max-brightness");
+ 		brightness->priv->extension_current = gpm_brightness_helper_get_value ("get-brightness");
+-		if (brightness->priv->extension_current < brightness->priv->extension_levels)
+-			ret = gpm_brightness_helper_set_value ("set-brightness", ++brightness->priv->extension_current);
++		if (brightness->priv->extension_current < brightness->priv->extension_levels) {
++			guint step = gpm_brightness_get_step(brightness->priv->extension_levels);
++			brightness->priv->extension_current += step;
++			if (brightness->priv->extension_current > brightness->priv->extension_levels)
++				brightness->priv->extension_current = brightness->priv->extension_levels;
++			ret = gpm_brightness_helper_set_value ("set-brightness", brightness->priv->extension_current);
++		}
+ 		if (hw_changed != NULL)
+ 			*hw_changed = ret;
+ 		brightness->priv->cache_trusted = FALSE;
+@@ -735,9 +740,16 @@ gpm_brightness_down (GpmBrightness *brig
+ 
+ 	/* legacy fallback */
+ 	if (!ret) {
++		if (brightness->priv->extension_levels < 0)
++			brightness->priv->extension_levels = gpm_brightness_helper_get_value ("get-max-brightness");
+ 		brightness->priv->extension_current = gpm_brightness_helper_get_value ("get-brightness");
+-		if (brightness->priv->extension_current > 0)
+-			ret = gpm_brightness_helper_set_value ("set-brightness", --brightness->priv->extension_current);
++		if (brightness->priv->extension_current > 0) {
++			guint step = gpm_brightness_get_step(brightness->priv->extension_levels);
++			brightness->priv->extension_current -= step;
++			if (brightness->priv->extension_current < 0)
++				brightness->priv->extension_current = 0;
++			ret = gpm_brightness_helper_set_value ("set-brightness", brightness->priv->extension_current);
++		}
+ 		if (hw_changed != NULL)
+ 			*hw_changed = ret;
+ 		brightness->priv->cache_trusted = FALSE;
diff --git a/gnome-power-manager.spec b/gnome-power-manager.spec
index b2ed683..269d801 100644
--- a/gnome-power-manager.spec
+++ b/gnome-power-manager.spec
@@ -1,7 +1,7 @@
 Summary: GNOME power management service
 Name: gnome-power-manager
 Version: 2.31.90
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv2+ and GFDL
 Group: Applications/System
 Source: http://download.gnome.org/sources/gnome-power-manager/2.31/gnome-power-manager-%{version}.tar.bz2
@@ -36,12 +36,22 @@ Requires(postun): scrollkeeper
 Obsoletes: gnome-power-manager-extra <= 2.30.1
 Provides: gnome-power-manager-extra
 
+# fixes from https://bugzilla.gnome.org/show_bug.cgi?id=627711
+Patch0: 0001-Fix-627711-Don-t-crash-on-systems-which-don-t-have-X.patch
+Patch1: gnome-power-manager-2.31.6-backlight-is-None.patch
+# https://bugzilla.redhat.com/show_bug.cgi?id=626512
+Patch2: gnome-power-manager-2.31.90-fix-step-for-legacy-backlight.patch
+
+
 %description
 GNOME Power Manager uses the information and facilities provided by UPower
 displaying icons and handling user callbacks in an interactive GNOME session.
 
 %prep
 %setup -q
+%patch0 -p1 -b .no-xrandr
+%patch1 -p1 -b .backlight-none
+%patch2 -p1 -b .backlight-step
 
 %build
 %configure --disable-scrollkeeper \
@@ -141,6 +151,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
 %{_sysconfdir}/xdg/autostart/*.desktop
 
 %changelog
+* Mon Aug 23 2010 Matthias Clasen <mclasen at redhat.com> 2.31.90-2
+- Assorted backlight fixes
+
 * Thu Aug 19 2010 Matthias Clasen <mclasen at redhat.com> 2.31.90-1
 - Update to 2.31.90
 


More information about the scm-commits mailing list