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

Reply via email to