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:
--- 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);