Bug#696351: unblock: gnome-settings-daemon/3.4.2+git20121218.7c1322-1
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Hi,
please unblock package gnome-settings-daemon for a handful of upstream
fixes.
Especially the new fix for the numlock bug should be more reliable than
the one we have, according to developers.
gnome-settings-daemon (3.4.2+git20121218.7c1322-1) unstable; urgency=low
* New upstream git snapshot from the 3.4 branch.
+ Fix a pair of crashers.
+ Better fix for the keyboard infinite loop bug.
+ Cleanup in print notifications.
+ Translation updates.
* 11_numlock_loop.patch: dropped accordingly.
unblock gnome-settings-daemon/3.4.2+git20121218.7c1322-1
Thanks,
--
.''`. Josselin Mouette
: :' :
`. `'
`-
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/changelog gnome-settings-daemon-3.4.2+git20121218.7c1322/debian/changelog
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/11_numlock_loop.patch gnome-settings-daemon-3.4.2+git20121218.7c1322/debian/patches/11_numlock_loop.patch
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/11_numlock_loop.patch 2012-10-26 19:04:58.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20121218.7c1322/debian/patches/11_numlock_loop.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,82 +0,0 @@
-commit 82c7fcf7fd4fe43e73ea5ce6408c79d35ec3dfb8
-Author: Andrew Potter <agpotter@gmail.com>
-Date: Wed Oct 24 13:52:09 2012 -0700
-
- keyboard: Prevent potential infinite loop
-
- Ensure we don't set the numlock setting in response to our own
- numlock-setting event.
-
- https://bugzilla.gnome.org/show_bug.cgi?id=679151
-
-diff --git a/plugins/keyboard/gsd-keyboard-manager.c b/plugins/keyboard/gsd-keyboard-manager.c
-index a33460c..1519510 100644
---- a/plugins/keyboard/gsd-keyboard-manager.c
-+++ b/plugins/keyboard/gsd-keyboard-manager.c
-@@ -73,6 +73,7 @@ struct GsdKeyboardManagerPrivate
- gboolean have_xkb;
- gint xkb_event_base;
- GsdNumLockState old_state;
-+ gulong numlock_serial;
- };
-
- static void gsd_keyboard_manager_class_init (GsdKeyboardManagerClass *klass);
-@@ -128,13 +129,15 @@ numlock_NumLock_modifier_mask (void)
- }
-
- static void
--numlock_set_xkb_state (GsdNumLockState new_state)
-+numlock_set_xkb_state (GsdKeyboardManager *manager)
- {
- unsigned int num_mask;
- Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
-+ GsdNumLockState new_state = manager->priv->old_state;
- if (new_state != GSD_NUM_LOCK_STATE_ON && new_state != GSD_NUM_LOCK_STATE_OFF)
- return;
- num_mask = numlock_NumLock_modifier_mask ();
-+ manager->priv->numlock_serial = NextRequest(dpy);
- XkbLockModifiers (dpy, XkbUseCoreKbd, num_mask, new_state == GSD_NUM_LOCK_STATE_ON ? num_mask : 0);
- }
-
-@@ -156,16 +159,18 @@ numlock_xkb_callback (GdkXEvent *xev_,
- if (xkbev->state.changed & XkbModifierLockMask) {
- unsigned num_mask = numlock_NumLock_modifier_mask ();
- unsigned locked_mods = xkbev->state.locked_mods;
-+ unsigned long serial = xkbev->state.serial;
- GsdNumLockState numlock_state;
-
- numlock_state = (num_mask & locked_mods) ? GSD_NUM_LOCK_STATE_ON : GSD_NUM_LOCK_STATE_OFF;
-
-- if (numlock_state != manager->priv->old_state) {
-- g_settings_set_enum (manager->priv->settings,
-- KEY_NUMLOCK_STATE,
-- numlock_state);
-- manager->priv->old_state = numlock_state;
-- }
-+ if (numlock_state != manager->priv->old_state
-+ && serial > manager->priv->numlock_serial) {
-+ g_settings_set_enum (manager->priv->settings,
-+ KEY_NUMLOCK_STATE,
-+ numlock_state);
-+ manager->priv->old_state = numlock_state;
-+ }
- }
-
- return GDK_FILTER_CONTINUE;
-@@ -254,7 +259,7 @@ apply_settings (GSettings *settings,
- manager->priv->old_state = g_settings_get_enum (manager->priv->settings, KEY_NUMLOCK_STATE);
-
- if (manager->priv->have_xkb && rnumlock)
-- numlock_set_xkb_state (manager->priv->old_state);
-+ numlock_set_xkb_state (manager);
-
- XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
- gdk_error_trap_pop_ignored ();
-@@ -359,6 +364,7 @@ static void
- gsd_keyboard_manager_init (GsdKeyboardManager *manager)
- {
- manager->priv = GSD_KEYBOARD_MANAGER_GET_PRIVATE (manager);
-+ manager->priv->numlock_serial = G_MAXULONG;
- }
-
- static void
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/series gnome-settings-daemon-3.4.2+git20121218.7c1322/debian/patches/series
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/series 2012-10-26 19:04:58.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20121218.7c1322/debian/patches/series 2012-12-18 17:53:10.000000000 +0100
@@ -3,7 +3,6 @@
03_print_async.patch
04_superP.patch
10_smaller_syndaemon_timeout.patch
-11_numlock_loop.patch
power-check-null-devices.patch
power-ignore-bad-dbus-requests.patch
revert_git_datetime_dropping.patch
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/housekeeping/gsd-disk-space.c gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/housekeeping/gsd-disk-space.c
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/housekeeping/gsd-disk-space.c 2012-09-29 15:11:23.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/housekeeping/gsd-disk-space.c 2012-12-18 17:46:05.000000000 +0100
@@ -290,7 +290,7 @@
}
static void
-on_notification_closed (NotifyNotification *notification)
+on_notification_closed (NotifyNotification *n)
{
g_object_unref (notification);
notification = NULL;
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/housekeeping/gsd-disk-space-test.c gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/housekeeping/gsd-disk-space-test.c
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/housekeeping/gsd-disk-space-test.c 2012-09-29 15:08:13.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/housekeeping/gsd-disk-space-test.c 2012-12-18 17:46:05.000000000 +0100
@@ -23,6 +23,7 @@
#include "config.h"
#include <gtk/gtk.h>
+#include <libnotify/notify.h>
#include "gsd-disk-space.h"
int
@@ -32,6 +33,7 @@
GMainLoop *loop;
gtk_init (&argc, &argv);
+ notify_init ("gsd-disk-space-test");
loop = g_main_loop_new (NULL, FALSE);
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/keyboard/gsd-keyboard-manager.c gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/keyboard/gsd-keyboard-manager.c
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/keyboard/gsd-keyboard-manager.c 2012-09-29 15:11:23.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/keyboard/gsd-keyboard-manager.c 2012-12-18 17:46:05.000000000 +0100
@@ -209,6 +209,9 @@
GsdBellMode bell_mode;
gboolean rnumlock;
+ if (g_strcmp0 (key, KEY_NUMLOCK_STATE) == 0)
+ return;
+
repeat = g_settings_get_boolean (settings, KEY_REPEAT);
click = g_settings_get_boolean (settings, KEY_CLICK);
interval = _gsd_settings_get_uint (settings, KEY_INTERVAL);
@@ -220,8 +223,6 @@
bell_mode = g_settings_get_enum (settings, KEY_BELL_MODE);
bell_volume = (bell_mode == GSD_BELL_MODE_ON) ? 50 : 0;
- rnumlock = g_settings_get_boolean (settings, "remember-numlock-state");
-
gdk_error_trap_push ();
if (repeat) {
gboolean rate_set = FALSE;
@@ -251,10 +252,14 @@
KBKeyClickPercent | KBBellPercent | KBBellPitch | KBBellDuration,
&kbdcontrol);
- manager->priv->old_state = g_settings_get_enum (manager->priv->settings, KEY_NUMLOCK_STATE);
+ if (g_strcmp0 (key, "remember-numlock-state") == 0 || key == NULL) {
+ rnumlock = g_settings_get_boolean (settings, "remember-numlock-state");
+
+ manager->priv->old_state = g_settings_get_enum (manager->priv->settings, KEY_NUMLOCK_STATE);
- if (manager->priv->have_xkb && rnumlock)
- numlock_set_xkb_state (manager->priv->old_state);
+ if (manager->priv->have_xkb && rnumlock)
+ numlock_set_xkb_state (manager->priv->old_state);
+ }
XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
gdk_error_trap_pop_ignored ();
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/power/gsd-power-manager.c gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/power/gsd-power-manager.c
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/power/gsd-power-manager.c 2012-09-29 15:11:23.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/power/gsd-power-manager.c 2012-12-18 17:46:05.000000000 +0100
@@ -2348,7 +2348,7 @@
if (!ret) {
g_warning ("failed to turn the panel off after lid close: %s",
error->message);
- g_error_free (error);
+ g_clear_error (&error);
}
/* only toggle keyboard if present and not already toggled */
@@ -3011,7 +3011,7 @@
if (!ret) {
g_warning ("failed to turn the panel off: %s",
error->message);
- g_error_free (error);
+ g_clear_error (&error);
}
/* only toggle keyboard if present and not already toggled */
@@ -3059,7 +3059,7 @@
g_warning ("failed to restore backlight to %i: %s",
manager->priv->pre_dim_brightness,
error->message);
- g_error_free (error);
+ g_clear_error (&error);
} else {
manager->priv->pre_dim_brightness = -1;
}
@@ -3072,7 +3072,7 @@
if (!ret) {
g_warning ("failed to turn the kbd backlight on: %s",
error->message);
- g_error_free (error);
+ g_clear_error (&error);
}
}
@@ -3672,6 +3672,11 @@
g_debug ("Starting power manager");
gnome_settings_profile_start (NULL);
+ /* coldplug the list of screens */
+ manager->priv->x11_screen = gnome_rr_screen_new (gdk_screen_get_default (), error);
+ if (manager->priv->x11_screen == NULL)
+ return FALSE;
+
/* track the active session */
manager->priv->session = gnome_settings_session_new ();
g_signal_connect (manager->priv->session, "notify::state",
@@ -3799,11 +3804,6 @@
g_signal_connect (manager->priv->idletime, "alarm-expired",
G_CALLBACK (idle_idletime_alarm_expired_cb), manager);
- /* coldplug the list of screens */
- manager->priv->x11_screen = gnome_rr_screen_new (gdk_screen_get_default (), error);
- if (manager->priv->x11_screen == NULL)
- return FALSE;
-
/* ensure the default dpms timeouts are cleared */
ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
GNOME_RR_DPMS_ON,
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/print-notifications/gsd-print-notifications-manager.c gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/print-notifications/gsd-print-notifications-manager.c
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/print-notifications/gsd-print-notifications-manager.c 2012-09-29 15:11:23.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/print-notifications/gsd-print-notifications-manager.c 2012-12-18 17:46:05.000000000 +0100
@@ -250,6 +250,20 @@
return FALSE;
}
+static gboolean
+reason_is_blacklisted (const gchar *reason) {
+ if (g_str_equal (reason, "none"))
+ return TRUE;
+ if (g_str_equal (reason, "other"))
+ return TRUE;
+ if (g_str_equal (reason, "com.apple.print.recoverable"))
+ return TRUE;
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=883401 */
+ if (g_str_has_prefix (reason, "cups-remote-"))
+ return TRUE;
+ return FALSE;
+}
+
static void
on_cups_notification (GDBusConnection *connection,
const char *sender_name,
@@ -671,7 +685,8 @@
}
}
- if (!known_reason && !g_str_equal (data, "none")) {
+ if (!known_reason &&
+ !reason_is_blacklisted (data)) {
NotifyNotification *notification;
ReasonData *reason_data;
gchar *first_row;
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/sound/gsd-sound-manager.c gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/sound/gsd-sound-manager.c
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/plugins/sound/gsd-sound-manager.c 2012-09-29 15:08:13.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20121218.7c1322/plugins/sound/gsd-sound-manager.c 2012-12-18 17:46:05.000000000 +0100
@@ -34,10 +34,7 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
-
-#ifdef HAVE_PULSE
#include <pulse/pulseaudio.h>
-#endif
#include "gsd-sound-manager.h"
#include "gnome-settings-profile.h"
@@ -59,8 +56,6 @@
static gpointer manager_object = NULL;
-#ifdef HAVE_PULSE
-
static void
sample_info_cb (pa_context *c, const pa_sample_info *i, int eol, void *userdata)
{
@@ -256,23 +251,16 @@
return succ;
}
-#endif
-
gboolean
gsd_sound_manager_start (GsdSoundManager *manager,
GError **error)
{
-
-#ifdef HAVE_PULSE
char *p, **ps, **k;
const char *env, *dd;
-#endif
g_debug ("Starting sound manager");
gnome_settings_profile_start (NULL);
-#ifdef HAVE_PULSE
-
/* We listen for change of the selected theme ... */
register_config_callback (manager);
@@ -301,7 +289,6 @@
register_directory_callback (manager, *k, NULL);
g_strfreev (ps);
-#endif
gnome_settings_profile_end (NULL);
@@ -313,7 +300,6 @@
{
g_debug ("Stopping sound manager");
-#ifdef HAVE_PULSE
if (manager->priv->settings != NULL) {
g_object_unref (manager->priv->settings);
manager->priv->settings = NULL;
@@ -329,7 +315,6 @@
g_object_unref (manager->priv->monitors->data);
manager->priv->monitors = g_list_delete_link (manager->priv->monitors, manager->priv->monitors);
}
-#endif
}
static GObject *
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/po/kn.po gnome-settings-daemon-3.4.2+git20121218.7c1322/po/kn.po
Reply to: