commit gnome-session for openSUSE:Factory
![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package gnome-session for openSUSE:Factory checked in at Fri Sep 9 13:19:25 CEST 2011. -------- --- GNOME/gnome-session/gnome-session.changes 2011-07-22 18:12:56.000000000 +0200 +++ /mounts/work_src_done/STABLE/gnome-session/gnome-session.changes 2011-09-09 10:02:21.000000000 +0200 @@ -1,0 +2,44 @@ +Fri Sep 9 08:00:56 UTC 2011 - vuntz@opensuse.org + +- Add gnome-session-dbus-disconnected.patch: this fixes the case + where the session bus quits before gnome-session, so we can + properly terminate the session. Helps make the new gdm work. + +------------------------------------------------------------------- +Mon Sep 5 07:33:53 UTC 2011 - vuntz@opensuse.org + +- Update to version 3.1.91: + + Session Manager + - Fix usage of %lld for 64-bit formats + - Add a translator comment + + Updated translations. + +------------------------------------------------------------------- +Tue Aug 30 16:31:11 CEST 2011 - vuntz@opensuse.org + +- Update to version 3.1.90: + + Session Manager + - Support for debugging the fail whale dialog + - Show gnome-shell extensions in the fail whale dialog + - Respect lockdown in the fail whale dialog + - Add an IsSessionRunning DBus method + - Remove obsolete gconf sanity check + + Updated translations. +- Add pkgconfig(json-glib-1.0) BuildRequires: new dependency. +- Remove gconf-sanity-check BuildRequires, as well as + gconf-sanity-check Requires for core subpackage: the gconf checks + are now gone. + +------------------------------------------------------------------- +Fri Aug 12 14:32:08 CEST 2011 - dimstar@opensuse.org + +- Update to version 3.1.5: + + Session Manager: + - Fix --help to mention arguments for options that have one + - Support XDG_CURRENT_DESKTOP + + Capplet: + - Respect OnlyShowIn and NotShowIn keys + - Code cleanup + + Updated translations. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- gnome-session-3.1.3.tar.bz2 New: ---- gnome-session-3.1.91.tar.bz2 gnome-session-dbus-disconnected.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-session.spec ++++++ --- /var/tmp/diff_new_pack.pgQB77/_old 2011-09-09 13:19:18.000000000 +0200 +++ /var/tmp/diff_new_pack.pgQB77/_new 2011-09-09 13:19:18.000000000 +0200 @@ -18,8 +18,8 @@ Name: gnome-session -Version: 3.1.3 -Release: 2 +Version: 3.1.91 +Release: 1 License: GPLv2+ Summary: Session Tools for the GNOME Desktop Url: http://www.gnome.org @@ -37,8 +37,9 @@ 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: gconf-sanity-check BuildRequires: gnome-common BuildRequires: gnome-patch-translation BuildRequires: hicolor-icon-theme @@ -52,6 +53,7 @@ BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(ice) +BuildRequires: pkgconfig(json-glib-1.0) >= 0.10 BuildRequires: pkgconfig(sm) BuildRequires: pkgconfig(upower-glib) BuildRequires: pkgconfig(xau) @@ -78,6 +80,7 @@ %package default-session License: GPLv2+ Summary: Session Manager for GNOME -- Default GNOME Session +Group: System/GUI/GNOME Requires: %{name} = %{version} Requires: gnome-shell Requires: gnome-settings-daemon @@ -89,6 +92,7 @@ %package fallback-session License: GPLv2+ Summary: Session Manager for GNOME -- Fallback GNOME Session +Group: System/GUI/GNOME Requires: %{name} = %{version} Requires: gnome-panel Requires: gnome-settings-daemon @@ -102,9 +106,9 @@ %package core License: GPLv2+ Summary: Session Manager for GNOME -- Minimal Version +Group: System/GUI/GNOME Requires: ConsoleKit Requires: dbus-1-x11 -Requires: gconf-sanity-check Requires: gsettings-desktop-schemas >= 0.1.7 Requires: hicolor-icon-theme %glib2_gsettings_schema_requires @@ -126,6 +130,7 @@ #%patch2 -p1 # needs-rebase #%patch3 -p0 +%patch4 -p1 # gnome-patch-translation-update %build ++++++ gnome-session-3.1.3.tar.bz2 -> gnome-session-3.1.91.tar.bz2 ++++++ ++++ 13001 lines of diff (skipped) ++++++ gnome-session-dbus-disconnected.patch ++++++ 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; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de