2009-04-16 Wang Xin <[email protected]>
authorjedy
Thu, 16 Apr 2009 09:07:58 +0000
changeset 15635 0556629619ed
parent 15634 cb0b9279961f
child 15636 b4d1d9d2733c
2009-04-16 Wang Xin <[email protected]> Rework patches. * patches/gnome-session-07-logout-dialog.diff: * patches/gnome-session-09-null-string.diff: * patches/gnome-session-14-bad-clients.diff:
ChangeLog
patches/gnome-session-07-logout-dialog.diff
patches/gnome-session-09-null-string.diff
patches/gnome-session-14-bad-clients.diff
--- a/ChangeLog	Thu Apr 16 08:55:30 2009 +0000
+++ b/ChangeLog	Thu Apr 16 09:07:58 2009 +0000
@@ -1,3 +1,11 @@
+2009-04-16  Wang Xin  <[email protected]>
+
+	Rework patches.
+
+	* patches/gnome-session-07-logout-dialog.diff:
+	* patches/gnome-session-09-null-string.diff:
+	* patches/gnome-session-14-bad-clients.diff:
+
 2009-04-16  Takao Fujiwara  <[email protected]>
 
 	* base-specs/ekiga.spec: Updated bugzilla:578359
--- a/patches/gnome-session-07-logout-dialog.diff	Thu Apr 16 08:55:30 2009 +0000
+++ b/patches/gnome-session-07-logout-dialog.diff	Thu Apr 16 09:07:58 2009 +0000
@@ -71,50 +71,98 @@
  
          return ret;
  }
-diff -Nur gnome-session-2.23.6-orig/gnome-session/gsm-manager.c gnome-session-2.23.6/gnome-session/gsm-manager.c
---- gnome-session-2.23.6-orig/gnome-session/gsm-manager.c	2008-08-07 12:32:18.468966829 +0800
-+++ gnome-session-2.23.6/gnome-session/gsm-manager.c	2008-08-07 12:36:16.283146624 +0800
-@@ -694,9 +694,21 @@
+diff -Nur gnome-session-2.26.1-orig/gnome-session/gsm-manager.c gnome-session-2.23.6/gnome-session/gsm-manager.c
+--- gnome-session-2.26.1-orig/gnome-session/gsm-manager.c	2008-08-07 12:32:18.468966829 +0800
++++ gnome-session-2.26.1/gnome-session/gsm-manager.c	2008-08-07 12:36:16.283146624 +0800
+@@ -2540,48 +2556,13 @@ request_reboot_privileges_completed (Gsm
+ static void
+ request_reboot (GsmManager *manager)
  {
-         GsmConsolekit *consolekit;
+-        GsmConsolekit *consolekit;
+-        gboolean       success;
+-
+-        g_debug ("GsmManager: requesting reboot");
++	GsmPowerManager *power_manager;
  
-+#if defined(sun) && defined(__SVR4)
-+        GsmPowerManager *power_manager;
-+
-+        power_manager = gsm_get_power_manager ();
-+
-+        if (gsm_power_manager_can_reboot (power_manager)) {
-+                gsm_power_manager_attempt_reboot (power_manager);
-+        }
-+
-+        g_object_unref (power_manager);
-+#else
-         consolekit = gsm_get_consolekit ();
-         do_attempt_reboot (consolekit);
-         g_object_unref (consolekit);
-+#endif
+-        /* We request the privileges before doing anything. There are a few
+-         * different cases here:
+-         *
+-         *   - no ConsoleKit: we fallback on GDM
+-         *   - no password required: everything is fine
+-         *   - password asked once: we ask for it now. If the user enters it
+-         *     fine, then all is great. If the user doesn't enter it fine, we
+-         *     don't do anything (so no logout).
+-         *   - password asked each time: we don't ask it for now since we don't
+-         *     want to ask for it twice. Instead we'll ask for it at the very
+-         *     end. If the user will enter it fine, then all is great again. If
+-         *     the user doesn't enter it fine, then we'll just fallback to GDM.
+-         *
+-         * The last case (password asked each time) is a bit broken, but
+-         * there's really nothing we can do about it. Generally speaking,
+-         * though, the password will only be asked once (unless the system is
+-         * configured in paranoid mode), and most probably only if there are
+-         * more than one user connected. So the general case is that it will
+-         * just work fine.
+-         */
+-
+-        consolekit = gsm_get_consolekit ();
+-        g_signal_connect (consolekit,
+-                          "privileges-completed",
+-                          G_CALLBACK (request_reboot_privileges_completed),
+-                          manager);
+-        success = gsm_consolekit_get_restart_privileges (consolekit);
+-
+-        if (!success) {
+-                g_signal_handlers_disconnect_by_func (consolekit,
+-                                                      request_reboot_privileges_completed,
+-                                                      manager);
+-                g_object_unref (consolekit);
+-
+-                manager->priv->logout_type = GSM_MANAGER_LOGOUT_REBOOT_GDM;
+-                end_phase (manager);
+-        }
++	power_manager = gsm_get_power_manager ();
++	if (gsm_power_manager_can_reboot (power_manager)) {
++		gsm_power_manager_attempt_reboot (power_manager);
++	}
++	g_object_unref (power_manager);
  }
  
  static void
-@@ -704,9 +716,21 @@
+@@ -2614,30 +2595,13 @@ request_shutdown_privileges_completed (G
+ static void
+ request_shutdown (GsmManager *manager)
  {
-         GsmConsolekit *consolekit;
+-        GsmConsolekit *consolekit;
+-        gboolean       success;
+-
+-        g_debug ("GsmManager: requesting shutdown");
++	GsmPowerManager *power_manager;
  
-+#if defined(sun) && defined(__SVR4)
-+        GsmPowerManager *power_manager;
-+
-+        power_manager = gsm_get_power_manager ();
-+
-+        if (gsm_power_manager_can_shutdown (power_manager)) {
-+                gsm_power_manager_attempt_shutdown (power_manager);
-+        }
-+
-+        g_object_unref (power_manager);
-+#else
-         consolekit = gsm_get_consolekit ();
-         do_attempt_shutdown (consolekit);
-         g_object_unref (consolekit);
-+#endif
+-        /* See the comment in request_reboot() for some more details about how
+-         * this works. */
+-
+-        consolekit = gsm_get_consolekit ();
+-        g_signal_connect (consolekit,
+-                          "privileges-completed",
+-                          G_CALLBACK (request_shutdown_privileges_completed),
+-                          manager);
+-        success = gsm_consolekit_get_stop_privileges (consolekit);
+-
+-        if (!success) {
+-                g_signal_handlers_disconnect_by_func (consolekit,
+-                                                      request_shutdown_privileges_completed,
+-                                                      manager);
+-                g_object_unref (consolekit);
+-
+-                manager->priv->logout_type = GSM_MANAGER_LOGOUT_SHUTDOWN_GDM;
+-                end_phase (manager);
+-        }
++	power_manager = gsm_get_power_manager ();
++	if (gsm_power_manager_can_shutdown (power_manager)) {
++		gsm_power_manager_attempt_shutdown (power_manager);
++	}
++	g_object_unref (power_manager);
  }
  
  static void
--- a/patches/gnome-session-09-null-string.diff	Thu Apr 16 08:55:30 2009 +0000
+++ b/patches/gnome-session-09-null-string.diff	Thu Apr 16 09:07:58 2009 +0000
@@ -1,10 +1,10 @@
 diff -urN gnome-session-2.23.6/gnome-session/gsm-client.c ../SUNWgnome-session-2.23.6.hacked/gnome-session-2.23.6/gnome-session/gsm-client.c
 --- gnome-session-2.23.6/gnome-session/gsm-client.c	2008-08-05 00:15:36.000000000 +0100
 +++ ../SUNWgnome-session-2.23.6.hacked/gnome-session-2.23.6/gnome-session/gsm-client.c	2008-08-15 10:55:10.184547000 +0100
-@@ -475,5 +475,5 @@
-                                  gboolean    is_ok,
+@@ -527,5 +527,5 @@
                                   const char *reason)
  {
--        g_signal_emit (client, signals[END_SESSION_RESPONSE], 0, is_ok, reason);
-+        g_signal_emit (client, signals[END_SESSION_RESPONSE], 0, is_ok, reason ? reason :"");
+         g_signal_emit (client, signals[END_SESSION_RESPONSE], 0,
+-                       is_ok, do_last, cancel, reason);
++                       is_ok, do_last, cancel, reason ? reason :"");
  }
--- a/patches/gnome-session-14-bad-clients.diff	Thu Apr 16 08:55:30 2009 +0000
+++ b/patches/gnome-session-14-bad-clients.diff	Thu Apr 16 09:07:58 2009 +0000
@@ -1,9 +1,9 @@
-diff -urN gnome-session-2.25.92/gnome-session/gsm-session-save.c ../SUNWgnome-session-2.25.91.hacked/gnome-session-2.25.92/gnome-session/gsm-session-save.c
---- gnome-session-2.25.92/gnome-session/gsm-session-save.c	2009-03-03 16:58:00.000000000 +0000
-+++ ../SUNWgnome-session-2.25.91.hacked/gnome-session-2.25.92/gnome-session/gsm-session-save.c	2009-03-13 13:45:06.315378000 +0000
-@@ -28,6 +28,32 @@
- 
- #include "gsm-session-save.h"
+diff -urN gnome-session-2.26.1/gnome-session/gsm-session-save.c ../SUNWgnome-session-2.25.91.hacked/gnome-session-2.25.92/gnome-session/gsm-session-save.c
+--- gnome-session-2.26.1/gnome-session/gsm-session-save.c	2009-03-03 16:58:00.000000000 +0000
++++ ../SUNWgnome-session-2.26.1.hacked/gnome-session-2.25.92/gnome-session/gsm-session-save.c	2009-03-13 13:45:06.315378000 +0000
+@@ -37,6 +37,31 @@ typedef struct {
+         GError     **error;
+ } SessionSaveData;
  
 +char *blacklisted_app[] = {
 +	"ospm-applet",
@@ -30,11 +30,10 @@
 +	return FALSE;
 +}
 +
-+
  static gboolean
- save_one_client (char     *id,
-                  GObject  *object,
-@@ -44,6 +70,9 @@
+ save_one_client (char            *id,
+                  GObject         *object,
+@@ -53,6 +78,9 @@ save_one_client (char            *id,
  
          client = GSM_CLIENT (object);