From fe8210c7e0fd2c0863493b5a0a59846bed6781ab6563224539b948d97162996f Mon Sep 17 00:00:00 2001 From: Vincent Untz Date: Wed, 21 Sep 2011 15:53:20 +0000 Subject: [PATCH] Accepting request 83963 from home:vuntz:branches:GNOME:Factory Update to 3.1.92 OBS-URL: https://build.opensuse.org/request/show/83963 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-session?expand=0&rev=124 --- gnome-session-3.1.91.tar.bz2 | 3 - gnome-session-3.1.92.tar.bz2 | 3 + gnome-session-dbus-disconnected.patch | 127 -------------------------- gnome-session.changes | 12 +++ gnome-session.spec | 5 +- 5 files changed, 16 insertions(+), 134 deletions(-) delete mode 100644 gnome-session-3.1.91.tar.bz2 create mode 100644 gnome-session-3.1.92.tar.bz2 delete mode 100644 gnome-session-dbus-disconnected.patch diff --git a/gnome-session-3.1.91.tar.bz2 b/gnome-session-3.1.91.tar.bz2 deleted file mode 100644 index cbb0873..0000000 --- a/gnome-session-3.1.91.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:14588110477eabd70496d1d97278223495311634cff712c1f228e1acf1a4d9c3 -size 815368 diff --git a/gnome-session-3.1.92.tar.bz2 b/gnome-session-3.1.92.tar.bz2 new file mode 100644 index 0000000..8b53b80 --- /dev/null +++ b/gnome-session-3.1.92.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:483f62bbb26dca1eb573509fafc30782e9d4e5023eacf4eabedef31f47831ef9 +size 821304 diff --git a/gnome-session-dbus-disconnected.patch b/gnome-session-dbus-disconnected.patch deleted file mode 100644 index 2ba0a3c..0000000 --- a/gnome-session-dbus-disconnected.patch +++ /dev/null @@ -1,127 +0,0 @@ -diff --git a/gnome-session/gsm-consolekit.c b/gnome-session/gsm-consolekit.c -index f53993f..66bebd1 100644 ---- a/gnome-session/gsm-consolekit.c -+++ b/gnome-session/gsm-consolekit.c -@@ -152,7 +152,8 @@ gsm_consolekit_dbus_filter (DBusConnection *connection, - DBUS_INTERFACE_LOCAL, "Disconnected") && - strcmp (dbus_message_get_path (message), DBUS_PATH_LOCAL) == 0) { - gsm_consolekit_free_dbus (manager); -- return DBUS_HANDLER_RESULT_HANDLED; -+ /* let other filters get this disconnected signal, so that they -+ * can handle it too */ - } - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c -index b531197..2d74d40 100644 ---- a/gnome-session/gsm-manager.c -+++ b/gnome-session/gsm-manager.c -@@ -151,6 +151,7 @@ struct GsmManagerPrivate - - DBusGProxy *bus_proxy; - DBusGConnection *connection; -+ gboolean dbus_disconnected : 1; - - /* Interface with other parts of the system */ - UpClient *up_client; -@@ -1814,6 +1815,11 @@ _disconnect_client (GsmManager *manager, - "phase"); - } - -+ if (manager->priv->dbus_disconnected && GSM_IS_DBUS_CLIENT (client)) { -+ g_debug ("GsmManager: dbus disconnected, not restarting application"); -+ goto out; -+ } -+ - if (app == NULL) { - g_debug ("GsmManager: unable to find application for client - not restarting"); - goto out; -@@ -1872,6 +1878,12 @@ _disconnect_dbus_client (const char *id, - return FALSE; - } - -+ /* If no service name, then we simply disconnect all clients */ -+ if (!data->service_name) { -+ _disconnect_client (data->manager, client); -+ return TRUE; -+ } -+ - name = gsm_dbus_client_get_bus_name (GSM_DBUS_CLIENT (client)); - if (IS_STRING_EMPTY (name)) { - return FALSE; -@@ -1885,6 +1897,15 @@ _disconnect_dbus_client (const char *id, - return FALSE; - } - -+/** -+ * remove_clients_for_connection: -+ * @manager: a #GsmManager -+ * @service_name: a service name -+ * -+ * Disconnects clients that own @service_name. -+ * -+ * If @service_name is NULL, then disconnects all clients for the connection. -+ */ - static void - remove_clients_for_connection (GsmManager *manager, - const char *service_name) -@@ -1968,10 +1989,32 @@ bus_name_owner_changed (DBusGProxy *bus_proxy, - } - } - -+static DBusHandlerResult -+gsm_manager_bus_filter (DBusConnection *connection, -+ DBusMessage *message, -+ void *user_data) -+{ -+ GsmManager *manager; -+ -+ manager = GSM_MANAGER (user_data); -+ -+ if (dbus_message_is_signal (message, -+ DBUS_INTERFACE_LOCAL, "Disconnected") && -+ strcmp (dbus_message_get_path (message), DBUS_PATH_LOCAL) == 0) { -+ g_debug ("GsmManager: dbus disconnected; disconnecting dbus clients..."); -+ manager->priv->dbus_disconnected = TRUE; -+ remove_clients_for_connection (manager, NULL); -+ /* let other filters get this disconnected signal, so that they -+ * can handle it too */ -+ } -+ -+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -+} - static gboolean - register_manager (GsmManager *manager) - { - GError *error = NULL; -+ DBusConnection *connection; - - error = NULL; - manager->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); -@@ -1983,6 +2026,12 @@ register_manager (GsmManager *manager) - exit (1); - } - -+ connection = dbus_g_connection_get_connection (manager->priv->connection); -+ dbus_connection_add_filter (connection, -+ gsm_manager_bus_filter, -+ manager, NULL); -+ manager->priv->dbus_disconnected = FALSE; -+ - manager->priv->bus_proxy = dbus_g_proxy_new_for_name (manager->priv->connection, - DBUS_SERVICE_DBUS, - DBUS_PATH_DBUS, -diff --git a/gnome-session/gsm-shell.c b/gnome-session/gsm-shell.c -index 0b26f09..9785160 100644 ---- a/gnome-session/gsm-shell.c -+++ b/gnome-session/gsm-shell.c -@@ -228,7 +228,8 @@ gsm_shell_bus_filter (DBusConnection *connection, - DBUS_INTERFACE_LOCAL, "Disconnected") && - strcmp (dbus_message_get_path (message), DBUS_PATH_LOCAL) == 0) { - gsm_shell_disconnect_from_bus (shell); -- return DBUS_HANDLER_RESULT_HANDLED; -+ /* let other filters get this disconnected signal, so that they -+ * can handle it too */ - } - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; diff --git a/gnome-session.changes b/gnome-session.changes index 6610a9e..5cd9cb9 100644 --- a/gnome-session.changes +++ b/gnome-session.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Sep 20 07:39:31 UTC 2011 - vuntz@opensuse.org + +- Update to version 3.1.92: + + Session Manager: + - Never mark as handled the Disconnected signal from dbus + - Disconnect all dbus clients when dbus is disconnected + - Don't offer logout in the fail whale on the login screen + - Code improvements + + Updated translations. +- Drop gnome-session-dbus-disconnected.patch: fixed upstream. + ------------------------------------------------------------------- Fri Sep 9 08:00:56 UTC 2011 - vuntz@opensuse.org diff --git a/gnome-session.spec b/gnome-session.spec index 082d513..99890b9 100644 --- a/gnome-session.spec +++ b/gnome-session.spec @@ -18,7 +18,7 @@ Name: gnome-session -Version: 3.1.91 +Version: 3.1.92 Release: 1 License: GPLv2+ Summary: Session Tools for the GNOME Desktop @@ -37,8 +37,6 @@ Patch1: gnome-session-kdm-support.patch Patch2: gnome-session-wm-switch.patch # PATCH-NEEDS-REBASE gnome-session-bgo507101-tile-ui.patch bgo507101 vuntz@novell.com -- Tile UI for logout dialog. (Was: PATCH-FIX-UPSTREAM) Patch3: gnome-session-bgo507101-tile-ui.patch -# PATCH-FIX-UPSTREAM gnome-session-dbus-disconnected.patch vuntz@opensuse.org -- Various fixes for the case where dbus quits early; helps with the new gdm. Taken from git. -Patch4: gnome-session-dbus-disconnected.patch BuildRequires: fdupes BuildRequires: gnome-common BuildRequires: gnome-patch-translation @@ -130,7 +128,6 @@ translation-update-upstream #%patch2 -p1 # needs-rebase #%patch3 -p0 -%patch4 -p1 # gnome-patch-translation-update %build