Package: release.debian.org Severity: normal User: release.debian....@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 <agpot...@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