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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 
[email protected] -- Tile UI for logout dialog. (Was: PATCH-FIX-UPSTREAM)
 Patch3:         gnome-session-bgo507101-tile-ui.patch
+# PATCH-FIX-UPSTREAM gnome-session-dbus-disconnected.patch [email protected] 
-- 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to