--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Hi,
please unblock gnome-settings-daemon for the fix to two infamous bugs:
- crash upon startup when CUPS doesn’t answer,
- infinite loop with NumLock switching.
It should also startup faster.
gnome-settings-daemon (3.4.2+git20120925.a4c817-2) unstable; urgency=low
* Pull upstream fixes for the print-notifications plugin:
+ 01_print_proxy.patch: don’t create an unused GDBusProxy.
+ 02_print_init.patch: delay CUPS initialization.
+ 03_print_async.patch: test asynchronously whether the CUPS server
actually works. Closes: #687978.
* 11_numlock_loop.patch: patch from Andrew Potter to fix infinite loop
triggered by switching the numlock status.
* gnome-settings-daemon.gsettings-override: dropped, NumLock saving is
back to work now.
unblock gnome-settings-daemon/3.4.2+git20120925.a4c817-2
Thanks,
--
.''`. Josselin Mouette
: :' :
`. `'
`-
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/changelog gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/changelog
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/changelog 2012-09-29 13:13:39.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/changelog 2012-10-26 19:04:58.000000000 +0200
@@ -1,3 +1,17 @@
+gnome-settings-daemon (3.4.2+git20120925.a4c817-2) unstable; urgency=low
+
+ * Pull upstream fixes for the print-notifications plugin:
+ + 01_print_proxy.patch: don’t create an unused GDBusProxy.
+ + 02_print_init.patch: delay CUPS initialization.
+ + 03_print_async.patch: test asynchronously whether the CUPS server
+ actually works. Closes: #687978.
+ * 11_numlock_loop.patch: patch from Andrew Potter to fix infinite loop
+ triggered by switching the numlock status.
+ * gnome-settings-daemon.gsettings-override: dropped, NumLock saving is
+ back to work now.
+
+ -- Josselin Mouette <joss@debian.org> Fri, 26 Oct 2012 19:04:37 +0200
+
gnome-settings-daemon (3.4.2+git20120925.a4c817-1) unstable; urgency=low
* debian/g-s-d.gsettings-override: disable remember-numlock-state,
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/gnome-settings-daemon.gsettings-override gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/gnome-settings-daemon.gsettings-override
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/gnome-settings-daemon.gsettings-override 2012-09-29 12:14:58.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/gnome-settings-daemon.gsettings-override 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-[org.gnome.settings-daemon.peripherals.keyboard]
-remember-numlock-state=false
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/01_print_proxy.patch gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/01_print_proxy.patch
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/01_print_proxy.patch 1970-01-01 01:00:00.000000000 +0100
+++ gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/01_print_proxy.patch 2012-10-26 18:51:44.000000000 +0200
@@ -0,0 +1,87 @@
+From 4dd2bc1f5ba76663710285d4d9c17172682af56e Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Sat, 21 Apr 2012 23:26:05 +0000
+Subject: print-notifications: Don't create an unused proxy object
+
+The proxy object was not used for anything, and it was creating
+synchronously.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=674550
+---
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index bb9c7b9..44fbbbe 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -54,7 +54,6 @@
+
+ struct GsdPrintNotificationsManagerPrivate
+ {
+- GDBusProxy *cups_proxy;
+ GDBusConnection *cups_bus_connection;
+ gint subscription_id;
+ cups_dest_t *dests;
+@@ -909,8 +908,6 @@ gboolean
+ gsd_print_notifications_manager_start (GsdPrintNotificationsManager *manager,
+ GError **error)
+ {
+- GError *lerror;
+-
+ g_debug ("Starting print-notifications manager");
+
+ gnome_settings_profile_start (NULL);
+@@ -925,25 +922,12 @@ gsd_print_notifications_manager_start (GsdPrintNotificationsManager *manager,
+
+ renew_subscription (manager);
+ g_timeout_add_seconds (RENEW_INTERVAL, renew_subscription, manager);
++ gnome_settings_profile_msg ("renewed subscriptions");
+
+ manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
++ gnome_settings_profile_msg ("got dests");
+
+- lerror = NULL;
+- manager->priv->cups_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
+- 0,
+- NULL,
+- CUPS_DBUS_NAME,
+- CUPS_DBUS_PATH,
+- CUPS_DBUS_INTERFACE,
+- NULL,
+- &lerror);
+-
+- if (lerror != NULL) {
+- g_propagate_error (error, lerror);
+- return FALSE;
+- }
+-
+- manager->priv->cups_bus_connection = g_dbus_proxy_get_connection (manager->priv->cups_proxy);
++ manager->priv->cups_bus_connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+
+ g_dbus_connection_signal_subscribe (manager->priv->cups_bus_connection,
+ NULL,
+@@ -981,12 +965,7 @@ gsd_print_notifications_manager_stop (GsdPrintNotificationsManager *manager)
+
+ g_hash_table_destroy (manager->priv->printing_printers);
+
+- manager->priv->cups_bus_connection = NULL;
+-
+- if (manager->priv->cups_proxy != NULL) {
+- g_object_unref (manager->priv->cups_proxy);
+- manager->priv->cups_proxy = NULL;
+- }
++ g_clear_object (&manager->priv->cups_bus_connection);
+
+ for (tmp = manager->priv->timeouts; tmp; tmp = g_list_next (tmp)) {
+ data = (TimeoutData *) tmp->data;
+@@ -1058,10 +1037,6 @@ gsd_print_notifications_manager_finalize (GObject *object)
+
+ g_return_if_fail (manager->priv != NULL);
+
+- if (manager->priv->cups_proxy != NULL) {
+- g_object_unref (manager->priv->cups_proxy);
+- }
+-
+ G_OBJECT_CLASS (gsd_print_notifications_manager_parent_class)->finalize (object);
+ }
+
+--
+cgit v0.9.0.2
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/02_print_init.patch gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/02_print_init.patch
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/02_print_init.patch 1970-01-01 01:00:00.000000000 +0100
+++ gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/02_print_init.patch 2012-10-26 18:51:44.000000000 +0200
@@ -0,0 +1,89 @@
+From 5f1df8fc7767b9d5967bbbe988346f22995a6285 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Mon, 23 Apr 2012 15:14:28 +0000
+Subject: printers: Move expensive initialization to an idle
+
+The start() function is running before gsd finishes its
+session registration, so everything we do here is in the
+critical path for session startup. Both cupsGetDests and
+the subscription registration are potentially expensive,
+and can very well be done later.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=674551
+---
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 44fbbbe..33e6452 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -904,25 +904,17 @@ renew_subscription (gpointer data)
+ return TRUE;
+ }
+
+-gboolean
+-gsd_print_notifications_manager_start (GsdPrintNotificationsManager *manager,
+- GError **error)
++static gboolean
++gsd_print_notifications_manager_start_idle (gpointer data)
+ {
+- g_debug ("Starting print-notifications manager");
++ GsdPrintNotificationsManager *manager = data;
+
+ gnome_settings_profile_start (NULL);
+
+- manager->priv->subscription_id = -1;
+- manager->priv->dests = NULL;
+- manager->priv->num_dests = 0;
+- manager->priv->scp_handler_spawned = FALSE;
+- manager->priv->timeouts = NULL;
+ manager->priv->printing_printers = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+- manager->priv->active_notifications = NULL;
+
+ renew_subscription (manager);
+ g_timeout_add_seconds (RENEW_INTERVAL, renew_subscription, manager);
+- gnome_settings_profile_msg ("renewed subscriptions");
+
+ manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+ gnome_settings_profile_msg ("got dests");
+@@ -944,6 +936,30 @@ gsd_print_notifications_manager_start (GsdPrintNotificationsManager *manager,
+
+ gnome_settings_profile_end (NULL);
+
++ return G_SOURCE_REMOVE;
++}
++
++gboolean
++gsd_print_notifications_manager_start (GsdPrintNotificationsManager *manager,
++ GError **error)
++{
++ g_debug ("Starting print-notifications manager");
++
++ gnome_settings_profile_start (NULL);
++
++ manager->priv->subscription_id = -1;
++ manager->priv->dests = NULL;
++ manager->priv->num_dests = 0;
++ manager->priv->scp_handler_spawned = FALSE;
++ manager->priv->timeouts = NULL;
++ manager->priv->printing_printers = NULL;
++ manager->priv->active_notifications = NULL;
++ manager->priv->cups_bus_connection = NULL;
++
++ g_idle_add (gsd_print_notifications_manager_start_idle, manager);
++
++ gnome_settings_profile_end (NULL);
++
+ return TRUE;
+ }
+
+@@ -963,7 +979,8 @@ gsd_print_notifications_manager_stop (GsdPrintNotificationsManager *manager)
+ if (manager->priv->subscription_id >= 0)
+ cancel_subscription (manager->priv->subscription_id);
+
+- g_hash_table_destroy (manager->priv->printing_printers);
++ if (manager->priv->printing_printers)
++ g_hash_table_destroy (manager->priv->printing_printers);
+
+ g_clear_object (&manager->priv->cups_bus_connection);
+
+--
+cgit v0.9.0.2
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/03_print_async.patch gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/03_print_async.patch
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/03_print_async.patch 1970-01-01 01:00:00.000000000 +0100
+++ gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/03_print_async.patch 2012-10-26 18:51:44.000000000 +0200
@@ -0,0 +1,209 @@
+From f2da010bb2423ff8d797306d7b0bdcd6f33c93f8 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik@redhat.com>
+Date: Tue, 26 Jun 2012 12:04:29 +0000
+Subject: print-notifications: Perform async connection tests to CUPS during start
+
+Perform asynchronous connection tests before getting destinations
+from CUPS server and before creating a subscription for CUPS
+messages (#677081).
+---
+diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c b/plugins/print-notifications/gsd-print-notifications-manager.c
+index 33e6452..0092865 100644
+--- a/plugins/print-notifications/gsd-print-notifications-manager.c
++++ b/plugins/print-notifications/gsd-print-notifications-manager.c
+@@ -47,10 +47,11 @@
+ #define CUPS_DBUS_PATH "/org/cups/cupsd/Notifier"
+ #define CUPS_DBUS_INTERFACE "org.cups.cupsd.Notifier"
+
+-#define RENEW_INTERVAL 3500
+-#define SUBSCRIPTION_DURATION 3600
+-#define CONNECTING_TIMEOUT 60
+-#define REASON_TIMEOUT 15000
++#define RENEW_INTERVAL 3500
++#define SUBSCRIPTION_DURATION 3600
++#define CONNECTING_TIMEOUT 60
++#define REASON_TIMEOUT 15000
++#define CUPS_CONNECTION_TEST_INTERVAL 300
+
+ struct GsdPrintNotificationsManagerPrivate
+ {
+@@ -63,6 +64,7 @@ struct GsdPrintNotificationsManagerPrivate
+ GList *timeouts;
+ GHashTable *printing_printers;
+ GList *active_notifications;
++ guint cups_connection_timeout_id;
+ };
+
+ enum {
+@@ -72,6 +74,7 @@ enum {
+ static void gsd_print_notifications_manager_class_init (GsdPrintNotificationsManagerClass *klass);
+ static void gsd_print_notifications_manager_init (GsdPrintNotificationsManager *print_notifications_manager);
+ static void gsd_print_notifications_manager_finalize (GObject *object);
++static gboolean cups_connection_test (gpointer user_data);
+
+ G_DEFINE_TYPE (GsdPrintNotificationsManager, gsd_print_notifications_manager, G_TYPE_OBJECT)
+
+@@ -904,6 +907,140 @@ renew_subscription (gpointer data)
+ return TRUE;
+ }
+
++static void
++renew_subscription_with_connection_test_cb (GObject *source_object,
++ GAsyncResult *res,
++ gpointer user_data)
++{
++ GSocketConnection *connection;
++ GError *error = NULL;
++
++ connection = g_socket_client_connect_to_host_finish (G_SOCKET_CLIENT (source_object),
++ res,
++ &error);
++
++ if (connection) {
++ g_debug ("Test connection to CUPS server \'%s:%d\' succeeded.", cupsServer (), ippPort ());
++
++ g_io_stream_close (G_IO_STREAM (connection), NULL, NULL);
++ g_object_unref (connection);
++
++ renew_subscription (user_data);
++ }
++ else {
++ g_debug ("Test connection to CUPS server \'%s:%d\' failed.", cupsServer (), ippPort ());
++ }
++}
++
++static gboolean
++renew_subscription_with_connection_test (gpointer user_data)
++{
++ GSocketClient *client;
++ gchar *address;
++
++ address = g_strdup_printf ("%s:%d", cupsServer (), ippPort ());
++
++ if (address && address[0] != '/') {
++ client = g_socket_client_new ();
++
++ g_debug ("Initiating test connection to CUPS server \'%s:%d\'.", cupsServer (), ippPort ());
++
++ g_socket_client_connect_to_host_async (client,
++ address,
++ 631,
++ NULL,
++ renew_subscription_with_connection_test_cb,
++ user_data);
++
++ g_object_unref (client);
++ }
++ else {
++ renew_subscription (user_data);
++ }
++
++ g_free (address);
++
++ return TRUE;
++}
++
++static void
++cups_connection_test_cb (GObject *source_object,
++ GAsyncResult *res,
++ gpointer user_data)
++{
++ GsdPrintNotificationsManager *manager = (GsdPrintNotificationsManager *) user_data;
++ GSocketConnection *connection;
++ GError *error = NULL;
++
++ connection = g_socket_client_connect_to_host_finish (G_SOCKET_CLIENT (source_object),
++ res,
++ &error);
++
++ if (connection) {
++ g_debug ("Test connection to CUPS server \'%s:%d\' succeeded.", cupsServer (), ippPort ());
++
++ g_io_stream_close (G_IO_STREAM (connection), NULL, NULL);
++ g_object_unref (connection);
++
++ manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
++ gnome_settings_profile_msg ("got dests");
++
++ renew_subscription (user_data);
++ g_timeout_add_seconds (RENEW_INTERVAL, renew_subscription_with_connection_test, manager);
++ }
++ else {
++ g_debug ("Test connection to CUPS server \'%s:%d\' failed.", cupsServer (), ippPort ());
++ if (manager->priv->cups_connection_timeout_id == 0)
++ manager->priv->cups_connection_timeout_id =
++ g_timeout_add_seconds (CUPS_CONNECTION_TEST_INTERVAL, cups_connection_test, manager);
++ }
++}
++
++static gboolean
++cups_connection_test (gpointer user_data)
++{
++ GsdPrintNotificationsManager *manager = (GsdPrintNotificationsManager *) user_data;
++ GSocketClient *client;
++ gchar *address;
++
++ if (!manager->priv->dests) {
++ address = g_strdup_printf ("%s:%d", cupsServer (), ippPort ());
++
++ if (address && address[0] != '/') {
++ client = g_socket_client_new ();
++
++ g_debug ("Initiating test connection to CUPS server \'%s:%d\'.", cupsServer (), ippPort ());
++
++ g_socket_client_connect_to_host_async (client,
++ address,
++ 631,
++ NULL,
++ cups_connection_test_cb,
++ manager);
++
++ g_object_unref (client);
++ }
++ else {
++ manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
++ gnome_settings_profile_msg ("got dests");
++
++ renew_subscription (user_data);
++ g_timeout_add_seconds (RENEW_INTERVAL, renew_subscription_with_connection_test, manager);
++ }
++
++ g_free (address);
++ }
++
++ if (manager->priv->dests) {
++ manager->priv->cups_connection_timeout_id = 0;
++
++ return FALSE;
++ }
++ else {
++ return TRUE;
++ }
++}
++
+ static gboolean
+ gsd_print_notifications_manager_start_idle (gpointer data)
+ {
+@@ -913,11 +1050,7 @@ gsd_print_notifications_manager_start_idle (gpointer data)
+
+ manager->priv->printing_printers = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+
+- renew_subscription (manager);
+- g_timeout_add_seconds (RENEW_INTERVAL, renew_subscription, manager);
+-
+- manager->priv->num_dests = cupsGetDests (&manager->priv->dests);
+- gnome_settings_profile_msg ("got dests");
++ cups_connection_test (manager);
+
+ manager->priv->cups_bus_connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+
+@@ -955,6 +1088,7 @@ gsd_print_notifications_manager_start (GsdPrintNotificationsManager *manager,
+ manager->priv->printing_printers = NULL;
+ manager->priv->active_notifications = NULL;
+ manager->priv->cups_bus_connection = NULL;
++ manager->priv->cups_connection_timeout_id = 0;
+
+ g_idle_add (gsd_print_notifications_manager_start_idle, manager);
+
+--
+cgit v0.9.0.2
diff -Nru gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/11_numlock_loop.patch gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/11_numlock_loop.patch
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/11_numlock_loop.patch 1970-01-01 01:00:00.000000000 +0100
+++ gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/11_numlock_loop.patch 2012-10-26 19:04:58.000000000 +0200
@@ -0,0 +1,82 @@
+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+git20120925.a4c817/debian/patches/series
--- gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/series 2012-09-29 13:12:40.000000000 +0200
+++ gnome-settings-daemon-3.4.2+git20120925.a4c817/debian/patches/series 2012-10-26 19:04:58.000000000 +0200
@@ -1,5 +1,9 @@
+01_print_proxy.patch
+02_print_init.patch
+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
--- End Message ---