OBS User unknown 2008-07-24 22:53:09 +00:00 committed by Git OBS Bridge
parent bde4e69e1c
commit cc5c3243dd
19 changed files with 580 additions and 1345 deletions

View File

@ -1,25 +0,0 @@
Index: gnome-session-2.19.4/gnome-session/ice.c
===================================================================
--- gnome-session-2.19.4.orig/gnome-session/ice.c
+++ gnome-session-2.19.4/gnome-session/ice.c
@@ -384,6 +384,8 @@ initialize_ice (void)
ids = IceComposeNetworkIdList (num_sockets, sockets);
g_setenv (ENVNAME, ids, TRUE);
free (ids);
+
+ putenv (g_strconcat (ICE_AUTHORITY_ENV_NAME "=", authfile, NULL));
ice_depth = 0; /* We are live */
}
Index: gnome-session-2.19.4/gnome-session/ice.h
===================================================================
--- gnome-session-2.19.4.orig/gnome-session/ice.h
+++ gnome-session-2.19.4/gnome-session/ice.h
@@ -24,6 +24,7 @@
#define MAGIC_COOKIE_LEN 16
#define ENVNAME "SESSION_MANAGER"
+#define ICE_AUTHORITY_ENV_NAME "ICEAUTHORITY"
/* List of all auth entries. */
extern GSList *auth_entries;

View File

@ -1,318 +0,0 @@
--- gnome-session/gdm-logout-action.c
+++ gnome-session/gdm-logout-action.c
@@ -56,6 +56,8 @@
#define GDM_ACTION_STR_REBOOT "REBOOT"
#define GDM_ACTION_STR_SUSPEND "SUSPEND"
+#define KDM_PROTOCOL_MSG_QUERY_ACTION "caps"
+
typedef struct {
int fd;
char *auth_cookie;
@@ -64,6 +66,8 @@
GdmLogoutAction current_actions;
time_t last_update;
+
+ guint is_kdm : 1;
} GdmProtocolData;
static GdmProtocolData gdm_protocol_data = {
@@ -71,11 +75,12 @@
NULL,
GDM_LOGOUT_ACTION_NONE,
GDM_LOGOUT_ACTION_NONE,
- 0
+ 0,
+ FALSE
};
static char *
-gdm_send_protocol_msg (GdmProtocolData *data,
+dm_send_protocol_msg (GdmProtocolData *data,
const char *msg)
{
GString *retval;
@@ -87,7 +92,7 @@
if (write (data->fd, p, strlen (p)) < 0) {
g_free (p);
- g_warning ("Failed to send message to GDM: %s",
+ g_warning ("Failed to send message to display manager: %s",
g_strerror (errno));
return NULL;
}
@@ -153,7 +158,7 @@
msg = g_strdup_printf (GDM_PROTOCOL_MSG_AUTHENTICATE " %s",
data->auth_cookie);
- response = gdm_send_protocol_msg (data, msg);
+ response = dm_send_protocol_msg (data, msg);
g_free (msg);
if (response && !strcmp (response, "OK")) {
@@ -195,7 +200,7 @@
XauDisposeAuth (xau);
msg = g_strdup_printf (GDM_PROTOCOL_MSG_AUTHENTICATE " %s", buffer);
- response = gdm_send_protocol_msg (data, msg);
+ response = dm_send_protocol_msg (data, msg);
g_free (msg);
if (response && !strcmp (response, "OK")) {
@@ -218,7 +223,7 @@
}
static void
-gdm_shutdown_protocol_connection (GdmProtocolData *data)
+dm_shutdown_protocol_connection (GdmProtocolData *data)
{
if (data->fd)
close (data->fd);
@@ -237,7 +242,7 @@
if (data->fd < 0) {
g_warning ("Failed to create GDM socket: %s",
g_strerror (errno));
- gdm_shutdown_protocol_connection (data);
+ dm_shutdown_protocol_connection (data);
return FALSE;
}
@@ -251,16 +256,16 @@
if (connect (data->fd, (struct sockaddr *) &addr, sizeof (addr)) < 0) {
g_warning ("Failed to establish a connection with GDM: %s",
g_strerror (errno));
- gdm_shutdown_protocol_connection (data);
+ dm_shutdown_protocol_connection (data);
return FALSE;
}
- response = gdm_send_protocol_msg (data, GDM_PROTOCOL_MSG_VERSION);
+ response = dm_send_protocol_msg (data, GDM_PROTOCOL_MSG_VERSION);
if (!response || strncmp (response, "GDM ", strlen ("GDM ") != 0)) {
g_free (response);
g_warning ("Failed to get protocol version from GDM");
- gdm_shutdown_protocol_connection (data);
+ dm_shutdown_protocol_connection (data);
return FALSE;
}
@@ -268,13 +273,78 @@
if (!gdm_authenticate_connection (data)) {
g_warning ("Failed to authenticate with GDM");
- gdm_shutdown_protocol_connection (data);
+ dm_shutdown_protocol_connection (data);
return FALSE;
}
return TRUE;
}
+static gboolean
+kdm_init_protocol_connection (GdmProtocolData *data)
+{
+ struct sockaddr_un addr;
+ char *response;
+ char *dm_display;
+ char *dm_control;
+ char *p0 = NULL;
+
+ g_assert (data->fd <= 0);
+
+ data->fd = socket (AF_UNIX, SOCK_STREAM, 0);
+ if (data->fd < 0) {
+ g_warning ("Failed to create KDM socket: %s",
+ g_strerror (errno));
+ dm_shutdown_protocol_connection (data);
+ return FALSE;
+ }
+
+ dm_display = g_strdup (g_getenv ("DISPLAY"));
+ dm_control = g_strdup (g_getenv ("DM_CONTROL"));
+
+ if (dm_display && (p0 = strchr (dm_display, ':')))
+ p0 = strchr (p0, '.');
+
+ if (!dm_control || !strlen (dm_control) ||
+ !dm_display || !strlen (dm_display)) {
+ g_free (dm_control);
+ g_free (dm_display);
+
+ g_warning ("Could not locate KDM socket.");
+ dm_shutdown_protocol_connection (data);
+ return FALSE;
+ }
+
+ snprintf (addr.sun_path, sizeof (addr.sun_path), "%s/dmctl-%.*s/socket",
+ dm_control, p0 ? p0 - dm_display : 512, dm_display);
+ addr.sun_family = AF_UNIX;
+
+ g_free (dm_display);
+ g_free (dm_control);
+
+ if (connect (data->fd, (struct sockaddr *) &addr, sizeof (addr)) < 0) {
+ g_warning ("Failed to establish a connection with KDM: %s",
+ g_strerror (errno));
+ dm_shutdown_protocol_connection (data);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gboolean
+dm_init_protocol_connection (GdmProtocolData *data)
+{
+ if (g_getenv ("DM_CONTROL") && !g_getenv ("GDMSESSION")) {
+ data->is_kdm = TRUE;
+ return kdm_init_protocol_connection (data);
+ }
+
+ data->is_kdm = FALSE;
+ return gdm_init_protocol_connection (data);
+}
+
+
static void
gdm_parse_query_response (GdmProtocolData *data,
const char *response)
@@ -322,7 +392,21 @@
}
static void
-gdm_update_logout_actions (GdmProtocolData *data)
+kdm_parse_query_response (GdmProtocolData *data,
+ const char *response)
+{
+ data->available_actions = GDM_LOGOUT_ACTION_NONE;
+ data->current_actions = GDM_LOGOUT_ACTION_NONE;
+
+ if (!response)
+ return;
+
+ if (strstr (response, "\tshutdown"))
+ data->available_actions |= GDM_LOGOUT_ACTION_SHUTDOWN | GDM_LOGOUT_ACTION_REBOOT;
+}
+
+static void
+dm_update_logout_actions (GdmProtocolData *data)
{
time_t current_time;
char *response;
@@ -333,21 +417,30 @@
data->last_update = current_time;
- if (!gdm_init_protocol_connection (data))
+ if (!dm_init_protocol_connection (data))
return;
-
- if ((response = gdm_send_protocol_msg (data, GDM_PROTOCOL_MSG_QUERY_ACTION))) {
- gdm_parse_query_response (data, response);
- g_free (response);
- }
- gdm_shutdown_protocol_connection (data);
+ if (data->is_kdm) {
+ /* KDM */
+ if ((response = dm_send_protocol_msg (data, KDM_PROTOCOL_MSG_QUERY_ACTION))) {
+ kdm_parse_query_response (data, response);
+ g_free (response);
+ }
+ } else {
+ /* GDM */
+ if ((response = dm_send_protocol_msg (data, GDM_PROTOCOL_MSG_QUERY_ACTION))) {
+ gdm_parse_query_response (data, response);
+ g_free (response);
+ }
+ }
+
+ dm_shutdown_protocol_connection (data);
}
gboolean
gdm_supports_logout_action (GdmLogoutAction action)
{
- gdm_update_logout_actions (&gdm_protocol_data);
+ dm_update_logout_actions (&gdm_protocol_data);
return (gdm_protocol_data.available_actions & action) != 0;
}
@@ -355,20 +448,15 @@
GdmLogoutAction
gdm_get_logout_action (void)
{
- gdm_update_logout_actions (&gdm_protocol_data);
+ dm_update_logout_actions (&gdm_protocol_data);
return gdm_protocol_data.current_actions;
}
-void
-gdm_set_logout_action (GdmLogoutAction action)
+static char *
+gdm_logout_action_msg (GdmLogoutAction action)
{
char *action_str = NULL;
- char *msg;
- char *response;
-
- if (!gdm_init_protocol_connection (&gdm_protocol_data))
- return;
switch (action) {
case GDM_LOGOUT_ACTION_NONE:
@@ -385,14 +473,48 @@
break;
}
- msg = g_strdup_printf (GDM_PROTOCOL_MSG_SET_ACTION " %s", action_str);
+ return g_strdup_printf (GDM_PROTOCOL_MSG_SET_ACTION " %s", action_str);
+}
+
+static char *
+kdm_logout_action_msg (GdmLogoutAction action)
+{
+ char *msg = NULL;
+
+ if (action == GDM_LOGOUT_ACTION_SHUTDOWN)
+ msg = g_strdup ("shutdown\thalt\task");
+ else if (action == GDM_LOGOUT_ACTION_REBOOT)
+ msg = g_strdup ("shutdown\treboot\task");
+
+ return msg;
+}
+
+void
+gdm_set_logout_action (GdmLogoutAction action)
+{
+ char *action_str = NULL;
+ char *msg;
+ char *response;
+
+ if (!dm_init_protocol_connection (&gdm_protocol_data))
+ return;
+
+ if (gdm_protocol_data.is_kdm)
+ msg = kdm_logout_action_msg (action);
+ else
+ msg = gdm_logout_action_msg (action);
+
+ if (!msg) {
+ dm_shutdown_protocol_connection (&gdm_protocol_data);
+ return;
+ }
- response = gdm_send_protocol_msg (&gdm_protocol_data, msg);
+ response = dm_send_protocol_msg (&gdm_protocol_data, msg);
g_free (msg);
g_free (response);
gdm_protocol_data.last_update = 0;
- gdm_shutdown_protocol_connection (&gdm_protocol_data);
+ dm_shutdown_protocol_connection (&gdm_protocol_data);
}

View File

@ -1,53 +0,0 @@
diff -upr gnome-session-2.20.0-pre/gnome-session/gsm-at-startup.c gnome-session-2.20.0-post/gnome-session/gsm-at-startup.c
--- gnome-session-2.20.0-pre/gnome-session/gsm-at-startup.c 2007-09-17 13:36:00.000000000 -0500
+++ gnome-session-2.20.0-post/gnome-session/gsm-at-startup.c 2007-11-07 20:13:13.000000000 -0600
@@ -66,7 +66,7 @@ gsm_assistive_registry_start (void)
gdk_window_set_events (w, GDK_PROPERTY_CHANGE_MASK);
gsm_exec_command_line_async (command, NULL);
gdk_window_add_filter (w, gsm_assistive_filter_watch, &tid);
- tid = g_timeout_add_seconds (5, gsm_assistive_filter_timeout, NULL);
+ tid = g_timeout_add_seconds (10, gsm_assistive_filter_timeout, NULL);
gtk_main ();
diff -upr gnome-session-2.20.0-pre/gnome-session/main.c gnome-session-2.20.0-post/gnome-session/main.c
--- gnome-session-2.20.0-pre/gnome-session/main.c 2007-11-07 20:03:51.000000000 -0600
+++ gnome-session-2.20.0-post/gnome-session/main.c 2007-11-07 20:08:43.000000000 -0600
@@ -641,18 +641,6 @@ main (int argc, char *argv[])
gconf_client = gsm_get_conf_client ();
gconf_client_add_dir (gconf_client, GSM_GCONF_CONFIG_PREFIX, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
- env_a_t_support = g_getenv (ACCESSIBILITY_ENV);
- if (env_a_t_support)
- a_t_support = atoi (env_a_t_support);
- else
- a_t_support = gconf_client_get_bool (gconf_client, ACCESSIBILITY_KEY, NULL);
-
- if (a_t_support)
- {
- gsm_assistive_registry_start ();
- gsm_at_set_gtk_modules ();
- }
-
goption_context = g_option_context_new (N_("- Manage the GNOME session"));
g_option_context_set_translation_domain (goption_context, GETTEXT_PACKAGE);
g_option_context_add_main_entries (goption_context, options, GETTEXT_PACKAGE);
@@ -752,6 +740,18 @@ main (int argc, char *argv[])
if (splashing)
splash_start ();
+ /* move this down so the environments from above get set up
+ correctly before assistive modules activate items */
+ env_a_t_support = g_getenv (ACCESSIBILITY_ENV);
+ if (env_a_t_support)
+ a_t_support = atoi (env_a_t_support);
+
+ if (a_t_support)
+ {
+ gsm_assistive_registry_start ();
+ gsm_at_set_gtk_modules ();
+ }
+
start_session (the_session);
gsm_motd_start ();

View File

@ -1,14 +0,0 @@
--- gnome-session-2.11.90/gnome-session/main.c
+++ gnome-session-2.11.90/gnome-session/main.c
@@ -391,6 +391,11 @@
g_free (display_str);
putenv (ep);
+ /* We are in a Gnome session, we want gnome-open to be the default
+ * launching application.
+ */
+ putenv ("DESKTOP_LAUNCH=gnome-open");
+
ignore (SIGPIPE);
/* Need DISPLAY set */

View File

@ -1,53 +0,0 @@
--- pristine-gnome-session-2.22.1.1/gnome-session/manager.c 2008-04-10 15:32:20.000000000 +0100
+++ gnome-session-2.22.1.1/gnome-session/manager.c 2008-04-30 10:53:27.000000000 +0100
@@ -825,7 +825,6 @@
return retval;
}
-
static Status
register_client (SmsConn connection, SmPointer data, char *previous_id)
{
@@ -882,33 +881,20 @@
}
else
{
- char *id = SmsGenerateClientID (connection);
-
- if (id != NULL)
- {
- client->id = g_strdup (id);
- free (id);
- }
- else
+ /* If your network is mis-configured, it takes 15+ seconds for
+ SmsGenerateClientID to fail each time it is called - and since
+ the X method (libSM/src/sm_genid.c) does little of any value -
+ beyond creating a unique identifier - we do that ourselves
+ here instead rather more quickly. */
{
static long int sequence = 0;
- static char* address = NULL;
-
- if (! address)
- {
- g_warning ("Host name lookup failure on localhost.");
-
- address = g_new (char, 10);
- srand (time (NULL) + (getpid () <<16));
- g_snprintf (address, 10, "0%.8x", rand());
- };
/* The typecast there is for 64-bit machines */
- client->id = g_malloc (43);
- g_snprintf (client->id, 43, "1%s%.13ld%.10ld%.4ld", address,
- (long) time(NULL), (long) getpid (), sequence);
+ client->id = g_strdup_printf ("10%.8x%.13ld%.10ld%.4ld",
+ g_str_hash (g_get_host_name()),
+ (long) time(NULL), (long) getpid (),
+ sequence);
sequence++;
-
sequence %= 10000;
}
}

View File

@ -1,45 +1,29 @@
Index: gnome-session/splash-widget.c
===================================================================
--- gnome-session/splash-widget.c (révision 4682)
+++ gnome-session/splash-widget.c (copie de travail)
@@ -437,7 +437,7 @@ get_splash_icon (SplashWidget *sw, const
pb = gtk_icon_theme_load_icon (icon_theme,
icon_no_extension,
- 48, /* icon size */
+ 22, /* icon size */
0, NULL);
g_free (icon_no_extension);
@@ -474,7 +474,7 @@ layout_icon (SplashWidget *sw, SplashIco
if (!si->scaled) {
if (gdk_pixbuf_get_width (si->unscaled) == sw->icon_size &&
gdk_pixbuf_get_height (si->unscaled) == sw->icon_size)
- si->scaled = g_object_ref (si->unscaled);
+ si->scaled = gdk_pixbuf_copy (si->unscaled);
else
si->scaled = gdk_pixbuf_scale_simple (
si->unscaled, sw->icon_size,
Index: gnome-session/splash-widget.h
===================================================================
--- gnome-session/splash-widget.h (révision 4682)
+++ gnome-session/splash-widget.h (copie de travail)
@@ -66,14 +66,14 @@ void splash_widget_add_icon (SplashWidg
#define SPLASH_BASE_HEIGHT 220
/* offset from bottom of label & font */
-#define SPLASH_LABEL_V_OFFSET 3
+#define SPLASH_LABEL_V_OFFSET 8
#define SPLASH_LABEL_FONT_SIZE 8
/* icon border, spacing, offset from bottom and initial size */
-#define SPLASH_ICON_BORDER 8
+#define SPLASH_ICON_BORDER 10
--- gnome-session-2.23.4.1-pre/splash/splash-window.c 2008-04-21 17:38:11.000000000 -0500
+++ gnome-session-2.23.4.1-work/splash/splash-window.c 2008-07-20 23:07:28.000000000 -0500
@@ -40,7 +40,7 @@ G_DEFINE_TYPE (GsmSplashWindow, gsm_spla
#define SPLASH_ICON_BORDER 26
#define SPLASH_ICON_SPACING 4
-#define SPLASH_ICON_V_OFFSET 14
#define SPLASH_ICON_V_OFFSET 28
-#define SPLASH_BASE_ICON_SIZE 36
+#define SPLASH_ICON_V_OFFSET 20
+#define SPLASH_BASE_ICON_SIZE 22
#define SPLASH_BASE_ICON_ROWS 1
/* The global API */
static gboolean update_trans_effect (gpointer);
@@ -330,7 +330,7 @@ layout_icon (GsmSplashWindow *splash, Sp
{
if (gdk_pixbuf_get_width (si->unscaled) == splash->icon_size &&
gdk_pixbuf_get_height (si->unscaled) == splash->icon_size)
- si->scaled = g_object_ref (si->unscaled);
+ si->scaled = gdk_pixbuf_copy (si->unscaled);
else
{
si->scaled = gdk_pixbuf_scale_simple (si->unscaled, splash->icon_size,
@@ -470,7 +470,7 @@ gsm_splash_window_start (GsmSplashWindow
return;
pb = gtk_icon_theme_load_icon (splash->icon_theme, icon_name,
- 48, /* icon size */
+ 22, /* icon size */
0 /* flags */, NULL);
if (!pb)
return;

View File

@ -1,38 +0,0 @@
Index: gnome-session-2.20.1/gnome-session/splash-widget.c
===================================================================
--- gnome-session-2.20.1.orig/gnome-session/splash-widget.c
+++ gnome-session-2.20.1/gnome-session/splash-widget.c
@@ -34,6 +34,10 @@ G_DEFINE_TYPE (SplashWidget,
static gboolean update_trans_effect (gpointer);
+static SplashWidget *global_splash = NULL;
+
+
+
typedef struct {
const char *human_name;
const char *exe;
@@ -624,7 +628,6 @@ splash_widget_add_icon (SplashWidget *sw
}
}
-static SplashWidget *global_splash = NULL;
static void
update_icon_with_effect (SplashIcon *si)
@@ -654,6 +657,7 @@ update_icon_with_effect (SplashIcon *si)
}
}
+
static gboolean
update_trans_effect (gpointer splash_icon)
{
@@ -725,3 +729,6 @@ splash_hide (void)
}
}
+
+
+

View File

@ -1,6 +1,6 @@
diff -aurp gnome-session-2.22.1.1/gnome-session/gnome-wm gnome-session-2.22.1.1-patched/gnome-session/gnome-wm
--- gnome-session-2.22.1.1/gnome-session/gnome-wm 2008-04-10 16:32:20.000000000 +0200
+++ gnome-session-2.22.1.1-patched/gnome-session/gnome-wm 2008-05-13 09:15:37.539788000 +0200
--- gnome-session-2.22.1.1/data/gnome-wm 2008-04-10 16:32:20.000000000 +0200
+++ gnome-session-2.22.1.1-patched/data/gnome-wm 2008-05-13 09:15:37.539788000 +0200
@@ -39,22 +39,33 @@ done
# WINDOW_MANAGER overrides all

View File

@ -0,0 +1,14 @@
diff -upr gnome-session-2.23.4.1-pre/gnome-session/xsmp.c gnome-session-2.23.4.1-post/gnome-session/xsmp.c
--- gnome-session-2.23.4.1-pre/gnome-session/xsmp.c 2008-06-03 10:38:18.000000000 -0500
+++ gnome-session-2.23.4.1-post/gnome-session/xsmp.c 2008-07-20 17:35:00.000000000 -0500
@@ -481,6 +481,9 @@ update_iceauthority (gboolean adding)
fclose (fp);
ok = TRUE;
+ /* Lets programs auth with the session even if running as another user ID */
+ putenv (g_strconcat ("ICEAUTHORITY=", filename, NULL));
+
cleanup:
IceUnlockAuthFile (filename);
for (i = 0; i < num_local_xsmp_sockets; i++)
Only in gnome-session-2.23.4.1-post/gnome-session: xsmp.c~

View File

@ -1,22 +0,0 @@
=== modified file 'gnome-session/migrate-trash.c'
Index: gnome-session/migrate-trash.c
===================================================================
--- gnome-session/migrate-trash.c.orig
+++ gnome-session/migrate-trash.c
@@ -33,6 +33,7 @@
#include <errno.h>
#include <fcntl.h>
#include <string.h>
+#include <unistd.h>
#include <glib.h>
#include <glib/gstdio.h>
@@ -289,7 +290,7 @@ migrate_trash (void)
return 1;
}
- while (file = g_dir_read_name (dir))
+ while ((file = g_dir_read_name (dir)))
{
had_problem = !move_file (old_trash_dir, file, info_dir, files_dir)
|| had_problem;

View File

@ -0,0 +1,362 @@
--- gnome-session-2.23.4.1-pre/gnome-session/gdm.c 2008-06-17 08:24:45.000000000 -0500
+++ gnome-session-2.23.4.1-work/gnome-session/gdm.c 2008-07-20 18:45:07.000000000 -0500
@@ -57,6 +57,8 @@
#define GDM_ACTION_STR_REBOOT "REBOOT"
#define GDM_ACTION_STR_SUSPEND "SUSPEND"
+#define KDM_PROTOCOL_MSG_QUERY_ACTION "caps"
+
typedef struct {
int fd;
char *auth_cookie;
@@ -65,6 +67,8 @@ typedef struct {
GdmLogoutAction current_actions;
time_t last_update;
+
+ guint is_kdm : 1;
} GdmProtocolData;
static GdmProtocolData gdm_protocol_data = {
@@ -72,12 +76,13 @@ static GdmProtocolData gdm_protocol_data
NULL,
GDM_LOGOUT_ACTION_NONE,
GDM_LOGOUT_ACTION_NONE,
- 0
+ 0,
+ FALSE
};
static char *
-gdm_send_protocol_msg (GdmProtocolData *data,
- const char *msg)
+dm_send_protocol_msg (GdmProtocolData *data,
+ const char *msg)
{
GString *retval;
char buf[256];
@@ -90,7 +95,7 @@ gdm_send_protocol_msg (GdmProtocolData *
{
g_free (p);
- g_warning ("Failed to send message to GDM: %s",
+ g_warning ("Failed to send message to display manager: %s",
g_strerror (errno));
return NULL;
@@ -163,7 +168,7 @@ gdm_authenticate_connection (GdmProtocol
msg = g_strdup_printf (GDM_PROTOCOL_MSG_AUTHENTICATE " %s",
data->auth_cookie);
- response = gdm_send_protocol_msg (data, msg);
+ response = dm_send_protocol_msg (data, msg);
g_free (msg);
if (response && !strcmp (response, "OK"))
@@ -210,7 +215,7 @@ gdm_authenticate_connection (GdmProtocol
XauDisposeAuth (xau);
msg = g_strdup_printf (GDM_PROTOCOL_MSG_AUTHENTICATE " %s", buffer);
- response = gdm_send_protocol_msg (data, msg);
+ response = dm_send_protocol_msg (data, msg);
g_free (msg);
if (response && !strcmp (response, "OK"))
@@ -234,7 +239,7 @@ gdm_authenticate_connection (GdmProtocol
}
static void
-gdm_shutdown_protocol_connection (GdmProtocolData *data)
+dm_shutdown_protocol_connection (GdmProtocolData *data)
{
if (data->fd)
close (data->fd);
@@ -264,7 +269,7 @@ gdm_init_protocol_connection (GdmProtoco
g_warning ("Failed to create GDM socket: %s",
g_strerror (errno));
- gdm_shutdown_protocol_connection (data);
+ dm_shutdown_protocol_connection (data);
return FALSE;
}
@@ -276,19 +281,19 @@ gdm_init_protocol_connection (GdmProtoco
g_warning ("Failed to establish a connection with GDM: %s",
g_strerror (errno));
- gdm_shutdown_protocol_connection (data);
+ dm_shutdown_protocol_connection (data);
return FALSE;
}
- response = gdm_send_protocol_msg (data, GDM_PROTOCOL_MSG_VERSION);
+ response = dm_send_protocol_msg (data, GDM_PROTOCOL_MSG_VERSION);
if (!response || strncmp (response, "GDM ", strlen ("GDM ") != 0))
{
g_free (response);
g_warning ("Failed to get protocol version from GDM");
- gdm_shutdown_protocol_connection (data);
+ dm_shutdown_protocol_connection (data);
return FALSE;
}
@@ -298,13 +303,76 @@ gdm_init_protocol_connection (GdmProtoco
if (!gdm_authenticate_connection (data))
{
g_warning ("Failed to authenticate with GDM");
- gdm_shutdown_protocol_connection (data);
+ dm_shutdown_protocol_connection (data);
return FALSE;
}
return TRUE;
}
+static gboolean
+kdm_init_protocol_connection (GdmProtocolData *data)
+{
+ struct sockaddr_un addr;
+ char *dm_display;
+ char *dm_control;
+ char *p0 = NULL;
+
+ g_assert (data->fd <= 0);
+
+ data->fd = socket (AF_UNIX, SOCK_STREAM, 0);
+ if (data->fd < 0) {
+ g_warning ("Failed to create KDM socket: %s",
+ g_strerror (errno));
+ dm_shutdown_protocol_connection (data);
+ return FALSE;
+ }
+
+ dm_display = g_strdup (g_getenv ("DISPLAY"));
+ dm_control = g_strdup (g_getenv ("DM_CONTROL"));
+
+ if (dm_display && (p0 = strchr (dm_display, ':')))
+ p0 = strchr (p0, '.');
+
+ if (!dm_control || !strlen (dm_control) ||
+ !dm_display || !strlen (dm_display)) {
+ g_free (dm_control);
+ g_free (dm_display);
+
+ g_warning ("Could not locate KDM socket.");
+ dm_shutdown_protocol_connection (data);
+ return FALSE;
+ }
+
+ snprintf (addr.sun_path, sizeof (addr.sun_path), "%s/dmctl-%.*s/socket",
+ dm_control, p0 ? p0 - dm_display : 512, dm_display);
+ addr.sun_family = AF_UNIX;
+
+ g_free (dm_display);
+ g_free (dm_control);
+
+ if (connect (data->fd, (struct sockaddr *) &addr, sizeof (addr)) < 0) {
+ g_warning ("Failed to establish a connection with KDM: %s",
+ g_strerror (errno));
+ dm_shutdown_protocol_connection (data);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gboolean
+dm_init_protocol_connection (GdmProtocolData *data)
+{
+ if (g_getenv ("DM_CONTROL") && !g_getenv ("GDMSESSION")) {
+ data->is_kdm = TRUE;
+ return kdm_init_protocol_connection (data);
+ }
+
+ data->is_kdm = FALSE;
+ return gdm_init_protocol_connection (data);
+}
+
static void
gdm_parse_query_response (GdmProtocolData *data,
const char *response)
@@ -357,7 +425,21 @@ gdm_parse_query_response (GdmProtocolDat
}
static void
-gdm_update_logout_actions (GdmProtocolData *data)
+kdm_parse_query_response (GdmProtocolData *data,
+ const char *response)
+{
+ data->available_actions = GDM_LOGOUT_ACTION_NONE;
+ data->current_actions = GDM_LOGOUT_ACTION_NONE;
+
+ if (!response)
+ return;
+
+ if (strstr (response, "\tshutdown"))
+ data->available_actions |= GDM_LOGOUT_ACTION_SHUTDOWN | GDM_LOGOUT_ACTION_REBOOT;
+}
+
+static void
+dm_update_logout_actions (GdmProtocolData *data)
{
time_t current_time;
char *response;
@@ -369,25 +451,39 @@ gdm_update_logout_actions (GdmProtocolDa
data->last_update = current_time;
- if (!gdm_init_protocol_connection (data))
+ if (!dm_init_protocol_connection (data))
return;
-
- if ((response = gdm_send_protocol_msg (data, GDM_PROTOCOL_MSG_QUERY_ACTION)))
+
+ if (data->is_kdm) {
+ /* KDM */
+ if ((response = dm_send_protocol_msg (data, KDM_PROTOCOL_MSG_QUERY_ACTION))) {
+ kdm_parse_query_response (data, response);
+ g_free (response);
+ }
+ } else {
+ /* GDM */
+ if ((response = dm_send_protocol_msg (data, GDM_PROTOCOL_MSG_QUERY_ACTION))) {
+ gdm_parse_query_response (data, response);
+ g_free (response);
+ }
+ }
+
+ if ((response = dm_send_protocol_msg (data, GDM_PROTOCOL_MSG_QUERY_ACTION)))
{
gdm_parse_query_response (data, response);
g_free (response);
}
- gdm_shutdown_protocol_connection (data);
+ dm_shutdown_protocol_connection (data);
}
gboolean
gdm_is_available (void)
{
- if (!gdm_init_protocol_connection (&gdm_protocol_data))
+ if (!dm_init_protocol_connection (&gdm_protocol_data))
return FALSE;
- gdm_shutdown_protocol_connection (&gdm_protocol_data);
+ dm_shutdown_protocol_connection (&gdm_protocol_data);
return TRUE;
}
@@ -395,7 +491,7 @@ gdm_is_available (void)
gboolean
gdm_supports_logout_action (GdmLogoutAction action)
{
- gdm_update_logout_actions (&gdm_protocol_data);
+ dm_update_logout_actions (&gdm_protocol_data);
return (gdm_protocol_data.available_actions & action) != 0;
}
@@ -403,21 +499,16 @@ gdm_supports_logout_action (GdmLogoutAct
GdmLogoutAction
gdm_get_logout_action (void)
{
- gdm_update_logout_actions (&gdm_protocol_data);
+ dm_update_logout_actions (&gdm_protocol_data);
return gdm_protocol_data.current_actions;
}
-void
-gdm_set_logout_action (GdmLogoutAction action)
+static char *
+gdm_logout_action_msg (GdmLogoutAction action)
{
char *action_str = NULL;
- char *msg;
- char *response;
-
- if (!gdm_init_protocol_connection (&gdm_protocol_data))
- return;
-
+
switch (action)
{
case GDM_LOGOUT_ACTION_NONE:
@@ -433,17 +524,50 @@ gdm_set_logout_action (GdmLogoutAction a
action_str = GDM_ACTION_STR_SUSPEND;
break;
}
+
+ return g_strdup_printf (GDM_PROTOCOL_MSG_SET_ACTION " %s", action_str);
+}
+
+static char *
+kdm_logout_action_msg (GdmLogoutAction action)
+{
+ char *msg = NULL;
+
+ if (action == GDM_LOGOUT_ACTION_SHUTDOWN)
+ msg = g_strdup ("shutdown\thalt\task");
+ else if (action == GDM_LOGOUT_ACTION_REBOOT)
+ msg = g_strdup ("shutdown\treboot\task");
+
+ return msg;
+}
+
+void
+gdm_set_logout_action (GdmLogoutAction action)
+{
+ char *msg;
+ char *response;
- msg = g_strdup_printf (GDM_PROTOCOL_MSG_SET_ACTION " %s", action_str);
-
- response = gdm_send_protocol_msg (&gdm_protocol_data, msg);
+ if (!dm_init_protocol_connection (&gdm_protocol_data))
+ return;
+
+ if (gdm_protocol_data.is_kdm)
+ msg = kdm_logout_action_msg (action);
+ else
+ msg = gdm_logout_action_msg (action);
+
+ if (!msg) {
+ dm_shutdown_protocol_connection (&gdm_protocol_data);
+ return;
+ }
+
+ response = dm_send_protocol_msg (&gdm_protocol_data, msg);
g_free (msg);
g_free (response);
gdm_protocol_data.last_update = 0;
- gdm_shutdown_protocol_connection (&gdm_protocol_data);
+ dm_shutdown_protocol_connection (&gdm_protocol_data);
}
void
@@ -451,15 +575,15 @@ gdm_new_login (void)
{
char *response;
- if (!gdm_init_protocol_connection (&gdm_protocol_data))
+ if (!dm_init_protocol_connection (&gdm_protocol_data))
return;
- response = gdm_send_protocol_msg (&gdm_protocol_data,
- GDM_PROTOCOL_MSG_FLEXI_XSERVER);
+ response = dm_send_protocol_msg (&gdm_protocol_data,
+ GDM_PROTOCOL_MSG_FLEXI_XSERVER);
g_free (response);
gdm_protocol_data.last_update = 0;
- gdm_shutdown_protocol_connection (&gdm_protocol_data);
+ dm_shutdown_protocol_connection (&gdm_protocol_data);
}

View File

@ -1,251 +0,0 @@
Index: gnome-session/gsm-motd.h
===================================================================
--- /dev/null
+++ gnome-session/gsm-motd.h
@@ -0,0 +1,7 @@
+#ifndef GSM_MOTD_H
+#define GSM_MOTD_H
+
+void gsm_motd_start (void);
+void gsm_motd_stop (void);
+
+#endif
Index: gnome-session/gsm-motd.c
===================================================================
--- /dev/null
+++ gnome-session/gsm-motd.c
@@ -0,0 +1,179 @@
+/* gdm-motd.c - Message of the Day support in gnome-session.
+
+ Copyright (C) 1998, 1999 Tom Tromey
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA. */
+
+#include <config.h>
+#include <glib/gi18n.h>
+#include <gconf/gconf-client.h>
+#include <gtk/gtkmessagedialog.h>
+#include <libgnomevfs/gnome-vfs-ops.h>
+#ifdef HAVE_LIBNOTIFY
+#include <libnotify/notify.h>
+#endif
+#include "gsm-motd.h"
+
+static gchar *motd_contents = NULL;
+static GnomeVFSMonitorHandle *monitor_handle = NULL;
+
+static void
+display_message_of_the_day_dialog (void)
+{
+ GtkWidget *dialog;
+
+ if (motd_contents)
+ {
+ dialog = gtk_message_dialog_new_with_markup (NULL, 0, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE,
+ "<big><b>%s</b></big>\n%s",
+ _("Message of the Day"), motd_contents);
+ g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (gtk_widget_destroy), NULL);
+ gtk_widget_show (dialog);
+ }
+}
+
+#ifdef HAVE_LIBNOTIFY
+static void
+display_message_of_the_day_notification (void)
+{
+ NotifyNotification *n;
+ GdkPixbuf *icon;
+
+ if (!motd_contents)
+ return;
+
+ if (!notify_is_initted () && !notify_init (_("Session Manager")))
+ {
+ g_printerr ("Could not contact the notification daemon");
+ display_message_of_the_day_dialog ();
+ }
+ else
+ {
+ icon = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+ "gtk-info",
+ 48,
+ GTK_ICON_LOOKUP_USE_BUILTIN,
+ NULL);
+
+ n = notify_notification_new (_("Message of the Day"), motd_contents, NULL, NULL);
+ notify_notification_set_icon_from_pixbuf (n, icon);
+ gdk_pixbuf_unref (icon);
+
+ if (!notify_notification_show (n, NULL))
+ {
+ display_message_of_the_day_dialog ();
+ }
+
+ //g_object_unref (n);
+ }
+}
+#endif
+
+static void
+motd_changed_cb (GnomeVFSMonitorHandle *handle,
+ const gchar *monitor_uri,
+ const gchar *info_uri,
+ GnomeVFSMonitorEventType event_type,
+ gpointer user_data)
+{
+ gchar *contents;
+ gsize length;
+
+ switch (event_type)
+ {
+ case GNOME_VFS_MONITOR_EVENT_CHANGED :
+ case GNOME_VFS_MONITOR_EVENT_CREATED :
+ if (g_file_get_contents ("/etc/motd", &contents, &length, NULL))
+ {
+ if (length > 0)
+ {
+ g_free (motd_contents);
+ motd_contents = contents;
+
+#ifdef HAVE_LIBNOTIFY
+ display_message_of_the_day_notification ();
+#else
+ display_message_of_the_day_dialog ();
+#endif
+ }
+ }
+ break;
+ case GNOME_VFS_MONITOR_EVENT_DELETED :
+ g_free (motd_contents);
+ motd_contents = NULL;
+ break;
+ }
+}
+
+static gboolean
+on_login_cb (gpointer user_data)
+{
+#ifdef HAVE_LIBNOTIFY
+ display_message_of_the_day_notification ();
+#else
+ display_message_of_the_day_dialog ();
+#endif
+
+ return FALSE;
+}
+
+void
+gsm_motd_start (void)
+{
+ gchar *contents;
+ gsize length;
+ GConfClient *client;
+ gboolean enabled;
+
+ client = gconf_client_get_default ();
+ enabled = gconf_client_get_bool (client, "/apps/gnome-session/options/enable_motd", NULL);
+ g_object_unref (client);
+
+ if (!enabled)
+ return;
+
+ /* load the MOTD file */
+ if (gnome_vfs_monitor_add (&monitor_handle, "file:///etc/motd", GNOME_VFS_MONITOR_FILE,
+ (GnomeVFSMonitorCallback) motd_changed_cb, NULL) != GNOME_VFS_OK)
+ {
+ g_printerr ("Failed to setup monitor for /etc/motd file");
+ }
+
+ if (g_file_get_contents ("/etc/motd", &contents, &length, NULL))
+ {
+ if (length > 0)
+ motd_contents = contents;
+ }
+
+ /* install a timeout to show the message first time */
+ g_timeout_add (8000, (GSourceFunc) on_login_cb, NULL);
+}
+
+void
+gsm_motd_stop (void)
+{
+ if (monitor_handle)
+ {
+ gnome_vfs_monitor_cancel (monitor_handle);
+ monitor_handle = NULL;
+ }
+
+ if (motd_contents)
+ {
+ g_free (motd_contents);
+ motd_contents = NULL;
+ }
+}
Index: gnome-session/Makefile.am
===================================================================
--- gnome-session/Makefile.am.orig
+++ gnome-session/Makefile.am
@@ -4,6 +4,7 @@ defaultdir = $(datadir)/gnome
INCLUDES = \
$(GNOME_SESSION_CFLAGS) \
+ $(LIBNOTIFY_CFLAGS) \
$(STANDARD_PROPERTIES_CFLAGS) \
$(WARN_CFLAGS) \
$(DISABLE_DEPRECATED_CFLAGS) \
@@ -25,7 +26,7 @@ STANDARD_PROPERTIES_CFLAGS =
-DDATADIR=\""$(datadir)"\" \
$(NULL)
-gnome_session_LDADD = $(X_LIBS) $(GNOME_SESSION_LIBS) $(LIBWRAP_LIBS)
+gnome_session_LDADD = $(X_LIBS) $(GNOME_SESSION_LIBS) $(LIBWRAP_LIBS) $(LIBNOTIFY_LIBS)
gnome_session_save_LDADD = $(GNOME_SESSION_LIBS)
gnome_session_remove_LDADD = $(GNOME_SESSION_LIBS)
gnome_session_properties_LDADD = $(GNOME_SESSION_LIBS)
@@ -83,6 +84,8 @@ gnome_session_SOURCES = \
gsm-keyring.h \
gsm-gsd.c \
gsm-gsd.h \
+ gsm-motd.c \
+ gsm-motd.h \
gsm-protocol.c \
gsm-protocol.h \
gsm-remote-desktop.c \
Index: gnome-session/main.c
===================================================================
--- gnome-session/main.c.orig
+++ gnome-session/main.c
@@ -53,6 +53,7 @@
#include "gsm-keyring.h"
#include "gsm-at-startup.h"
#include "gsm-remote-desktop.h"
+#include "gsm-motd.h"
#include "migrate-trash.h"
/* Flag indicating autosave - user won't be prompted on logout to
@@ -668,8 +669,12 @@ main (int argc, char *argv[])
migrate_trash();
+ gsm_motd_start ();
+
gtk_main ();
+ gsm_motd_stop ();
+
gsm_remote_desktop_cleanup ();
gsm_sound_logout ();

View File

@ -1,13 +0,0 @@
--- gnome-session/main.c
+++ gnome-session/main.c
@@ -483,8 +483,8 @@
major = atoi (versions [1]);
if ((major % 2) != 0)
{
- g_setenv ("G_DEBUG", "fatal_criticals", FALSE);
- g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL);
+/* g_setenv ("G_DEBUG", "fatal_criticals", FALSE);
+ g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); */
}
}
g_strfreev (versions);

View File

@ -1,70 +0,0 @@
Index: gnome-session/gsm-autostart.c
===================================================================
--- gnome-session/gsm-autostart.c (revision 4626)
+++ gnome-session/gsm-autostart.c (working copy)
@@ -260,3 +260,25 @@
return list;
}
+
+gchar *
+gsm_autostart_parse_command_line (GKeyFile *keyfile)
+{
+ gchar *p, *result;
+ GString *gs;
+ gchar *exec = gsm_key_file_get_string (keyfile, "Exec");
+
+ gs = g_string_new (NULL);
+ for (p = exec; *p != '\0'; p++)
+ {
+ if (*p == '%' && (p[1] == 'u' || p[1] == 'U'))
+ p++;
+ else
+ g_string_append_c (gs, *p);
+ }
+
+ result = gs->str;
+ g_string_free (gs, FALSE);
+
+ return result;
+}
Index: gnome-session/gsm-autostart.h
===================================================================
--- gnome-session/gsm-autostart.h (revision 4626)
+++ gnome-session/gsm-autostart.h (working copy)
@@ -43,6 +43,9 @@
GsmAutostartFreeFunc free_handler,
gboolean enabled_only);
+gchar *
+gsm_autostart_parse_command_line (GKeyFile *keyfile);
+
G_END_DECLS
#endif /* GSM_AUTOSTART_H */
Index: gnome-session/startup-programs.c
===================================================================
--- gnome-session/startup-programs.c (revision 4626)
+++ gnome-session/startup-programs.c (working copy)
@@ -117,7 +117,7 @@
if (client->name == NULL)
client->name = gsm_key_file_get_locale_string (keyfile, "GenericName");
- client->command = gsm_key_file_get_string (keyfile, "Exec");
+ client->command = gsm_autostart_parse_command_line (keyfile);
client->comment = gsm_key_file_get_locale_string (keyfile, "Comment");
client->enabled = gsm_key_file_get_boolean (keyfile,
"X-GNOME-Autostart-enabled",
Index: gnome-session/save.c
===================================================================
--- gnome-session/save.c (revision 4626)
+++ gnome-session/save.c (working copy)
@@ -373,7 +373,7 @@
Client *client;
SmProp *prop;
- exec = gsm_key_file_get_string (keyfile, "Exec");
+ exec = gsm_autostart_parse_command_line (keyfile);
if (!g_shell_parse_argv (exec, &argc, &argv, NULL))
{
g_free (exec);

View File

@ -1,141 +0,0 @@
Index: gnome-session/main.c
===================================================================
--- gnome-session/main.c.orig
+++ gnome-session/main.c
@@ -452,126 +452,6 @@ update_boolean (GConfClient *client,
*bool_value ? "On" : "Off");
}
-/* returns the hostname */
-static gchar *
-get_hostname (gboolean readable)
-{
- static gboolean init = FALSE;
- static gchar *result = NULL;
-
- if (!init)
- {
- char hostname[256];
-
- if (gethostname (hostname, sizeof (hostname)) == 0)
- result = g_strdup (hostname);
-
- init = TRUE;
- }
-
- if (result)
- return result;
- else
- return readable ? "(Unknown)" : NULL;
-}
-
-#ifdef ENABLE_IPV6
-/*Check whether the node is IPv6 enabled.*/
-static gboolean
-have_ipv6 (void)
-{
- int s;
-
- s = socket (AF_INET6, SOCK_STREAM, 0);
- if (s != -1) {
- close (s);
- return TRUE;
- }
- return FALSE;
-}
-#endif
-
-/* Check if a DNS lookup on `hostname` can be done */
-static gboolean
-check_for_dns (void)
-{
- char *hostname;
-
- hostname = get_hostname (FALSE);
-
- if (!hostname)
- return FALSE;
-
-#ifdef ENABLE_IPV6
- if (have_ipv6 ())
- {
- struct addrinfo hints, *result = NULL;
-
- memset (&hints, 0, sizeof(hints));
- hints.ai_socktype = SOCK_STREAM;
- hints.ai_flags = AI_CANONNAME;
-
- if (getaddrinfo (hostname, NULL, &hints, &result) != 0)
- return FALSE;
-
- if (!result->ai_canonname)
- return FALSE;
- }
- else
-#endif
- {
- /*
- * FIXME:
- * we should probably be a lot more robust here
- */
- if (!gethostbyname (hostname))
- return FALSE;
- }
-
- return TRUE;
-}
-
-enum {
- RESPONSE_LOG_IN,
- RESPONSE_TRY_AGAIN
-};
-
-static void
-gnome_login_check (void)
-{
- GtkWidget *tmp_msgbox = NULL;
-
- while (!check_for_dns ())
- {
- if (!tmp_msgbox)
- {
- tmp_msgbox = gtk_message_dialog_new (NULL, 0,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_NONE,
- _("Could not look up internet address for %s.\n"
- "This will prevent GNOME from operating correctly.\n"
- "It may be possible to correct the problem by adding\n"
- "%s to the file /etc/hosts."),
- get_hostname(TRUE), get_hostname(TRUE));
-
- gtk_dialog_add_buttons (GTK_DIALOG (tmp_msgbox),
- _("Log in Anyway"), RESPONSE_LOG_IN,
- _("Try Again"), RESPONSE_TRY_AGAIN,
- NULL);
-
- gtk_window_set_position (GTK_WINDOW (tmp_msgbox), GTK_WIN_POS_CENTER);
- }
-
- gtk_dialog_set_default_response (GTK_DIALOG (tmp_msgbox), RESPONSE_TRY_AGAIN);
-
- if (RESPONSE_TRY_AGAIN != gtk_dialog_run (GTK_DIALOG (tmp_msgbox)))
- break;
- }
-
- if (tmp_msgbox)
- gtk_widget_destroy (tmp_msgbox);
-}
-
static void
gsm_shutdown_gconfd (void)
{
@@ -651,9 +531,6 @@ main (int argc, char *argv[])
if (gsm_check_for_root ())
return 0;
- if (ORBit_proto_use ("IPv4") || ORBit_proto_use ("IPv6"))
- gnome_login_check ();
-
err = NULL;
g_spawn_command_line_sync (GCONF_SANITY_CHECK, NULL, NULL, &status, &err);
if (err != NULL)

View File

@ -1,111 +0,0 @@
Index: gnome-session/logout.c
===================================================================
RCS file: /cvs/gnome/gnome-session/gnome-session/logout.c,v
retrieving revision 1.60
diff -u -p -r1.60 logout.c
--- gnome-session/logout.c 26 Apr 2005 10:56:50 -0000 1.60
+++ gnome-session/logout.c 9 Feb 2006 12:16:45 -0000
@@ -43,14 +43,16 @@ enum
{
OPTION_LOGOUT,
OPTION_HALT,
- OPTION_REBOOT
+ OPTION_REBOOT,
+ OPTION_SUSPEND
};
static GConfEnumStringPair logout_options_lookup_table[] =
{
- { OPTION_LOGOUT, "logout" },
- { OPTION_HALT, "shutdown" },
- { OPTION_REBOOT, "restart" },
+ { OPTION_LOGOUT, "logout" },
+ { OPTION_HALT, "shutdown" },
+ { OPTION_REBOOT, "restart" },
+ { OPTION_SUSPEND, "suspend" },
{ 0, NULL }
};
@@ -329,13 +331,16 @@ display_gui (void)
gint response;
GtkWidget *halt = NULL;
GtkWidget *reboot = NULL;
+ GtkWidget *suspend = NULL;
GtkWidget *invisible;
gboolean halt_supported = FALSE;
gboolean reboot_supported = FALSE;
+ gboolean suspend_supported = FALSE;
gboolean retval = FALSE;
gboolean save_active = FALSE;
gboolean halt_active = FALSE;
gboolean reboot_active = FALSE;
+ gboolean suspend_active = FALSE;
GdmLogoutAction logout_action = GDM_LOGOUT_ACTION_NONE;
gboolean a11y_enabled;
GError *error = NULL;
@@ -431,8 +436,9 @@ display_gui (void)
halt_supported = gdm_supports_logout_action (GDM_LOGOUT_ACTION_SHUTDOWN);
reboot_supported = gdm_supports_logout_action (GDM_LOGOUT_ACTION_REBOOT);
+ suspend_supported = gdm_supports_logout_action (GDM_LOGOUT_ACTION_SUSPEND);
- if (halt_supported || reboot_supported)
+ if (halt_supported || reboot_supported || suspend_supported)
{
GtkWidget *title, *spacer;
GtkWidget *action_vbox, *hbox;
@@ -482,6 +488,13 @@ display_gui (void)
gtk_box_pack_start (GTK_BOX (action_vbox), r, FALSE, FALSE, 0);
gtk_widget_show (r);
}
+ if (suspend_supported)
+ {
+ r = suspend = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (r), _("_Suspend the computer"));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (r), (selected_option == OPTION_SUSPEND));
+ gtk_box_pack_start (GTK_BOX (action_vbox), r, FALSE, FALSE, 0);
+ gtk_widget_show (r);
+ }
}
gsm_center_window_on_screen (GTK_WINDOW (box), screen, monitor);
@@ -517,6 +530,9 @@ display_gui (void)
if (reboot)
reboot_active = GTK_TOGGLE_BUTTON (reboot)->active;
+ if (suspend)
+ suspend_active = GTK_TOGGLE_BUTTON (suspend)->active;
+
if (toggle_button)
save_active = GTK_TOGGLE_BUTTON (toggle_button)->active;
@@ -524,6 +540,8 @@ display_gui (void)
selected_option = OPTION_REBOOT;
else if (halt_active)
selected_option = OPTION_HALT;
+ else if (suspend_active)
+ selected_option = OPTION_SUSPEND;
else
selected_option = OPTION_LOGOUT;
@@ -545,14 +563,20 @@ display_gui (void)
case GTK_RESPONSE_OK:
/* We want to know if we should trash changes (and lose forever)
* or save them */
+ retval = TRUE;
if(save_active)
save_selected = save_active;
if (halt_active)
logout_action = GDM_LOGOUT_ACTION_SHUTDOWN;
else if (reboot_active)
logout_action = GDM_LOGOUT_ACTION_REBOOT;
+ else if (suspend_active)
+ {
+ logout_action = GDM_LOGOUT_ACTION_SUSPEND;
+ g_spawn_command_line_async ("powersave --suspend-to-disk", NULL);
+ retval = FALSE;
+ }
set_default_option (selected_option);
- retval = TRUE;
break;
default:
case GTK_RESPONSE_CANCEL:

View File

@ -1,99 +1,45 @@
diff -aurp gnome-session-2.22.1.1/gnome-session/main.c gnome-session-2.22.1.1-patched/gnome-session/main.c
--- gnome-session-2.22.1.1/gnome-session/main.c 2008-04-10 16:32:20.000000000 +0200
+++ gnome-session-2.22.1.1-patched/gnome-session/main.c 2008-05-16 15:28:42.777710000 +0200
@@ -47,6 +47,8 @@
#include "command.h"
#include "splash-widget.h"
#include "util.h"
+#include "prop.h"
+#include "session.h"
#include "gsm-dbus.h"
#include "gsm-sound.h"
#include "gsm-gsd.h"
@@ -600,6 +602,77 @@ gsm_shutdown_gconfd (void)
g_free (command);
}
+static void
+fix_wm (Session *session)
+{
+ GSList *cl, *p;
+ Client *client = NULL;
+ SmProp *prop = NULL;
+ char *compiz_enable_path;
--- gnome-session-2.23.4.1-pre/gnome-session/session.c 2008-06-17 08:24:45.000000000 -0500
+++ gnome-session-2.23.4.1-work/gnome-session/session.c 2008-07-20 22:32:00.000000000 -0500
@@ -347,6 +347,8 @@ append_legacy_session_apps (GsmSession *
{
GKeyFile *saved;
int num_clients, i;
+ gchar *compiz_enable_path;
+ gboolean compiz_enabled = FALSE;
+
saved = g_key_file_new ();
if (!g_key_file_load_from_file (saved, session_filename, 0, NULL))
@@ -356,12 +358,33 @@ append_legacy_session_apps (GsmSession *
return;
}
+ /* See if compiz is enabled; if it is, we have to replace legacy metacity/compiz
+ * entries with gnome-wm */
+ compiz_enable_path = g_build_filename (g_get_user_config_dir (), "compiz", "enable-compiz", NULL);
+ compiz_enabled = compiz_enable_path && g_file_test (compiz_enable_path, G_FILE_TEST_IS_REGULAR);
+ g_free (compiz_enable_path);
+
+ for (cl = session->client_list; cl; cl = cl->next)
+ {
+ client = cl->data;
+ if (client->match_rule != MATCH_ID)
+ continue;
num_clients = g_key_file_get_integer (saved, "Default", "num_clients", NULL);
for (i = 0; i < num_clients; i++)
{
GsmApp *app = gsm_app_resumed_new_from_legacy_session (saved, i);
if (app)
+ {
+ GsmAppResumed *app_resumed = (GsmAppResumed *) app;
+
+ prop = find_property_by_name (client, SmRestartCommand);
+ if (!prop)
+ continue;
+ /* Maybe replace legacy metacity/compiz with gnome-wm */
+ if (app_resumed->restart_command &&
+ (((!strcmp (app_resumed->restart_command, "metacity") ||
+ !strcmp (app_resumed->restart_command, "/usr/bin/metacity")) && compiz_enabled) ||
+ (!strcmp (app_resumed->restart_command, "compiz") ||
+ !strcmp (app_resumed->restart_command, "/usr/bin/compiz"))))
+ {
+ g_free (app_resumed->restart_command);
+ app_resumed->restart_command = g_strdup ("gnome-wm");
+ }
+
+ if (!strcmp (prop->vals[0].value, "gnome-wm"))
+ return;
+ else if (((!strcmp (prop->vals[0].value, "metacity") || !strcmp (prop->vals[0].value, "/usr/bin/metacity")) && compiz_enabled) ||
+ (!strcmp (prop->vals[0].value, "compiz") || !strcmp (prop->vals[0].value, "/usr/bin/compiz")))
+ break;
+ }
+
+ if (!cl)
+ return;
+
+ /* At this point, either client is compiz or client is metacity and we're
+ * supposed to run compiz-manager. Either way, replace it with gnome-wm. */
+
+ for (p = client->properties; p; p = p->next)
+ SmFreeProperty (p->data);
+ g_slist_free (client->properties);
+
+ client->properties = NULL;
+
+ prop = malloc (sizeof (SmProp));
+ prop->name = strdup (SmRestartCommand);
+ prop->type = strdup (SmLISTofARRAY8);
+ if (client->id)
+ prop->num_vals = 3;
+ else
+ prop->num_vals = 1;
+ prop->vals = malloc (prop->num_vals * sizeof (SmPropValue));
+ prop->vals[0].value = strdup ("gnome-wm");
+ prop->vals[0].length = strlen (prop->vals[0].value);
+ if (client->id)
+ {
+ prop->vals[1].value = strdup ("--sm-client-id");
+ prop->vals[1].length = strlen (prop->vals[1].value);
+ prop->vals[2].value = strdup (client->id);
+ prop->vals[2].length = strlen (prop->vals[2].value);
+ }
+ client->properties = g_slist_prepend (client->properties, prop);
+
+ prop = malloc (sizeof (SmProp));
+ prop->name = strdup (GsmPriority);
+ prop->type = strdup (SmCARD8);
+ prop->num_vals = 1;
+ prop->vals = malloc (sizeof (SmPropValue));
+ prop->vals[0].value = calloc (2, 1);
+ prop->vals[0].length = 1;
+ client->properties = g_slist_prepend (client->properties, prop);
+}
+
int
main (int argc, char *argv[])
{
@@ -777,6 +850,8 @@ main (int argc, char *argv[])
g_setenv ("GNOME_DESKTOP_SESSION_ID", session_name, TRUE);
the_session = read_session (session_name);
append_app (session, app);
+ }
}
+ fix_wm (the_session);
+
gsm_remote_desktop_start ();
if (splashing)
g_key_file_free (saved);

View File

@ -1,3 +1,38 @@
-------------------------------------------------------------------
Sun Jul 20 23:21:00 CST 2008 - hpj@suse.de
- gnome-session-suspend.patch removed; no longer needed and code
changed radically.
- gnome-session-DESKTOP_LAUNCH.patch removed; no longer needed.
- gnome-session-remove-dns-warning.patch removed; no longer needed
as the code in question was also removed from upstream.
- gnome-session-2.12.0-su-session-management.patch rewritten and
renamed to gnome-session-ice-auth-for-suid.patch. Performs same
function as before.
- gnome-session-2.19.92-kdm-support.patch rewritten and renamed
to gnome-session-kdm-support.patch. Performs same functions as
before.
- gnome-session-motd.patch removed; not the right solution and
there is discussion upstream about solving it there. Also does
not have any BNC bug justifying its existence.
- gnome-session-wm-switch.patch rewritten/rebased.
- gnome-session-no-devel-fatals.patch removed; no longer needed.
- gnome-session-2.20.0-safe-a11y-startup.patch removed; no longer
needed. Was changing the order of startup for daemons - new
upstream codebase fixes this.
- gnome-session-gcc4.3-fixes.patch removed; no longer needed.
- gnome-session-parse-autostart-command-line.patch removed; no
longer needed.
- gnome-session-include-unistd.patch removed; no longer needed.
- gnome-session-bnc385150-performance-hostname.patch removed; no
longer needed. The new upstream code specifically addresses this.
- gnome-session-gnome-wm-compiz-manager.patch rebased; only path
changed.
- gnome-session-bnc389137-splash-layout.patch rebased. Dropped the
padding changes, but kept the change in icon size. Upstream
padding increased, more than matching ours. May need further
adjustment.
-------------------------------------------------------------------
Fri Jun 27 21:36:06 CEST 2008 - mauro@suse.de

View File

@ -16,8 +16,9 @@ BuildRequires: control-center2-devel fdupes gnome-common gnome-desktop-devel gn
License: GPL v2 or later; LGPL v2.1 or later
Group: System/GUI/GNOME
Version: 2.23.4.1
Release: 1
Release: 14
Summary: Session Tools for the GNOME 2.x Desktop
Url: http://www.gnome.org
Source: %{name}-%{version}.tar.bz2
Source1: gnome
Source2: gnome.desktop
@ -29,39 +30,19 @@ Source4: SuSE.desktop
Source5: suse-help.svg
#PATCH-FIX-OPENSUSE Install files needed by /usr/bin/gnome suse.svg bnc388735 sbrabec@suse.cz
Source6: suse.svg
#PATCH-NEEDS-REBASE (was: #PATCH-FIX-UPSTREAM gnome-session-suspend.patch bnc73000 rodrigo@novell.com)
Patch0: gnome-session-suspend.patch
#PATCH-NEEDS-REBASE (was: #PATCH-FIX-OPENSUSE gnome-session-DESKTOP_LAUNCH.patch -- What was the original motivation for this?)
Patch1: gnome-session-DESKTOP_LAUNCH.patch
#PATCH-NEEDS-REBASE (was: #PATCH-FIX-UPSTREAM gnome-session-remove-dns-warning.patch federico@novell.com -- Apparently a patch from Meeks, needs review)
Patch3: gnome-session-remove-dns-warning.patch
#PATCH-NEEDS-REBASE (was: #PATCH-FIX-UPSTREAM gnome-session-2.12.0-su-session-management.patch hpj@novell.com)
Patch5: gnome-session-2.12.0-su-session-management.patch
#PATCH-NEEDS-REBASE (was: #PATCH-FIX-UPSTREAM gnome-session-2.19.92-kdm-support.patch hpj@novell.com)
Patch7: gnome-session-2.19.92-kdm-support.patch
#PATCH-NEEDS-REBASE (was: #PATCH-FEATURE-UPSTREAM gnome-session-motd.patch bgo159604 rodrigo@novell.com -- Needs to get upstream or be dropped)
Patch8: gnome-session-motd.patch
#PATCH-NEEDS-REBASE (was: #PATCH-FIX-OPENSUSE gnome-session-wm-switch.patch bnc180506 danw@novell.com)
Patch12: gnome-session-wm-switch.patch
#PATCH-NEEDS-REBASE (was: #PATCH-FIX-OPENSUSE gnome-session-no-devel-fatals.patch jpr@novell.com -- Prevents badly breaking factory for people)
Patch13: gnome-session-no-devel-fatals.patch
#PATCH-FIX-UPSTREAM gnome-session-ice-auth-for-suid.patch hpj@novell.com -- Carries ICE auth over to other UIDs in this session using an env var.
Patch0: gnome-session-ice-auth-for-suid.patch
#PATCH-FIX-UPSTREAM gnome-session-kdm-support.patch hpj@novell.com -- Adds support for KDM logout commands.
Patch1: gnome-session-kdm-support.patch
#PATCH-FIX-OPENSUSE gnome-session-wm-switch.patch bnc180506 danw@novell.com -- Fixes legacy sessions to use gnome-wm instead of metacity/compiz.
Patch2: gnome-session-wm-switch.patch
#PATCH-NEEDS-REBASE (was: #PATCH-FEATURE-OPENSUSE gnome-session-tile-ui.patch cgaisford@novell.com -- Feature from SLED 10 SP1)
Patch14: gnome-session-tile-ui.patch
#PATCH-NEEDS-REBASE (was: #PATCH-FIX-UPSTREAM gnome-session-2.20.0-safe-a11y-startup.patch bnc302316 bgo469958 cgaisford@novell.com -- hpj@novell.com modified this for bnc332498)
Patch15: gnome-session-2.20.0-safe-a11y-startup.patch
#PATCH-NEEDS-REBASE (was: #PATCH-FIX-OPENSUSE gnome-session-sound.patch bnc294396 bgo466458 cgaisford@novell.com -- there is a newer version upstream from mandriva )
Patch17: gnome-session-gcc4.3-fixes.patch
Url: http://www.gnome.org
#PATCH-NEEDS-REBASE (was: #PATCH-FIX-OPENSUSE gnome-session-parse-autostart-command-line.patch bnc180126 rodrigo@novell.com -- this is a temporary patch, remove when we update to the new gnome-session (2.23/2.24) )
Patch18: gnome-session-parse-autostart-command-line.patch
#PATCH-NEEDS-REBASE (was: # PATCH-FIX-UPSTREAM gnome-session-include-unistd.patch maw@novell.com -- Vincent says he'll accept this soon)
Patch19: gnome-session-include-unistd.patch
#PATCH-NEEDS-REBASE (was: # PATCH-FIX-UPSTREAM gnome-session-bnc385150-performance-hostname.patch bnc385150 vuntz@novell.com -- Extreme slowness on some network setup)
Patch20: gnome-session-bnc385150-performance-hostname.patch
#PATCH-NEEDS-REBASE (was: # PATCH-FEATURE-OPENSUSE gnome-session-gnome-wm-compiz-manager.patch vuntz@novell.com -- Launch compiz-manager when configured)
Patch21: gnome-session-gnome-wm-compiz-manager.patch
#PATCH-NEEDS-REBASE (was: # PATCH-FIX-OPENSUSE gnome-session-bnc389137-splash-layout.patch bnc389137 vuntz@novell.com -- Improve layout with our splash screen.)
Patch22: gnome-session-bnc389137-splash-layout.patch
# <hpj> Not sure about this one. Needs major porting.
Patch3: gnome-session-tile-ui.patch
#PATCH-FEATURE-OPENSUSE gnome-session-gnome-wm-compiz-manager.patch vuntz@novell.com -- Launch compiz-manager when configured.
Patch4: gnome-session-gnome-wm-compiz-manager.patch
#PATCH-FIX-OPENSUSE gnome-session-bnc389137-splash-layout.patch bnc389137 vuntz@novell.com -- Improve layout with our splash screen.
Patch5: gnome-session-bnc389137-splash-layout.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Recommends: control-center2
Obsoletes: gnome-core
@ -117,22 +98,12 @@ Authors:
%prep
%setup -q
#gnome-patch-translation-prepare
#%patch0
#%patch1 -p1
#%patch3
#%patch5 -p1
#%patch7
#%patch8
#%patch12 -p1
#%patch13
#%patch14 -p1
#%patch15 -p1
#%patch17 -p1
#%patch18
#%patch19 -p0
#%patch20 -p1
#%patch21 -p1
#%patch22
%patch0 -p1
%patch1 -p1
%patch2 -p1
# %patch3 -p1
%patch4 -p1
%patch5 -p1
#gnome-patch-translation-update
%build
@ -203,6 +174,38 @@ rm -rf $RPM_BUILD_ROOT
%files lang -f %{name}-2.0.lang
%changelog
* Mon Jul 21 2008 hpj@suse.de
- gnome-session-suspend.patch removed; no longer needed and code
changed radically.
- gnome-session-DESKTOP_LAUNCH.patch removed; no longer needed.
- gnome-session-remove-dns-warning.patch removed; no longer needed
as the code in question was also removed from upstream.
- gnome-session-2.12.0-su-session-management.patch rewritten and
renamed to gnome-session-ice-auth-for-suid.patch. Performs same
function as before.
- gnome-session-2.19.92-kdm-support.patch rewritten and renamed
to gnome-session-kdm-support.patch. Performs same functions as
before.
- gnome-session-motd.patch removed; not the right solution and
there is discussion upstream about solving it there. Also does
not have any BNC bug justifying its existence.
- gnome-session-wm-switch.patch rewritten/rebased.
- gnome-session-no-devel-fatals.patch removed; no longer needed.
- gnome-session-2.20.0-safe-a11y-startup.patch removed; no longer
needed. Was changing the order of startup for daemons - new
upstream codebase fixes this.
- gnome-session-gcc4.3-fixes.patch removed; no longer needed.
- gnome-session-parse-autostart-command-line.patch removed; no
longer needed.
- gnome-session-include-unistd.patch removed; no longer needed.
- gnome-session-bnc385150-performance-hostname.patch removed; no
longer needed. The new upstream code specifically addresses this.
- gnome-session-gnome-wm-compiz-manager.patch rebased; only path
changed.
- gnome-session-bnc389137-splash-layout.patch rebased. Dropped the
padding changes, but kept the change in icon size. Upstream
padding increased, more than matching ours. May need further
adjustment.
* Fri Jun 27 2008 mauro@suse.de
- Update to version 2.23.4.1
- Brand new code base, to know the new architecture, go to:
@ -216,7 +219,7 @@ rm -rf $RPM_BUILD_ROOT
* Tue Jun 03 2008 rodrigo@suse.de
- Export SDL_AUDIODRIVER=pulse in gnome startup script to have
SDL applications use PulseAudio when in GNOME (bnc#394721)
* Sat May 24 2008 sreeves@suse.de
* Fri May 23 2008 sreeves@suse.de
- Update the "gnome" script to not start gpk-update-icon on live install
BNC #390658
* Mon May 19 2008 sbrabec@suse.cz
@ -253,7 +256,7 @@ rm -rf $RPM_BUILD_ROOT
performance issue when launching new apps in GNOME on a default
beta1 install -- extreme slowness can happen depending on the
network setup. Fix bnc#385150, patch by Michael Meeks.
* Wed Apr 30 2008 vuntz@suse.de
* Tue Apr 29 2008 vuntz@suse.de
- Actually copy the right live-installer.desktop (instead of a
non-existing file) in gnome script so the installer icon appears
on the desktop.
@ -280,7 +283,7 @@ rm -rf $RPM_BUILD_ROOT
* Fri Mar 28 2008 rodrigo@suse.de
- Added gnome-session-parse-autostart-command-line.patch to deal
correctly with placeholders in command lines (bnc#180126)
* Fri Mar 14 2008 maw@suse.de
* Thu Mar 13 2008 maw@suse.de
- Update to version 2.22.0:
+ Remove hard esound dependency
+ Don't start the sound server, and play the login sound when
@ -288,7 +291,7 @@ rm -rf $RPM_BUILD_ROOT
+ Updated translations
* Mon Mar 10 2008 sbrabec@suse.cz
- Require bug-buddy and its bi-arch counterpart (bnc#354164).
* Wed Mar 05 2008 maw@suse.de
* Tue Mar 04 2008 maw@suse.de
- Update to version 2.21.92:
+ Require recent versions of gnome-keyring
+ Correctly handle the env. variables given by gnome-keyring to
@ -311,7 +314,7 @@ rm -rf $RPM_BUILD_ROOT
- Remove gnome-session-splash-screen.diff its obsoleted by bgo116814
(originally bnc5780)
- Remove handling of SUSE Linux 10.0 in the spec, its EOL
* Thu Jan 31 2008 maw@suse.de
* Wed Jan 30 2008 maw@suse.de
- Update to version 2.21.90:
+ Set orientation with randr too (Luca Cavalli)
+ Fix warnings and plug leaks
@ -321,7 +324,7 @@ rm -rf $RPM_BUILD_ROOT
+ Change capplet title
+ HIG fixes in the capplet
+ Updated translations.
* Fri Nov 09 2007 hpj@suse.de
* Thu Nov 08 2007 hpj@suse.de
- Rename gnome-session-main-init.patch to
gnome-session-2.20.0-safe-a11y-startup.patch, and change it so
a11y is started up before the user session, but still after
@ -335,32 +338,32 @@ rm -rf $RPM_BUILD_ROOT
- Updated gnome script to detect live install user and create
desktop entires in the ~/.config/autostart directory to disable
beagle and opensuse-updater applets. Bug #326801
* Thu Sep 20 2007 cgaisford@novell.com
* Wed Sep 19 2007 cgaisford@novell.com
- Updated gnome script to create live install desktop file if the
system is booted into a live install configuration. Also depends
on an update to the gnome2-SuSE package which contains the desktop
file. Bug #310543
* Wed Sep 19 2007 mauro@suse.de
* Tue Sep 18 2007 mauro@suse.de
- Update to version 2.20.0
+ Updated translations
* Sat Sep 15 2007 cgaisford@novell.com
* Fri Sep 14 2007 cgaisford@novell.com
- Modified the gnome script to copy the SuSE.desktop file to the
desktop which points to the greeter app #300773
* Thu Sep 13 2007 jpr@suse.de
- Ensure ~/Desktop exists before copying to it (#310363)
* Thu Sep 13 2007 sbrabec@suse.cz
- Fixed background resetting in /usr/bin/gnome (#309946).
* Thu Sep 13 2007 cgaisford@novell.com
* Wed Sep 12 2007 cgaisford@novell.com
- Fixed up kdm-support patch to support gnome sessions in KDM
Novell Bug #308022
* Mon Sep 10 2007 maw@suse.de
- Update to versino 2.19.92:
+ Fix compiz support in gnome-wm
+ Updated translations.
* Sat Sep 08 2007 lewing@suse.de
* Fri Sep 07 2007 lewing@suse.de
- Copy GnomeOnlineHelp.desktop to ~/Desktop the first time 10.3
runs. Part of bnc #300773
* Fri Sep 07 2007 cgaisford@novell.com
* Thu Sep 06 2007 cgaisford@novell.com
- Created a patch to fix login and logout sounds in gnome-session
Novell bug 294396 and bugzilla.gnome.org #466458
* Tue Sep 04 2007 maw@suse.de
@ -370,7 +373,7 @@ rm -rf $RPM_BUILD_ROOT
* Fri Aug 31 2007 maw@suse.de
- Update to version 2.19.90:
+ Updated translations.
* Wed Aug 29 2007 cgaisford@novell.com
* Tue Aug 28 2007 cgaisford@novell.com
- Further testing showed that the a11y needs to be done much lower
in the loop so I've moved it down right before the gtk-main
* Mon Aug 27 2007 cgaisford@novell.com
@ -382,13 +385,13 @@ rm -rf $RPM_BUILD_ROOT
if they are not available. Fix for Novell Bug 238299
- Included patch to fix up load time that is pending review
upstream. I'll add it to the spec file once approved
* Wed Aug 08 2007 maw@suse.de
* Tue Aug 07 2007 maw@suse.de
- Use %%fdupes
- Split off a -lang subpackage.
* Sat Aug 04 2007 dreveman@suse.de
* Fri Aug 03 2007 dreveman@suse.de
- Update for compiz 0.5.2, which need glib plugin to be loaded
before gconf plugin.
* Fri Aug 03 2007 cgaisford@suse.de
* Thu Aug 02 2007 cgaisford@suse.de
- Fixed up the tile-ui patch to work with the new gnome
* Thu Aug 02 2007 maw@suse.de
- Update to version 2.19.6:
@ -494,7 +497,7 @@ rm -rf $RPM_BUILD_ROOT
* Yang Zhang (zh_CN)
* Wed Apr 04 2007 sbrabec@suse.cz
- Session start script (gnome) cleanup (#254439).
* Wed Apr 04 2007 jhargadon@suse.de
* Tue Apr 03 2007 jhargadon@suse.de
- specfile cleanup (#255906)
* Mon Mar 19 2007 jpr@suse.de
- Update to 2.18.0
@ -508,7 +511,7 @@ rm -rf $RPM_BUILD_ROOT
* Translations
* Wed Mar 14 2007 sbrabec@suse.cz
- Fixed at-spi-registryd path (#254403).
* Fri Mar 09 2007 maw@suse.de
* Thu Mar 08 2007 maw@suse.de
- Update to version 2.17.91.
Session Properties Dialog
* Update categories in the .desktop file for the new control center
@ -579,19 +582,19 @@ rm -rf $RPM_BUILD_ROOT
* Use Program instead of Command in the capplet (Tom Tromey)
* Fri Mar 02 2007 sbrabec@suse.cz
- Do not own /usr/share/xsessions (#229172).
* Tue Feb 13 2007 cgaisford@novell.com
* Mon Feb 12 2007 cgaisford@novell.com
- updated the UI from changes make in SLED.
* Mon Jan 08 2007 sbrabec@suse.cz
* Sun Jan 07 2007 sbrabec@suse.cz
- Prefix changed to /usr.
- Spec file cleanup.
* Sat Dec 23 2006 federico@novell.com
* Fri Dec 22 2006 federico@novell.com
- Removed the part of /usr/bin/gnome that overwrites the
/desktop/gnome/font_rendering/dpi setting in GConf upon the user's
first login. With an updated control-center2 package,
gnome-settings-daemon will take care of figuring out the right DPI
value. Fixes the gnome-session part of
https://bugzilla.novell.com/show_bug.cgi?id=217790.
* Sun Oct 15 2006 danw@suse.de
* Sat Oct 14 2006 danw@suse.de
- Remove dead patches
- Update and re-enable gnome-session-remove-dns-warning.patch
* Fri Oct 13 2006 dreveman@suse.de
@ -609,7 +612,7 @@ rm -rf $RPM_BUILD_ROOT
- update to version 2.16.0
- Updated splash screen
- translation updates
* Thu Aug 31 2006 jhargadon@suse.de
* Wed Aug 30 2006 jhargadon@suse.de
- update to version 2.15.92
- Fix crash caused by debug output on Solaris
- translation updates
@ -628,27 +631,27 @@ rm -rf $RPM_BUILD_ROOT
- Fix edition of startup programs containing a space in a command line
argument
- Add gnome-keyring dependency
* Wed Aug 02 2006 danw@suse.de
* Tue Aug 01 2006 danw@suse.de
- If the session explicitly specifies metacity or compiz, but
the "wrong" X server for that wm is running, switch back to
gnome-wm. #180506
* Fri Jun 16 2006 danw@suse.de
- Pass --replace to compiz and gnome-window-decorator in case the
copies run by gdm don't exit properly. #185296
* Tue Jun 13 2006 rodrigo@suse.de
* Mon Jun 12 2006 rodrigo@suse.de
- Added patch to create ~/.config/autostart before starting the
migration from previous versions (#169509)
* Fri Jun 02 2006 gekker@suse.de
- Fix pager on upgrade (#181264)
* Thu Jun 01 2006 jpr@suse.de
* Wed May 31 2006 jpr@suse.de
- Don't run the migration script for new users (#179332)
* Thu May 25 2006 joeshaw@suse.de
* Wed May 24 2006 joeshaw@suse.de
- Fix the gnome script to not break when setting the background on
multihead setups. Patch from Erik Jacobsen. (bnc #178388)
* Sun May 21 2006 jpr@suse.de
- Reset the user's UI if upgrading from NLD9/SLES9 to SLED10, leave ui
for SLES10 upgrades (#174123)
* Sat May 13 2006 hpj@suse.de
* Fri May 12 2006 hpj@suse.de
- Update keyring unlockage patch to try both CASA's
Gnome_Keyring_Default and Desktop passwords. Part of fix for
Novell bug #174093.
@ -659,7 +662,7 @@ rm -rf $RPM_BUILD_ROOT
- Update gnome-wm to pick metacity or compiz based on whether it's
actually running under Xgl or not, regardless of what
/etc/sysconfig/displaymanager says. Fixes Xnest logins. #170839.
* Wed May 03 2006 joeshaw@suse.de
* Tue May 02 2006 joeshaw@suse.de
- Don't write out a font using raw XML to the gconf database,
that's wrong and evil. Instead, try to set the desktop's DPI
value using gconftool-2. (bnc #171096)
@ -672,14 +675,14 @@ rm -rf $RPM_BUILD_ROOT
* Thu Apr 13 2006 sbrabec@suse.cz
- Call %%suse_update_desktop_file.
- Use new control-center Categories instead of old ones.
* Sat Apr 08 2006 danw@suse.de
* Fri Apr 07 2006 danw@suse.de
- Patch gnome-wm to prefer compiz when Xgl is running
* Wed Apr 05 2006 hpj@suse.de
- Fix keyring unlock patch to use g_strlcpy() correctly again.
Fixes bug #159593 together with a CASA fix.
* Fri Mar 31 2006 rodrigo@suse.de
- Added missing "/" for /etc/xdg/autostart searching (#161322)
* Tue Mar 28 2006 jpr@suse.de
* Mon Mar 27 2006 jpr@suse.de
- Handle only shipping 2 sizes of backgrounds
* Tue Mar 21 2006 rodrigo@suse.de
- Added support for /etc/xdg/autostart directory, so that
@ -696,7 +699,7 @@ rm -rf $RPM_BUILD_ROOT
- Removed gnome-session-default-applications.patch, all needed
applications are now started, if installed, via the autostart
mechanism.
* Tue Mar 07 2006 rodrigo@suse.de
* Mon Mar 06 2006 rodrigo@suse.de
- Fixed support for multiple system autostart directories.
- Disable GUI operations for system-wide files (#154755).
* Thu Mar 02 2006 rodrigo@suse.de
@ -704,20 +707,20 @@ rm -rf $RPM_BUILD_ROOT
- Use g_strlcpy instead of strcpy when copying passwords.
* Wed Feb 22 2006 rodrigo@suse.de
- Added gnome-session-gsd-early-start.patch that fixes #150256.
* Fri Feb 17 2006 rodrigo@suse.de
* Thu Feb 16 2006 rodrigo@suse.de
- Don't try to remove non-existing files (#145870)
* Thu Feb 16 2006 rodrigo@suse.de
- Updated gnome-session-suspend-patch to make suspend work as
expected (#117491)
* Wed Feb 15 2006 rodrigo@suse.de
- Added MOTD on login, as requested by customer.
* Mon Feb 13 2006 hpj@suse.de
* Sun Feb 12 2006 hpj@suse.de
- Added patch to support KDM's logout options.
* Fri Feb 10 2006 joeshaw@suse.de
- Remove the beagled invocation from the /usr/X11R6/bin/gnome
shell script; it gets invoked through the new autostart
mechanism now. (bnc #150041)
* Thu Feb 09 2006 rodrigo@suse.de
* Wed Feb 08 2006 rodrigo@suse.de
- Updated gnome-session-suspend.patch to not exit the X session
when suspend is selected on the logout dialog (117491)
* Wed Feb 08 2006 joeshaw@suse.de
@ -730,10 +733,10 @@ rm -rf $RPM_BUILD_ROOT
* Mon Feb 06 2006 hpj@suse.de
- Fixed gnome-keyring-unlock patch to give correct soname for
casa.
* Mon Feb 06 2006 hpj@suse.de
* Sun Feb 05 2006 hpj@suse.de
- Updated gnome-keyring-unlock patch with dlopen hack from CASA
team. I have no idea why this is required.
* Mon Feb 06 2006 ro@suse.de
* Sun Feb 05 2006 ro@suse.de
- make it build on x86_64 (adding libdir to CASA unlock patch)
* Fri Feb 03 2006 rodrigo@suse.de
- Added gnome-session-rdesktop.diff, that fixes hang on login when
@ -746,7 +749,7 @@ rm -rf $RPM_BUILD_ROOT
* Sat Jan 28 2006 hpj@suse.de
- Added patch to unlock default GNOME keyring using the CASA
password, optionally creating it if it doesn't exist.
* Fri Jan 27 2006 hpj@suse.de
* Thu Jan 26 2006 hpj@suse.de
- Set the ICEAUTHORITY env var so programs running as root can
get to the cookies. Eliminates hangs on logout.
* Wed Jan 25 2006 mls@suse.de
@ -768,7 +771,7 @@ rm -rf $RPM_BUILD_ROOT
- Updated autostart patch that includes code to migrate from the
old ~/.gnome2/session-manual to the .desktop file-based thing
in the user's home directory.
* Sun Jan 08 2006 dreveman@suse.de
* Sat Jan 07 2006 dreveman@suse.de
- Improved logout effect patch
* Thu Jan 05 2006 rodrigo@suse.de
- Small fix to previous patch to avoid crash.
@ -834,9 +837,9 @@ rm -rf $RPM_BUILD_ROOT
- Update splash for 10.0
* Tue Aug 09 2005 rodrigo@suse.de
- Update to 2.11.91, which includes fix for #102652
* Sat Aug 06 2005 gekker@suse.de
* Fri Aug 05 2005 gekker@suse.de
- Start gnome-volume-manager with session
* Thu Aug 04 2005 gekker@suse.de
* Wed Aug 03 2005 gekker@suse.de
- Start beagle by default, disable with ~/.dontrunbeagle
* Tue Aug 02 2005 gekker@suse.de
- Update to 2.11.90
@ -855,18 +858,18 @@ rm -rf $RPM_BUILD_ROOT
- Don't run beagle unless ~/.runbeagle exists (#74029)
* Sat Mar 19 2005 jody@suse.de
- Enable suspend if it is available. (#73000)
* Fri Mar 18 2005 clahey@suse.de
* Thu Mar 17 2005 clahey@suse.de
- Patch fixes freeze on login.
* Wed Mar 16 2005 sbrabec@suse.cz
- Fixed gnome-session-desktop-file.patch (#73047).
* Mon Mar 14 2005 clahey@suse.de
- Update gnome splash from artists.
* Thu Mar 10 2005 gekker@suse.de
* Wed Mar 09 2005 gekker@suse.de
- Update to version 2.10.0 (GNOME 2.10).
* Mon Mar 07 2005 gekker@suse.de
- mv suseplugger to default-apps patch
- launch netapplet, resapplet, and best on startup
* Sat Feb 26 2005 gekker@suse.de
* Fri Feb 25 2005 gekker@suse.de
- Add launch wrapper to launch beagled if installed in file gnome
* Wed Feb 09 2005 sbrabec@suse.cz
- Added session desktop file.
@ -897,7 +900,7 @@ rm -rf $RPM_BUILD_ROOT
* Fri Sep 10 2004 hhetter@suse.de
- run use_default_session again to make the 9.2 distribution
wallpapers accessible
* Fri Sep 10 2004 federico@ximian.com
* Thu Sep 09 2004 federico@ximian.com
- Added gnome-session-remove-purge-timeout.diff, to fix
http://bugzilla.gnome.org/show_bug.cgi?id=151664
- Changed gnome-session-suseplugger.patch to run suseplugger with
@ -912,22 +915,22 @@ rm -rf $RPM_BUILD_ROOT
- Fixes bug #61567
kdm shows 'Reboot' and 'Shutdown' options at the time
of logout.
* Fri Aug 06 2004 clahey@suse.de
* Thu Aug 05 2004 clahey@suse.de
- Added gnome-session-remove-dns-warning.patch from Federico.
* Fri Jul 16 2004 shprasad@suse.de
- Fixes bug #59918
Hides the splash-screen once the difault setting gets loaded.
* Thu Jul 08 2004 sbrabec@suse.cz
- Added DESKTOP_LAUNCH patch from Jan Holesovsky.
* Sat Jun 19 2004 dave@suse.de
* Fri Jun 18 2004 dave@suse.de
- Don't set the wallpaper or font in the gnome startup script.
* Sat Jun 12 2004 clahey@suse.de
* Fri Jun 11 2004 clahey@suse.de
- Added gnome-session-use-gdmctl.patch.
* Fri Jun 04 2004 clahey@suse.de
* Thu Jun 03 2004 clahey@suse.de
- Switch to Novell session splash screen.
* Thu Jun 03 2004 mibarra@suse.de
* Wed Jun 02 2004 mibarra@suse.de
- Make GNOME use suseplugger
* Wed May 12 2004 clahey@suse.de
* Tue May 11 2004 clahey@suse.de
- Added gnome-session-2.0.5-dithering.patch to use MAX dithering.
- Added gnome-session-desktop-file.patch to make gnome-session show
up in control-center.
@ -986,7 +989,7 @@ rm -rf $RPM_BUILD_ROOT
- Removed distribution desktop files.
* Wed May 28 2003 sbrabec@suse.cz
- Compress manpages.
* Wed May 28 2003 ro@suse.de
* Tue May 27 2003 ro@suse.de
- added manpages to filelist
* Tue Mar 18 2003 sbrabec@suse.cz
- Variables already set in profile files removed from session startup
@ -1023,7 +1026,7 @@ rm -rf $RPM_BUILD_ROOT
- Added libjpeg to neededforbuild.
* Thu Nov 28 2002 hhetter@suse.de
- updated to version 2.0.9 [GNOME 2.0.3]
* Tue Nov 12 2002 ro@suse.de
* Mon Nov 11 2002 ro@suse.de
- changed neededforbuild <xf86 xdevel> to <x-devel-packages>
* Wed Nov 06 2002 hhetter@suse.de
- use correct kde-datadir
@ -1073,7 +1076,7 @@ rm -rf $RPM_BUILD_ROOT
* Thu Jun 20 2002 hhetter@suse.de
- updated to version 2.0.1
- don't install schemas while make install
* Mon Jun 17 2002 ro@suse.de
* Sun Jun 16 2002 ro@suse.de
- use libpng-devel-packages in neededforbuild
* Fri Jun 14 2002 hhetter@suse.de
- provide schema file