diff --git a/dbus-gdm.conf b/dbus-gdm.conf deleted file mode 100644 index 0bfd141..0000000 --- a/dbus-gdm.conf +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/gdm-2.17.7-vt-fallback.patch b/gdm-2.17.7-vt-fallback.patch deleted file mode 100644 index 1439c58..0000000 --- a/gdm-2.17.7-vt-fallback.patch +++ /dev/null @@ -1,63 +0,0 @@ -diff -upr gdm-2.19.5-pre/daemon/getvt.c gdm-2.19.5-post/daemon/getvt.c ---- gdm-2.19.5-pre/daemon/getvt.c 2007-07-30 13:51:14.000000000 -0500 -+++ gdm-2.19.5-post/daemon/getvt.c 2007-08-03 20:14:13.000000000 -0500 -@@ -181,8 +181,10 @@ get_free_vt_sys (int *vtfd) - int vtno; - unsigned short vtmask; - struct vt_stat vtstat; -+ guint v_state; - - *vtfd = -1; -+ fdv = -1; - - do { - errno = 0; -@@ -193,26 +195,33 @@ get_free_vt_sys (int *vtfd) - #endif - , 0); - } while G_UNLIKELY (errno == EINTR); -- if (fd < 0) -- return -1; - -- if (ioctl (fd, VT_GETSTATE, &vtstat) < 0) { -- VE_IGNORE_EINTR (close (fd)); -- return -1; -- } -+ if (fd >= 0 && ioctl (fd, VT_GETSTATE, &vtstat) >= 0) -+ v_state = vtstat.v_state; -+ else -+ v_state = 0; - -- for (vtno = gdm_daemon_config_get_value_int (GDM_KEY_FIRST_VT), vtmask = 1 << vtno; -- vtstat.v_state & vtmask; vtno++, vtmask <<= 1); -- if (!vtmask) { -- VE_IGNORE_EINTR (close (fd)); -- return -1; -+ for (vtno = gdm_daemon_config_get_value_int (GDM_KEY_FIRST_VT), vtmask = 1 << vtno; vtmask; vtno++, vtmask <<= 1) { -+ /* Is this console in use? */ -+ if (v_state & vtmask) -+ continue; -+ -+ /* No, try to open it */ -+ fdv = open_vt (vtno); -+ if (fdv >= 0) -+ break; -+ -+ /* If we're here, kernel indicated that the console was free, -+ * but we failed to open it. Just go on to higher VTs. */ - } - -- fdv = open_vt (vtno); -- if (fdv < 0) { -+ if (fdv < 0) -+ vtno = -1; -+ -+ if (fd >= 0) { - VE_IGNORE_EINTR (close (fd)); -- return -1; - } -+ - *vtfd = fdv; - return vtno; - } -Only in gdm-2.19.5-post: error.21177 diff --git a/gdm-2.19.3-dbus-security-tokens.patch b/gdm-2.19.3-dbus-security-tokens.patch deleted file mode 100644 index ad34d5d..0000000 --- a/gdm-2.19.3-dbus-security-tokens.patch +++ /dev/null @@ -1,98 +0,0 @@ ---- gdm-2.8.0.7/configure.ac~ 2007-01-19 14:00:55.000000000 -0500 -+++ gdm-2.8.0.7/configure.ac 2007-01-19 14:07:11.000000000 -0500 -@@ -141,7 +142,7 @@ PKG_CHECK_MODULES(VICIOUS, gtk+-2.0 >= $ - AC_SUBST(VICIOUS_CFLAGS) - AC_SUBST(VICIOUS_LIBS) - --PKG_CHECK_MODULES(DAEMON, gtk+-2.0 >= $GTK_REQUIRED) -+PKG_CHECK_MODULES(DAEMON, gtk+-2.0 >= $GTK_REQUIRED dbus-glib-1 >= $DBUS_REQUIRED) - AC_SUBST(DAEMON_CFLAGS) - AC_SUBST(DAEMON_LIBS) - ---- gdm-2.8.0.7/daemon/gdm.c~ 2007-01-19 14:00:55.000000000 -0500 -+++ gdm-2.8.0.7/daemon/gdm.c 2007-01-19 14:14:12.000000000 -0500 -@@ -42,6 +42,9 @@ - #include - #include - -+#define DBUS_API_SUBJECT_TO_CHANGE -+#include -+ - /* This should be moved to auth.c I suppose */ - - #include -@@ -70,6 +73,10 @@ - #include - #endif /* HAVE_LOGINDEVPERM */ - -+#define MONITOR_SERVICE "com.novell.Pkcs11Monitor" -+#define MONITOR_PATH "/com/novell/Pkcs11Monitor" -+#define MONITOR_INTERFACE "com.novell.Pkcs11Monitor" -+ - /* Local functions */ - static void gdm_config_parse (void); - static void gdm_handle_message (GdmConnection *conn, -@@ -78,6 +85,8 @@ static void gdm_handle_message (GdmConne - static void gdm_handle_user_message (GdmConnection *conn, - const char *msg, - gpointer data); -+static void gdm_reset_local_displays (void); -+static void gdm_watch_for_security_tokens (void); - static void gdm_daemonify (void); - static void gdm_safe_restart (void); - static void gdm_try_logout_action (GdmDisplay *disp); ---- gdm-2.19.3/daemon/gdm.c~ 2007-07-25 14:52:56.000000000 -0400 -+++ gdm-2.19.3/daemon/gdm.c 2007-07-25 14:56:18.000000000 -0400 -@@ -1800,6 +1800,8 @@ main (int argc, char *argv[]) - gdm_xdmcp_run (); - } - -+ gdm_watch_for_security_tokens (); -+ - /* We always exit via exit (), and sadly we need to g_main_quit () - * at times not knowing if it's this main or a recursive one we're - * quitting. -@@ -4355,3 +4357,43 @@ gdm_handle_user_message (GdmConnection * - gdm_connection_close (conn); - } - } -+ -+static void -+gdm_reset_local_displays (void) -+{ -+ GSList *li; -+ -+ for (li = gdm_daemon_config_get_display_list (); li != NULL; li = li->next) { -+ GdmDisplay *d = li->data; -+ -+ if (d->attached) -+ send_slave_command (d, GDM_NOTIFY_RESET); -+ } -+} -+ -+static void -+gdm_watch_for_security_tokens (void) -+{ -+ DBusGConnection *conn; -+ GError *err = NULL; -+ DBusGProxy *monitor; -+ -+ conn = dbus_g_bus_get (DBUS_BUS_SYSTEM, &err); -+ if (!conn) { -+ gdm_error (_("Cannot connect to dbus bus; smart card support disabled: %s"), -+ err->message); -+ g_error_free (err); -+ return; -+ } -+ -+ monitor = dbus_g_proxy_new_for_name (conn, -+ MONITOR_SERVICE, -+ MONITOR_PATH, -+ MONITOR_INTERFACE); -+ -+ dbus_g_proxy_add_signal (monitor, "SecurityTokenInserted", G_TYPE_STRING, G_TYPE_INVALID); -+ dbus_g_proxy_connect_signal (monitor, "SecurityTokenInserted", G_CALLBACK (gdm_reset_local_displays), NULL, NULL); -+ -+ dbus_g_proxy_add_signal (monitor, "SecurityTokenRemoved", G_TYPE_STRING, G_TYPE_INVALID); -+ dbus_g_proxy_connect_signal (monitor, "SecurityTokenRemoved", G_CALLBACK (gdm_reset_local_displays), NULL, NULL); -+} diff --git a/gdm-2.19.3-reset-pam.patch b/gdm-2.19.3-reset-pam.patch deleted file mode 100644 index e6431d8..0000000 --- a/gdm-2.19.3-reset-pam.patch +++ /dev/null @@ -1,183 +0,0 @@ -diff -upr gdm-2.19.5-pre/daemon/gdm.c gdm-2.19.5-post/daemon/gdm.c ---- gdm-2.19.5-pre/daemon/gdm.c 2007-07-30 13:51:14.000000000 -0500 -+++ gdm-2.19.5-post/daemon/gdm.c 2007-08-03 20:23:38.000000000 -0500 -@@ -4363,6 +4363,14 @@ gdm_handle_user_message (GdmConnection * - gdm_connection_write (conn, "OK false\n"); - } else if (strcmp (msg, GDM_SUP_CLOSE) == 0) { - gdm_connection_close (conn); -+ } else if (strcmp (msg, GDM_SOP_CANCEL_LOGIN_REQUESTS) == 0) { -+ GSList *li; -+ for (li = gdm_daemon_config_get_display_list (); li != NULL; li = li->next) { -+ GdmDisplay *d = li->data; -+ if (!d->logged_in) { -+ send_slave_command (d, GDM_NOTIFY_RESET); -+ } -+ } - } else { - gdm_connection_write (conn, "ERROR 0 Not implemented\n"); - gdm_connection_close (conn); -diff -upr gdm-2.19.5-pre/daemon/gdm-daemon-config-keys.h gdm-2.19.5-post/daemon/gdm-daemon-config-keys.h ---- gdm-2.19.5-pre/daemon/gdm-daemon-config-keys.h 2007-08-03 20:20:26.000000000 -0500 -+++ gdm-2.19.5-post/daemon/gdm-daemon-config-keys.h 2007-08-03 20:23:38.000000000 -0500 -@@ -233,6 +233,7 @@ G_BEGIN_DECLS - #define GDM_NOTIFY_SOFT_RESTART_SERVERS "SOFT_RESTART_SERVERS" - #define GDM_NOTIFY_GO "GO" - #define GDM_NOTIFY_TWIDDLE_POINTER "TWIDDLE_POINTER" -+#define GDM_NOTIFY_RESET "RESET" - - G_END_DECLS - -diff -upr gdm-2.19.5-pre/daemon/gdm-socket-protocol.h gdm-2.19.5-post/daemon/gdm-socket-protocol.h ---- gdm-2.19.5-pre/daemon/gdm-socket-protocol.h 2007-08-03 20:20:26.000000000 -0500 -+++ gdm-2.19.5-post/daemon/gdm-socket-protocol.h 2007-08-03 20:23:38.000000000 -0500 -@@ -157,6 +157,8 @@ - #define GDM_SOP_SHOW_QUESTION_DIALOG "SHOW_QUESTION_DIALOG" /* show the question dialog from daemon */ - #define GDM_SOP_SHOW_ASKBUTTONS_DIALOG "SHOW_ASKBUTTON_DIALOG" /* show the askbutton dialog from daemon */ - -+/* Reset any in progress authentication conversations */ -+#define GDM_SOP_CANCEL_LOGIN_REQUESTS "CANCEL_LOGIN_REQUESTS" /* no arguments */ - - /* Ack for a slave message */ - /* Note that an extra response can follow an 'ack' */ -diff -upr gdm-2.19.5-pre/daemon/slave.c gdm-2.19.5-post/daemon/slave.c ---- gdm-2.19.5-pre/daemon/slave.c 2007-08-03 20:20:26.000000000 -0500 -+++ gdm-2.19.5-post/daemon/slave.c 2007-08-03 20:24:23.000000000 -0500 -@@ -175,6 +175,12 @@ static int gdm_normal_runlevel = - static pid_t extra_process = 0; - static int extra_status = 0; - -+/* a dup of the other side of greeter_fd_in so that -+ * the slave can talk to itself from its sig handler -+ * using the greeter ipc mechanism -+ */ -+static int slave_fd_out = -1; -+ - #ifdef HAVE_TSOL - static gboolean have_suntsol_extension = FALSE; - #endif -@@ -663,7 +669,7 @@ ignore_xerror_handler (Display *disp, XE - } - - static void --whack_greeter_fds (void) -+whack_greeter_and_slave_fds (void) - { - if (greeter_fd_out > 0) - VE_IGNORE_EINTR (close (greeter_fd_out)); -@@ -671,6 +677,9 @@ whack_greeter_fds (void) - if (greeter_fd_in > 0) - VE_IGNORE_EINTR (close (greeter_fd_in)); - greeter_fd_in = -1; -+ if (slave_fd_out > 0) -+ VE_IGNORE_EINTR (close (slave_fd_out)); -+ slave_fd_out = -1; - } - - static void -@@ -1156,7 +1165,7 @@ gdm_slave_whack_greeter (void) - - d->greetpid = 0; - -- whack_greeter_fds (); -+ whack_greeter_and_slave_fds (); - - gdm_slave_send_num (GDM_SOP_GREETPID, 0); - -@@ -2005,7 +2014,7 @@ restart_the_greeter (void) - - d->greetpid = 0; - -- whack_greeter_fds (); -+ whack_greeter_and_slave_fds (); - - gdm_slave_send_num (GDM_SOP_GREETPID, 0); - } -@@ -2295,6 +2304,12 @@ gdm_slave_wait_for_login (void) - break; - } - -+ if (do_cancel) { -+ gdm_debug ("canceling..."); -+ gdm_slave_greeter_ctl_no_ret (GDM_RESETOK, ""); -+ continue; -+ } -+ - if (login_user == NULL) { - const char *failuresound = gdm_daemon_config_get_value_string (GDM_KEY_SOUND_ON_LOGIN_FAILURE_FILE); - -@@ -2908,9 +2923,10 @@ gdm_slave_greeter (void) - - default: - VE_IGNORE_EINTR (close (pipe1[0])); -- VE_IGNORE_EINTR (close (pipe2[1])); - -- whack_greeter_fds (); -+ whack_greeter_and_slave_fds (); -+ -+ slave_fd_out = pipe2[1]; - - greeter_fd_out = pipe1[1]; - greeter_fd_in = pipe2[0]; -@@ -5208,7 +5224,7 @@ gdm_slave_child_handler (int sig) - - greet = FALSE; - d->greetpid = 0; -- whack_greeter_fds (); -+ whack_greeter_and_slave_fds (); - gdm_slave_send_num (GDM_SOP_GREETPID, 0); - - do_restart_greeter = TRUE; -@@ -5220,7 +5236,7 @@ gdm_slave_child_handler (int sig) - continue; - } - -- whack_greeter_fds (); -+ whack_greeter_and_slave_fds (); - - /* if greet is TRUE, then the greeter died outside of our - * control really, so clean up and die, something is wrong -@@ -5363,6 +5379,11 @@ gdm_slave_handle_usr2_message (void) - gdm_wait_for_go = FALSE; - } else if (strcmp (&s[1], GDM_NOTIFY_TWIDDLE_POINTER) == 0) { - gdm_twiddle_pointer (d); -+ } else if (strcmp (&s[1], GDM_NOTIFY_RESET) == 0) { -+ if (!d->logged_in) { -+ gdm_fdprintf (slave_fd_out, "%c%c%c\n", -+ STX, BEL, GDM_INTERRUPT_CANCEL); -+ } - } - } else if (s[0] == GDM_SLAVE_NOTIFY_RESPONSE) { - gdm_got_ack = TRUE; -Only in gdm-2.19.5-post/daemon: slave.c~ -Only in gdm-2.19.5-post: error.18580 -diff -upr gdm-2.19.5-pre/gui/greeter/greeter.c gdm-2.19.5-post/gui/greeter/greeter.c ---- gdm-2.19.5-pre/gui/greeter/greeter.c 2007-08-03 20:20:26.000000000 -0500 -+++ gdm-2.19.5-post/gui/greeter/greeter.c 2007-08-03 20:23:38.000000000 -0500 -@@ -278,7 +278,6 @@ process_operation (guchar op_code, - GtkWidget *dlg; - char *tmp; - char *session; -- GreeterItemInfo *conversation_info; - static GnomeCanvasItem *disabled_cover = NULL; - gint lookup_status = SESSION_LOOKUP_SUCCESS; - gchar *firstmsg = NULL; -@@ -483,16 +482,9 @@ process_operation (guchar op_code, - - first_prompt = TRUE; - -- conversation_info = greeter_lookup_id ("pam-conversation"); -- -- if (conversation_info) -- { -- tmp = ve_locale_to_utf8 (args); -- g_object_set (G_OBJECT (conversation_info->item), -- "text", tmp, -- NULL); -- g_free (tmp); -- } -+ greeter_item_ulist_unset_selected_user (); -+ greeter_item_pam_prompt ("", PW_ENTRY_SIZE, TRUE); -+ greeter_item_pam_message (""); - - printf ("%c\n", STX); - fflush (stdout); diff --git a/gdm-2.19.3-token-login.patch b/gdm-2.19.3-token-login.patch deleted file mode 100644 index e7e87fe..0000000 --- a/gdm-2.19.3-token-login.patch +++ /dev/null @@ -1,250 +0,0 @@ -Index: gdm-2.19.7/daemon/gdm.c -=================================================================== ---- gdm-2.19.7.orig/daemon/gdm.c -+++ gdm-2.19.7/daemon/gdm.c -@@ -4395,7 +4395,7 @@ gdm_handle_user_message (GdmConnection * - } - - static void --gdm_reset_local_displays (void) -+send_command_to_locals (const char *msg) - { - GSList *li; - -@@ -4403,11 +4403,23 @@ gdm_reset_local_displays (void) - GdmDisplay *d = li->data; - - if (d->attached) -- send_slave_command (d, GDM_NOTIFY_RESET); -+ send_slave_command (d, msg); - } - } - - static void -+gdm_reset_local_displays (void) -+{ -+ send_command_to_locals (GDM_NOTIFY_RESET); -+} -+ -+static void -+gdm_do_token_login (void) -+{ -+ send_command_to_locals (GDM_NOTIFY_TOKEN_LOGIN); -+} -+ -+static void - gdm_watch_for_security_tokens (void) - { - DBusGConnection *conn; -@@ -4428,7 +4440,7 @@ gdm_watch_for_security_tokens (void) - MONITOR_INTERFACE); - - dbus_g_proxy_add_signal (monitor, "SecurityTokenInserted", G_TYPE_STRING, G_TYPE_INVALID); -- dbus_g_proxy_connect_signal (monitor, "SecurityTokenInserted", G_CALLBACK (gdm_reset_local_displays), NULL, NULL); -+ dbus_g_proxy_connect_signal (monitor, "SecurityTokenInserted", G_CALLBACK (gdm_do_token_login), NULL, NULL); - - dbus_g_proxy_add_signal (monitor, "SecurityTokenRemoved", G_TYPE_STRING, G_TYPE_INVALID); - dbus_g_proxy_connect_signal (monitor, "SecurityTokenRemoved", G_CALLBACK (gdm_reset_local_displays), NULL, NULL); -Index: gdm-2.19.7/daemon/gdm-daemon-config.c -=================================================================== ---- gdm-2.19.7.orig/daemon/gdm-daemon-config.c -+++ gdm-2.19.7/daemon/gdm-daemon-config.c -@@ -552,7 +552,8 @@ gdm_daemon_config_key_to_string_per_disp - - if (strcmp (group, "greeter") == 0 || - strcmp (group, "gui") == 0 || -- is_key (keystring, GDM_KEY_PAM_STACK)) { -+ is_key (keystring, GDM_KEY_PAM_STACK) || -+ is_key (keystring, GDM_KEY_PAM_STACK_SMARTCARD)) { - ret = gdm_daemon_config_key_to_string (file, keystring, retval); - } - -Index: gdm-2.19.7/daemon/gdm-daemon-config-entries.h -=================================================================== ---- gdm-2.19.7.orig/daemon/gdm-daemon-config-entries.h -+++ gdm-2.19.7/daemon/gdm-daemon-config-entries.h -@@ -211,6 +211,7 @@ typedef enum { - GDM_ID_SYSTEM_COMMANDS_IN_MENU, - GDM_ID_ALLOW_LOGOUT_ACTIONS, - GDM_ID_RBAC_SYSTEM_COMMAND_KEYS, -+ GDM_ID_SMART_CARD_PAM_STACK, - GDK_ID_LAST - } GdmConfigKey; - -@@ -366,6 +367,7 @@ static const GdmConfigEntry gdm_daemon_c - { GDM_CONFIG_GROUP_SECURITY, "RetryDelay", GDM_CONFIG_VALUE_INT, "1", GDM_ID_RETRY_DELAY }, - { GDM_CONFIG_GROUP_SECURITY, "DisallowTCP", GDM_CONFIG_VALUE_BOOL, "true", GDM_ID_DISALLOW_TCP }, - { GDM_CONFIG_GROUP_SECURITY, "PamStack", GDM_CONFIG_VALUE_STRING, "gdm", GDM_ID_PAM_STACK }, -+ { GDM_CONFIG_GROUP_SECURITY, "SmartCardPamStack", GDM_CONFIG_VALUE_STRING, "gdm-smartcard", GDM_ID_SMART_CARD_PAM_STACK }, - - { GDM_CONFIG_GROUP_SECURITY, "NeverPlaceCookiesOnNFS", GDM_CONFIG_VALUE_BOOL, "true", GDM_ID_NEVER_PLACE_COOKIES_ON_NFS }, - { GDM_CONFIG_GROUP_SECURITY, "PasswordRequired", GDM_CONFIG_VALUE_BOOL, "false", GDM_ID_PASSWORD_REQUIRED }, -Index: gdm-2.19.7/daemon/gdm-daemon-config-keys.h -=================================================================== ---- gdm-2.19.7.orig/daemon/gdm-daemon-config-keys.h -+++ gdm-2.19.7/daemon/gdm-daemon-config-keys.h -@@ -105,6 +105,7 @@ G_BEGIN_DECLS - #define GDM_KEY_RETRY_DELAY "security/RetryDelay=1" - #define GDM_KEY_DISALLOW_TCP "security/DisallowTCP=true" - #define GDM_KEY_PAM_STACK "security/PamStack=gdm" -+#define GDM_KEY_PAM_STACK_SMARTCARD "security/SmartCardPamStack=gdm-smartcard" - #define GDM_KEY_NEVER_PLACE_COOKIES_ON_NFS "security/NeverPlaceCookiesOnNFS=true" - #define GDM_KEY_PASSWORD_REQUIRED "security/PasswordRequired=false" - #define GDM_KEY_UTMP_LINE_ATTACHED "security/UtmpLineAttached=" -@@ -230,6 +231,7 @@ G_BEGIN_DECLS - #define GDM_NOTIFY_GO "GO" - #define GDM_NOTIFY_TWIDDLE_POINTER "TWIDDLE_POINTER" - #define GDM_NOTIFY_RESET "RESET" -+#define GDM_NOTIFY_TOKEN_LOGIN "TOKEN_LOGIN" - - G_END_DECLS - -Index: gdm-2.19.7/daemon/gdm-socket-protocol.h -=================================================================== ---- gdm-2.19.7.orig/daemon/gdm-socket-protocol.h -+++ gdm-2.19.7/daemon/gdm-socket-protocol.h -@@ -75,6 +75,7 @@ - #define GDM_INTERRUPT_CUSTOM_CMD 'M' - #define GDM_INTERRUPT_CANCEL 'X' - #define GDM_INTERRUPT_SELECT_LANG 'O' -+#define GDM_INTERRUPT_TOKEN_LOGIN '$' - - /* List delimiter for config file lists */ - #define GDM_DELIMITER_MODULES ":" -Index: gdm-2.19.7/daemon/slave.c -=================================================================== ---- gdm-2.19.7.orig/daemon/slave.c -+++ gdm-2.19.7/daemon/slave.c -@@ -143,6 +143,8 @@ static gboolean do_configurator = - static gboolean do_cancel = FALSE; /* If this is true, go back to - username entry & unselect - face browser (if present) */ -+static gboolean do_token_login = FALSE; /* if true, auth with smart -+ cards */ - static gboolean do_restart_greeter = FALSE; /* If this is true, whack the - greeter and try again */ - static gboolean restart_greeter_now = FALSE; /* Restart_greeter_when the -@@ -2079,11 +2081,14 @@ play_login_sound (const char *sound_file - static void - gdm_slave_wait_for_login (void) - { -+ gboolean verify_token; - const char *successsound; - char *username; - g_free (login_user); - login_user = NULL; - -+ do_token_login = FALSE; -+ - /* Chat with greeter */ - while (login_user == NULL) { - /* init to a sane value */ -@@ -2107,9 +2112,14 @@ gdm_slave_wait_for_login (void) - gdm_debug ("gdm_slave_wait_for_login: In loop"); - username = d->preset_user; - d->preset_user = NULL; -+ -+ verify_token = do_token_login; -+ do_token_login = FALSE; -+ - login_user = gdm_verify_user (d /* the display */, -- username /* username */, -- TRUE /* allow retry */); -+ verify_token ? "" : username /* username */, -+ TRUE /* allow retry */, -+ verify_token); - g_free (username); - - gdm_debug ("gdm_slave_wait_for_login: end verify for '%s'", -@@ -5395,6 +5405,11 @@ gdm_slave_handle_usr2_message (void) - gdm_fdprintf (slave_fd_out, "%c%c%c\n", - STX, BEL, GDM_INTERRUPT_CANCEL); - } -+ } else if (strcmp (&s[1], GDM_NOTIFY_TOKEN_LOGIN) == 0) { -+ if (!d->logged_in && d->attached) { -+ gdm_fdprintf (slave_fd_out, "%c%c%c\n", -+ STX, BEL, GDM_INTERRUPT_TOKEN_LOGIN); -+ } - } - } else if (s[0] == GDM_SLAVE_NOTIFY_RESPONSE) { - gdm_got_ack = TRUE; -@@ -5595,6 +5610,10 @@ check_for_interruption (const char *msg) - do_restart_greeter = TRUE; - } - break; -+ case GDM_INTERRUPT_TOKEN_LOGIN: -+ do_token_login = TRUE; -+ do_cancel = TRUE; -+ break; - default: - break; - } -Index: gdm-2.19.7/daemon/verify-crypt.c -=================================================================== ---- gdm-2.19.7.orig/daemon/verify-crypt.c -+++ gdm-2.19.7/daemon/verify-crypt.c -@@ -101,7 +101,8 @@ print_cant_auth_errbox (void) - gchar * - gdm_verify_user (GdmDisplay *d, - const char *username, -- gboolean allow_retry) -+ gboolean allow_retry, -+ gboolean token) - { - gchar *login, *passwd, *ppasswd; - struct passwd *pwent; -Index: gdm-2.19.7/daemon/verify.h -=================================================================== ---- gdm-2.19.7.orig/daemon/verify.h -+++ gdm-2.19.7/daemon/verify.h -@@ -26,7 +26,8 @@ - * the timed login timer */ - gchar *gdm_verify_user (GdmDisplay *d, - const char *username, -- gboolean allow_retry); -+ gboolean allow_retry, -+ gboolean token); - void gdm_verify_cleanup (GdmDisplay *d); - void gdm_verify_check (void); - void gdm_verify_select_user (const char *user); -Index: gdm-2.19.7/daemon/verify-pam.c -=================================================================== ---- gdm-2.19.7.orig/daemon/verify-pam.c -+++ gdm-2.19.7/daemon/verify-pam.c -@@ -878,7 +878,8 @@ log_to_audit_system(const char *login, - gchar * - gdm_verify_user (GdmDisplay *d, - const char *username, -- gboolean allow_retry) -+ gboolean allow_retry, -+ gboolean verify_token) - { - gint pamerr = 0; - struct passwd *pwent = NULL; -@@ -938,8 +939,10 @@ gdm_verify_user (GdmDisplay *d, - * PAM Stacks, in case one display should use a different - * authentication mechanism than another display. - */ -- pam_stack = gdm_daemon_config_get_value_string_per_display (GDM_KEY_PAM_STACK, -- (char *)d->name); -+ pam_stack = gdm_daemon_config_get_value_string_per_display (verify_token ? -+ GDM_KEY_PAM_STACK_SMARTCARD : -+ GDM_KEY_PAM_STACK, -+ (char *)d->name); - - if ( ! create_pamh (d, pam_stack, login, &pamc, d->name, &pamerr)) { - if (started_timer) -Index: gdm-2.19.7/daemon/verify-shadow.c -=================================================================== ---- gdm-2.19.7.orig/daemon/verify-shadow.c -+++ gdm-2.19.7/daemon/verify-shadow.c -@@ -102,7 +102,8 @@ print_cant_auth_errbox (void) - gchar * - gdm_verify_user (GdmDisplay *d, - const char *username, -- gboolean allow_retry) -+ gboolean allow_retry, -+ gboolean token) - { - gchar *login, *passwd, *ppasswd; - struct passwd *pwent; diff --git a/gdm-2.19.3-token-login2.patch b/gdm-2.19.3-token-login2.patch deleted file mode 100644 index f511e42..0000000 --- a/gdm-2.19.3-token-login2.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- daemon/slave.c.orig 2007-08-30 18:32:03.526283719 +0000 -+++ daemon/slave.c 2007-08-30 18:32:27.536993351 +0000 -@@ -2104,6 +2104,7 @@ - gdm_slave_greeter_ctl_no_ret (GDM_SETLOGIN, (*pwent)->pw_name); - login_user = gdm_verify_user (d, - (*pwent)->pw_name, -+ FALSE, - FALSE); - gdm_daemon_config_set_value_bool (GDM_KEY_ALLOW_ROOT, oldAllowRoot); - diff --git a/gdm-2.20.0-wait-for-restart.patch b/gdm-2.20.0-wait-for-restart.patch deleted file mode 100644 index 0d48f27..0000000 --- a/gdm-2.20.0-wait-for-restart.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -upr gdm-2.20.0-pre/daemon/gdm.c gdm-2.20.0-post/daemon/gdm.c ---- gdm-2.20.0-pre/daemon/gdm.c 2007-09-21 15:48:23.000000000 -0500 -+++ gdm-2.20.0-post/daemon/gdm.c 2007-09-21 16:25:47.000000000 -0500 -@@ -715,7 +715,7 @@ halt_machine (void) - #ifdef __linux__ - change_to_first_and_clear (FALSE); - #endif /* __linux */ -- -+ sleep (20); - } - } - -@@ -735,7 +735,7 @@ restart_machine (void) - #ifdef __linux__ - change_to_first_and_clear (TRUE); - #endif /* __linux */ -- -+ sleep (20); - } - } - diff --git a/gdm-2.20.4.tar.bz2 b/gdm-2.20.4.tar.bz2 deleted file mode 100644 index 4091057..0000000 --- a/gdm-2.20.4.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:adb64d70d9c2bf87a2f67520f40bba29bd76726baee21440f8b24cf3f6336061 -size 3906797 diff --git a/gdm-2.21.5-vt7-temporary-hack.patch b/gdm-2.21.5-vt7-temporary-hack.patch new file mode 100644 index 0000000..00585c2 --- /dev/null +++ b/gdm-2.21.5-vt7-temporary-hack.patch @@ -0,0 +1,12 @@ +diff -upr gdm-2.21.5-pre/daemon/gdm-server.c gdm-2.21.5-post/daemon/gdm-server.c +--- gdm-2.21.5-pre/daemon/gdm-server.c 2007-11-19 15:53:12.000000000 -0600 ++++ gdm-2.21.5-post/daemon/gdm-server.c 2008-01-21 20:18:31.000000000 -0600 +@@ -306,6 +306,8 @@ gdm_server_resolve_command_line (GdmServ + + if (vtarg != NULL && ! gotvtarg) { + argv[len++] = g_strdup (vtarg); ++ } else if (!query_in_arglist && !gotvtarg) { ++ argv[len++] = g_strdup ("vt7"); + } + + argv[len++] = NULL; diff --git a/gdm-2.21.9-no-fatal-warnings.patch b/gdm-2.21.9-no-fatal-warnings.patch new file mode 100644 index 0000000..3dfd111 --- /dev/null +++ b/gdm-2.21.9-no-fatal-warnings.patch @@ -0,0 +1,16 @@ +diff -upr gdm-2.21.9-pre/common/gdm-common.c gdm-2.21.9-post/common/gdm-common.c +--- gdm-2.21.9-pre/common/gdm-common.c 2008-03-28 18:18:23.000000000 -0600 ++++ gdm-2.21.9-post/common/gdm-common.c 2008-03-28 18:35:03.000000000 -0600 +@@ -57,10 +57,12 @@ gdm_is_version_unstable (void) + void + gdm_set_fatal_warnings_if_unstable (void) + { ++#if 0 + if (gdm_is_version_unstable ()) { + g_setenv ("G_DEBUG", "fatal_criticals", FALSE); + g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); + } ++#endif + } + + int diff --git a/gdm-2.22.0.tar.bz2 b/gdm-2.22.0.tar.bz2 new file mode 100644 index 0000000..11a9251 --- /dev/null +++ b/gdm-2.22.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ff4bef13b15a1c54895eabcc37f7046fa13ca3bc449c9541c38e6993930fffa +size 2244663 diff --git a/gdm-2.8.0.0-any-hostname-auth.patch b/gdm-2.8.0.0-any-hostname-auth.patch deleted file mode 100644 index ab7d896..0000000 --- a/gdm-2.8.0.0-any-hostname-auth.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- gdm-2.16.1/daemon/slave.c -+++ gdm-2.16.1/daemon/slave.c -@@ -3438,6 +3438,12 @@ - g_setenv ("SHELL", pwent->pw_shell, TRUE); - g_unsetenv ("MAIL"); /* Unset $MAIL for broken shells */ - -+ if (d->hostname != NULL && d->hostname [0] != '\0') { -+ g_setenv ("XAUTHLOCALHOSTNAME", d->hostname, TRUE); -+ } else { -+ g_setenv ("XAUTHLOCALHOSTNAME", "localhost", TRUE); -+ } -+ - if (d->type == TYPE_STATIC) { - g_setenv ("GDM_XSERVER_LOCATION", "local", TRUE); - } else if (d->type == TYPE_XDMCP) { diff --git a/gdm-2.8.0.0-list-users.patch b/gdm-2.8.0.0-list-users.patch deleted file mode 100644 index c96630c..0000000 --- a/gdm-2.8.0.0-list-users.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gdm-2.16.1/config/gdm.conf.in -+++ gdm-2.16.1/config/gdm.conf.in -@@ -362,7 +362,7 @@ - # large numbers of users and this feature should not be used in such - # environments. The setting of IncludeAll does nothing if Include is set to a - # non-empty value. --#IncludeAll=false -+IncludeAll=true - # If user or user.png exists in this dir it will be used as his picture. - #GlobalFaceDir=@datadir@/pixmaps/faces/ - diff --git a/gdm-2.8.0.0-setup-no-flicker.patch b/gdm-2.8.0.0-setup-no-flicker.patch deleted file mode 100644 index 7ee4753..0000000 --- a/gdm-2.8.0.0-setup-no-flicker.patch +++ /dev/null @@ -1,56 +0,0 @@ -Index: gdm-2.17.7/gui/gdmsetup.c -=================================================================== ---- gdm-2.17.7.orig/gui/gdmsetup.c -+++ gdm-2.17.7/gui/gdmsetup.c -@@ -60,6 +60,8 @@ static gboolean GdmUserChangesUnsaved; - static gboolean GdmRandomFromSelectedChangesWarn; - static gint last_selected_command; - -+#define LONG_TIMEOUT G_MAXINT -+ - /* set the DOING_GDM_DEVELOPMENT env variable if you want to - * search for the glade file in the current dir and not the system - * install dir, better then something you have to change -@@ -1575,7 +1577,7 @@ combobox_timeout (GtkWidget *combo_box) - static void - toggle_toggled (GtkWidget *toggle) - { -- run_timeout (toggle, 200, toggle_timeout); -+ run_timeout (toggle, LONG_TIMEOUT, toggle_timeout); - } - - static void -@@ -1615,13 +1617,13 @@ list_selection_toggled (GtkWidget *toggl - gtk_widget_set_sensitive (widget, FALSE); - } - -- run_timeout (toggle, 200, toggle_timeout); -+ run_timeout (toggle, LONG_TIMEOUT, toggle_timeout); - } - - static void - intspin_changed (GtkWidget *spin) - { -- run_timeout (spin, 500, intspin_timeout); -+ run_timeout (spin, LONG_TIMEOUT, intspin_timeout); - } - - static void -@@ -3270,7 +3272,7 @@ greeter_toggle_timeout (GtkWidget *toggl - static void - greeter_toggle_toggled (GtkWidget *toggle) - { -- run_timeout (toggle, 500, greeter_toggle_timeout); -+ run_timeout (toggle, LONG_TIMEOUT, greeter_toggle_timeout); - } - - static void -@@ -3614,7 +3616,7 @@ greeter_entry_untranslate_timeout (GtkWi - static void - greeter_entry_untranslate_changed (GtkWidget *entry) - { -- run_timeout (entry, 500, greeter_entry_untranslate_timeout); -+ run_timeout (entry, LONG_TIMEOUT, greeter_entry_untranslate_timeout); - } - - static void diff --git a/gdm-2.8.0.7-bg-4.patch b/gdm-2.8.0.7-bg-4.patch deleted file mode 100644 index 7f1b2ed..0000000 --- a/gdm-2.8.0.7-bg-4.patch +++ /dev/null @@ -1,225 +0,0 @@ -diff -upr gdm-2.19.3-pre/gui/greeter/greeter.c gdm-2.19.3-post/gui/greeter/greeter.c ---- gdm-2.19.3-pre/gui/greeter/greeter.c 2007-06-17 13:07:26.000000000 -0400 -+++ gdm-2.19.3-post/gui/greeter/greeter.c 2007-07-31 21:19:51.000000000 -0400 -@@ -1239,6 +1239,7 @@ main (int argc, char *argv[]) - int r; - gint i; - gchar *key_string = NULL; -+ GdkColor black = { 0, 0, 0, 0 }; - - if (g_getenv ("DOING_GDM_DEVELOPMENT") != NULL) - DOING_GDM_DEVELOPMENT = TRUE; -@@ -1348,6 +1349,7 @@ main (int argc, char *argv[]) - } - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); -+ gtk_widget_modify_bg (window, GTK_STATE_NORMAL, &black); - - if G_UNLIKELY (DOING_GDM_DEVELOPMENT) { - g_signal_connect (G_OBJECT (window), "key_press_event", -@@ -1364,6 +1366,7 @@ main (int argc, char *argv[]) - gtk_window_set_default_size (GTK_WINDOW (window), - gdm_wm_screen.width, - gdm_wm_screen.height); -+ gtk_widget_modify_bg (canvas, GTK_STATE_NORMAL, &black); - gtk_container_add (GTK_CONTAINER (window), canvas); - - /* -diff -upr gdm-2.19.3-pre/gui/greeter/greeter_canvas_item.c gdm-2.19.3-post/gui/greeter/greeter_canvas_item.c ---- gdm-2.19.3-pre/gui/greeter/greeter_canvas_item.c 2007-06-17 13:07:26.000000000 -0400 -+++ gdm-2.19.3-post/gui/greeter/greeter_canvas_item.c 2007-07-31 21:18:11.000000000 -0400 -@@ -24,6 +24,12 @@ - #include - #include - -+#include -+#include -+ -+#include -+#include -+ - #include "gdm.h" - #include "gdmcommon.h" - #include "gdmconfig.h" -@@ -258,6 +264,127 @@ greeter_item_run_button_action_callback - gtk_widget_grab_focus (entry); - } - -+/* Create a persistent pixmap. We create a separate display -+ * and set the closedown mode on it to RetainPermanent -+ */ -+static GdkPixmap * -+make_root_pixmap (GdkScreen *screen, gint width, gint height) -+{ -+ Display *display; -+ char *display_name; -+ Pixmap result; -+ GdkPixmap *gdk_pixmap; -+ int screen_num; -+ -+ screen_num = gdk_screen_get_number (screen); -+ -+ gdk_flush (); -+ -+ display_name = DisplayString (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); -+ -+ display = XOpenDisplay (display_name); -+ -+ if (display == NULL) { -+ g_warning ("Unable to open display '%s' when setting background pixmap\n", -+ (display_name) ? display_name : "NULL"); -+ return NULL; -+ } -+ -+ XSetCloseDownMode (display, RetainPermanent); -+ -+ result = XCreatePixmap (display, -+ RootWindow (display, screen_num), -+ width, height, -+ DefaultDepth (display, screen_num)); -+ -+ XCloseDisplay (display); -+ -+ gdk_pixmap = gdk_pixmap_foreign_new (result); -+ gdk_drawable_set_colormap (GDK_DRAWABLE (gdk_pixmap), -+ gdk_drawable_get_colormap (gdk_screen_get_root_window (screen))); -+ -+ return gdk_pixmap; -+} -+ -+/* Set the root pixmap, and properties pointing to it. We -+ * do this atomically with XGrabServer to make sure that -+ * we won't leak the pixmap if somebody else it setting -+ * it at the same time. (This assumes that they follow the -+ * same conventions we do) -+ */ -+static gboolean -+set_root_pixmap (GdkPixmap *pixmap) -+{ -+ Atom type; -+ gulong nitems, bytes_after; -+ gint format; -+ guchar *data_esetroot; -+ Pixmap pixmap_id; -+ Display *display; -+ GdkScreen *screen; -+ int screen_num; -+ -+ screen = (GdkScreen *) g_object_get_data (G_OBJECT (pixmap), -+ "gdkscreen"); -+ -+ screen_num = gdk_screen_get_number (screen); -+ -+ if (pixmap != NULL) -+ pixmap_id = GDK_WINDOW_XWINDOW (pixmap); -+ else -+ pixmap_id = 0; -+ -+ display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); -+ -+ XGrabServer (display); -+ -+ XGetWindowProperty (display, RootWindow (display, screen_num), -+ XInternAtom (display, "ESETROOT_PMAP_ID", False), -+ 0L, 1L, False, XA_PIXMAP, -+ &type, &format, &nitems, &bytes_after, -+ &data_esetroot); -+ -+ if (type == XA_PIXMAP) { -+ if (format == 32 && nitems == 1) { -+ Pixmap old_pixmap; -+ -+ old_pixmap = *((Pixmap *) data_esetroot); -+ -+ if (pixmap != NULL && old_pixmap != pixmap_id) -+ XKillClient (display, old_pixmap); -+ else if (pixmap == NULL) -+ pixmap_id = old_pixmap; -+ } -+ -+ XFree (data_esetroot); -+ } -+ -+ if (pixmap != NULL) { -+ XChangeProperty (display, RootWindow (display, screen_num), -+ XInternAtom (display, "ESETROOT_PMAP_ID", FALSE), -+ XA_PIXMAP, 32, PropModeReplace, -+ (guchar *) &pixmap_id, 1); -+ XChangeProperty (display, RootWindow (display, screen_num), -+ XInternAtom (display, "_XROOTPMAP_ID", FALSE), -+ XA_PIXMAP, 32, PropModeReplace, -+ (guchar *) &pixmap_id, 1); -+ -+ XSetWindowBackgroundPixmap (display, RootWindow (display, screen_num), -+ pixmap_id); -+ } else if (pixmap == NULL) { -+ XDeleteProperty (display, RootWindow (display, screen_num), -+ XInternAtom (display, "ESETROOT_PMAP_ID", FALSE)); -+ XDeleteProperty (display, RootWindow (display, screen_num), -+ XInternAtom (display, "_XROOTPMAP_ID", FALSE)); -+ } -+ -+ XClearWindow (display, RootWindow (display, screen_num)); -+ XUngrabServer (display); -+ XFlush (display); -+ -+ return FALSE; -+} -+ - void - greeter_item_create_canvas_item (GreeterItemInfo *item) - { -@@ -355,12 +482,53 @@ greeter_item_create_canvas_item (Greeter - } - - if (item->data.pixmap.pixbufs[GREETER_ITEM_STATE_NORMAL] != NULL) -+ { -+ static int bg_set = 1; /* disabled */ -+ - item->item = gnome_canvas_item_new (group, - GNOME_TYPE_CANVAS_PIXBUF, - "x", (gdouble) x1, - "y", (gdouble) y1, - "pixbuf", item->data.pixmap.pixbufs[GREETER_ITEM_STATE_NORMAL], - NULL); -+ -+ if (!bg_set) -+ { -+ GdkPixmap *pixmap; -+ GdkPixbuf *pixbuf; -+ GdkScreen *screen; -+ GdkGC *gc; -+ gint width, height; -+ -+ screen = gtk_widget_get_screen (GTK_WIDGET (canvas)); -+ -+ pixbuf = item->data.pixmap.pixbufs[GREETER_ITEM_STATE_NORMAL]; -+ -+ width = gdk_pixbuf_get_width (pixbuf); -+ height = gdk_pixbuf_get_height (pixbuf); -+ -+ pixmap = make_root_pixmap (screen, width, height); -+ -+ gc = gdk_gc_new (GDK_DRAWABLE (pixmap)); -+ -+ gdk_draw_pixbuf (GDK_DRAWABLE (pixmap), -+ gc, -+ pixbuf, -+ 0, 0, 0, 0, -+ width, -+ height, -+ GDK_RGB_DITHER_NORMAL, -+ 0, 0); -+ -+ g_object_set_data (G_OBJECT (pixmap), "gdkscreen", screen); -+ -+ g_timeout_add (1000, set_root_pixmap, pixmap); -+ -+ g_object_unref (gc); -+ -+ bg_set = 1; -+ } -+ } - break; - case GREETER_ITEM_TYPE_LABEL: - text = gdm_common_expand_text (item->data.text.orig_text); diff --git a/gdm-2.8.0.7-domain-entry.patch b/gdm-2.8.0.7-domain-entry.patch deleted file mode 100644 index a12dc67..0000000 --- a/gdm-2.8.0.7-domain-entry.patch +++ /dev/null @@ -1,856 +0,0 @@ -diff -upr gdm-2.19.5-pre/configure.ac gdm-2.19.5-post/configure.ac ---- gdm-2.19.5-pre/configure.ac 2007-07-30 13:51:49.000000000 -0500 -+++ gdm-2.19.5-post/configure.ac 2007-08-16 15:31:56.000000000 -0500 -@@ -902,6 +902,10 @@ AC_SUBST(GDMPREFETCH) - AC_SUBST(GDMPREFETCHLIST) - AC_SUBST(GDMPREFETCHCMD) - -+GDM_SCRATCH_DIR="${localstatedir}/gdm" -+AC_DEFINE_UNQUOTED(GDM_SCRATCH_DIR, "$GDM_SCRATCH_DIR", [GDM scratch dir]) -+AC_SUBST(GDM_SCRATCH_DIR) -+ - AC_ARG_ENABLE(secureremote, - [ --enable-secureremote=[yes/no] Enable to offer a secure X connection through ssh [default=no]],, - enable_secureremote=no) -diff -upr gdm-2.19.5-pre/daemon/gdm-daemon-config-entries.h gdm-2.19.5-post/daemon/gdm-daemon-config-entries.h ---- gdm-2.19.5-pre/daemon/gdm-daemon-config-entries.h 2007-07-30 13:51:14.000000000 -0500 -+++ gdm-2.19.5-post/daemon/gdm-daemon-config-entries.h 2007-08-16 15:42:57.000000000 -0500 -@@ -185,6 +185,7 @@ typedef enum { - GDM_ID_GRAPHICAL_THEME_RAND, - GDM_ID_GRAPHICAL_THEME_DIR, - GDM_ID_GRAPHICAL_THEMED_COLOR, -+ GDM_ID_SHOW_DOMAIN, - GDM_ID_INFO_MSG_FILE, - GDM_ID_INFO_MSG_FONT, - GDM_ID_PRE_FETCH_PROGRAM, -@@ -465,6 +466,7 @@ static const GdmConfigEntry gdm_daemon_c - { GDM_CONFIG_GROUP_GREETER, "SoundOnLoginFile", GDM_CONFIG_VALUE_STRING, "", GDM_ID_SOUND_ON_LOGIN_FILE }, - { GDM_CONFIG_GROUP_GREETER, "SoundOnLoginSuccessFile", GDM_CONFIG_VALUE_STRING, "", GDM_ID_SOUND_ON_LOGIN_SUCCESS_FILE }, - { GDM_CONFIG_GROUP_GREETER, "SoundOnLoginFailureFile", GDM_CONFIG_VALUE_STRING, "", GDM_ID_SOUND_ON_LOGIN_FAILURE_FILE }, -+ { GDM_CONFIG_GROUP_GREETER, "ShowDomain", GDM_CONFIG_VALUE_BOOL, "false", GDM_ID_SHOW_DOMAIN }, - { GDM_CONFIG_GROUP_DAEMON, "SoundProgram", GDM_CONFIG_VALUE_STRING, SOUND_PROGRAM, GDM_ID_SOUND_PROGRAM }, - - { GDM_CONFIG_GROUP_CHOOSER, "ScanTime", GDM_CONFIG_VALUE_INT, "4", GDM_ID_SCAN_TIME }, -diff -upr gdm-2.19.5-pre/daemon/gdm-daemon-config-keys.h gdm-2.19.5-post/daemon/gdm-daemon-config-keys.h ---- gdm-2.19.5-pre/daemon/gdm-daemon-config-keys.h 2007-07-30 13:51:14.000000000 -0500 -+++ gdm-2.19.5-post/daemon/gdm-daemon-config-keys.h 2007-08-16 15:31:56.000000000 -0500 -@@ -175,6 +175,7 @@ G_BEGIN_DECLS - #define GDM_KEY_GRAPHICAL_THEME_RAND "greeter/GraphicalThemeRand=false" - #define GDM_KEY_GRAPHICAL_THEME_DIR "greeter/GraphicalThemeDir=" DATADIR "/gdm/themes/" - #define GDM_KEY_GRAPHICAL_THEMED_COLOR "greeter/GraphicalThemedColor=#76848F" -+#define GDM_KEY_SHOW_DOMAIN "greeter/ShowDomain=false" - #define GDM_KEY_INFO_MSG_FILE "greeter/InfoMsgFile=" - #define GDM_KEY_INFO_MSG_FONT "greeter/InfoMsgFont=" - #define GDM_KEY_PRE_FETCH_PROGRAM "greeter/PreFetchProgram=" -@@ -217,6 +218,7 @@ G_BEGIN_DECLS - #define GDM_NOTIFY_TIMED_LOGIN_DELAY "TimedLoginDelay" /* */ - #define GDM_NOTIFY_TIMED_LOGIN_ENABLE "TimedLoginEnable" /* */ - #define GDM_NOTIFY_DISALLOW_TCP "DisallowTCP" /* */ -+#define GDM_NOTIFY_SHOW_DOMAIN "ShowDomain" /* */ - #define GDM_NOTIFY_SOUND_ON_LOGIN_FILE "SoundOnLoginFile" /* */ - #define GDM_NOTIFY_SOUND_ON_LOGIN_SUCCESS_FILE "SoundOnLoginSuccessFile" /* */ - #define GDM_NOTIFY_SOUND_ON_LOGIN_FAILURE_FILE "SoundOnLoginFailureFile" /* */ -diff -upr gdm-2.19.5-pre/daemon/verify-pam.c gdm-2.19.5-post/daemon/verify-pam.c ---- gdm-2.19.5-pre/daemon/verify-pam.c 2007-07-30 13:51:14.000000000 -0500 -+++ gdm-2.19.5-post/daemon/verify-pam.c 2007-08-16 15:31:56.000000000 -0500 -@@ -78,6 +78,8 @@ static unsigned auth_retries; - - /* this is another hack */ - static gboolean did_we_ask_for_password = FALSE; -+static gboolean is_account_disabled = FALSE; -+static gboolean is_account_expired = FALSE; - - static char *selected_user = NULL; - -@@ -469,6 +471,7 @@ perhaps_translate_message (const char *m - g_hash_table_insert (hash, "You are required to change your password immediately (password aged)", _("You are required to change your password immediately (password aged)")); - g_hash_table_insert (hash, "You are required to change your password immediately (root enforced)", _("You are required to change your password immediately (root enforced)")); - g_hash_table_insert (hash, "Your account has expired; please contact your system administrator", _("Your account has expired; please contact your system administrator")); -+ g_hash_table_insert (hash, "Your account is disabled. Please contact your system administrator", _("Your account is disabled. Please contact your system administrator")); - g_hash_table_insert (hash, "No password supplied", _("No password supplied")); - g_hash_table_insert (hash, "Password unchanged", _("Password unchanged")); - g_hash_table_insert (hash, "Can not get username", _("Can not get username")); -@@ -537,8 +540,8 @@ gdm_verify_pam_conv (int num_msg, struct - gdm_log_init (); - - for (replies = 0; replies < num_msg; replies++) { -- const char *m = (*msg)[replies].msg; -- m = perhaps_translate_message (m); -+ const char *m_untranslated = (*msg)[replies].msg; -+ const char *m = perhaps_translate_message (m_untranslated); - - switch ((*msg)[replies].msg_style) { - -@@ -594,6 +597,12 @@ gdm_verify_pam_conv (int num_msg, struct - - case PAM_ERROR_MSG: - /* PAM sent a message that should displayed to the user */ -+ -+ if (strstr (m_untranslated, "account is disabled")) -+ is_account_disabled = TRUE; -+ else if (strstr (m_untranslated, "account has expired")) -+ is_account_expired = TRUE; -+ - gdm_slave_greeter_ctl_no_ret (GDM_ERRDLG, m); - reply[replies].resp_retcode = PAM_SUCCESS; - reply[replies].resp = NULL; -@@ -1295,7 +1304,11 @@ gdm_verify_user (GdmDisplay *d, - /* Only give this message if we actually asked for - password, otherwise it would be silly to say that - the password may have been wrong */ -- if (did_we_ask_for_password) { -+ if (is_account_disabled) { -+ basemsg = _("\nYour account has been disabled."); -+ } else if (is_account_expired) { -+ basemsg = _("\nYour account has expired."); -+ } else if (did_we_ask_for_password) { - basemsg = _("\nIncorrect username or password. " - "Letters must be typed in the correct " - "case."); -@@ -1304,7 +1317,7 @@ gdm_verify_user (GdmDisplay *d, - "Letters must be typed in the correct " - "case."); - } -- if (is_capslock) { -+ if (is_capslock && !is_account_disabled && !is_account_expired) { - msg = g_strconcat (basemsg, " ", - _("Caps Lock is on."), - NULL); -@@ -1416,6 +1429,9 @@ gdm_verify_setup_user (GdmDisplay *d, co - - /* Start authentication session */ - did_we_ask_for_password = FALSE; -+ is_account_disabled = FALSE; -+ is_account_expired = FALSE; -+ - if ((pamerr = pam_authenticate (pamh, null_tok)) != PAM_SUCCESS) { - if (gdm_slave_action_pending ()) { - gdm_error (_("Couldn't authenticate user")); -diff -upr gdm-2.19.5-pre/gui/gdmchooser.c gdm-2.19.5-post/gui/gdmchooser.c ---- gdm-2.19.5-pre/gui/gdmchooser.c 2007-07-30 13:51:03.000000000 -0500 -+++ gdm-2.19.5-post/gui/gdmchooser.c 2007-08-16 15:31:56.000000000 -0500 -@@ -1799,6 +1799,7 @@ gdm_read_config (void) - gdm_config_get_bool (GDM_KEY_ALLOW_ADD); - gdm_config_get_bool (GDM_KEY_BROADCAST); - gdm_config_get_bool (GDM_KEY_MULTICAST); -+ gdm_config_get_bool (GDM_KEY_SHOW_DOMAIN); - - gdmcomm_comm_bulk_stop (); - -@@ -1828,6 +1829,7 @@ gdm_reread_config (int sig, gpointer dat - gdm_config_reload_int (GDM_KEY_SCAN_TIME) || - gdm_config_reload_bool (GDM_KEY_ALLOW_ADD) || - gdm_config_reload_bool (GDM_KEY_BROADCAST) || -+ gdm_config_reload_bool (GDM_KEY_SHOW_DOMAIN) || - gdm_config_reload_bool (GDM_KEY_MULTICAST)) { - - if (RUNNING_UNDER_GDM) { -diff -upr gdm-2.19.5-pre/gui/gdmlogin.c gdm-2.19.5-post/gui/gdmlogin.c ---- gdm-2.19.5-pre/gui/gdmlogin.c 2007-07-30 13:51:02.000000000 -0500 -+++ gdm-2.19.5-post/gui/gdmlogin.c 2007-08-16 15:31:56.000000000 -0500 -@@ -2910,6 +2910,7 @@ gdm_read_config (void) - gdm_config_get_bool (GDM_KEY_TIMED_LOGIN_ENABLE); - gdm_config_get_bool (GDM_KEY_TITLE_BAR); - gdm_config_get_bool (GDM_KEY_ADD_GTK_MODULES); -+ gdm_config_get_bool (GDM_KEY_SHOW_DOMAIN); - - /* Keys not to include in reread_config */ - gdm_config_get_bool (GDM_KEY_LOCK_POSITION); -@@ -2992,6 +2993,7 @@ gdm_reread_config (int sig, gpointer dat - gdm_config_reload_bool (GDM_KEY_SYSTEM_MENU) || - gdm_config_reload_bool (GDM_KEY_TIMED_LOGIN_ENABLE) || - gdm_config_reload_bool (GDM_KEY_TITLE_BAR) || -+ gdm_config_reload_bool (GDM_KEY_SHOW_DOMAIN) || - gdm_config_reload_bool (GDM_KEY_ADD_GTK_MODULES)) { - - /* Set busy cursor */ -diff -upr gdm-2.19.5-pre/gui/greeter/greeter.c gdm-2.19.5-post/gui/greeter/greeter.c ---- gdm-2.19.5-pre/gui/greeter/greeter.c 2007-08-16 15:31:59.000000000 -0500 -+++ gdm-2.19.5-post/gui/greeter/greeter.c 2007-08-16 15:31:56.000000000 -0500 -@@ -63,6 +63,13 @@ - #include "greeter_session.h" - #include "greeter_system.h" - -+static GtkWidget *hig_dialog_new (GtkWindow *parent, -+ GtkDialogFlags flags, -+ GtkMessageType type, -+ GtkButtonsType buttons, -+ const gchar *primary_message, -+ const gchar *secondary_message); -+ - gboolean DOING_GDM_DEVELOPMENT = FALSE; - - GtkWidget *window; -@@ -153,6 +160,53 @@ get_random_theme () - return theme; - } - -+static gchar *errdlg_message = NULL; -+ -+static void -+show_errdlg_messages (void) -+{ -+ gchar *tmp; -+ GtkWidget *dlg; -+ -+ if (!errdlg_message) -+ return; -+ -+ /* we should be now fine for focusing new windows */ -+ gdm_wm_focus_new_windows (TRUE); -+ -+ tmp = ve_locale_to_utf8 (errdlg_message); -+ dlg = hig_dialog_new (NULL /* parent */, -+ GTK_DIALOG_MODAL /* flags */, -+ GTK_MESSAGE_ERROR, -+ GTK_BUTTONS_OK, -+ tmp, -+ ""); -+ g_free (tmp); -+ g_free (errdlg_message); -+ errdlg_message = NULL; -+ -+ gdm_wm_center_window (GTK_WINDOW (dlg)); -+ -+ gdm_wm_no_login_focus_push (); -+ gtk_dialog_run (GTK_DIALOG (dlg)); -+ gtk_widget_destroy (dlg); -+ gdm_wm_no_login_focus_pop (); -+} -+ -+static void -+append_errdlg_message (const gchar *message) -+{ -+ if (errdlg_message) { -+ gchar *tmp; -+ -+ tmp = g_strjoin ("\n\n", errdlg_message, message, NULL); -+ g_free (errdlg_message); -+ errdlg_message = tmp; -+ } else { -+ errdlg_message = g_strdup (message); -+ } -+} -+ - static gboolean - greeter_ctrl_handler (GIOChannel *source, - GIOCondition cond, -@@ -243,6 +297,8 @@ process_operation (guchar op_code, - break; - - case GDM_PROMPT: -+ show_errdlg_messages (); -+ - tmp = ve_locale_to_utf8 (args); - if (tmp != NULL && strcmp (tmp, _("Username:")) == 0) { - gdm_common_login_sound (gdm_config_get_string (GDM_KEY_SOUND_PROGRAM), -@@ -265,6 +321,8 @@ process_operation (guchar op_code, - break; - - case GDM_NOECHO: -+ show_errdlg_messages (); -+ - tmp = ve_locale_to_utf8 (args); - - greeter_probably_login_prompt = FALSE; -@@ -284,6 +342,8 @@ process_operation (guchar op_code, - break; - - case GDM_MSG: -+ show_errdlg_messages (); -+ - tmp = ve_locale_to_utf8 (args); - greeter_item_pam_message (tmp); - g_free (tmp); -@@ -292,6 +352,8 @@ process_operation (guchar op_code, - break; - - case GDM_ERRBOX: -+ show_errdlg_messages (); -+ - tmp = ve_locale_to_utf8 (args); - greeter_item_pam_error (tmp); - g_free (tmp); -@@ -301,30 +363,17 @@ process_operation (guchar op_code, - break; - - case GDM_ERRDLG: -- /* we should be now fine for focusing new windows */ -- gdm_wm_focus_new_windows (TRUE); -- - tmp = ve_locale_to_utf8 (args); -- dlg = hig_dialog_new (NULL /* parent */, -- GTK_DIALOG_MODAL /* flags */, -- GTK_MESSAGE_ERROR, -- GTK_BUTTONS_OK, -- tmp, -- ""); -+ append_errdlg_message (tmp); - g_free (tmp); - -- gdm_wm_center_window (GTK_WINDOW (dlg)); -- -- gdm_wm_no_login_focus_push (); -- gtk_dialog_run (GTK_DIALOG (dlg)); -- gtk_widget_destroy (dlg); -- gdm_wm_no_login_focus_pop (); -- - printf ("%c\n", STX); - fflush (stdout); - break; - - case GDM_SESS: -+ show_errdlg_messages (); -+ - tmp = ve_locale_to_utf8 (args); - session = gdm_session_lookup (tmp, &lookup_status); - if (lookup_status != SESSION_LOOKUP_SUCCESS) { -@@ -392,10 +441,14 @@ process_operation (guchar op_code, - break; - - case GDM_LANG: -+ show_errdlg_messages (); -+ - gdm_lang_op_lang (args); - break; - - case GDM_SSESS: -+ show_errdlg_messages (); -+ - if (gdm_get_save_session () == GTK_RESPONSE_YES) - printf ("%cY\n", STX); - else -@@ -405,6 +458,8 @@ process_operation (guchar op_code, - break; - - case GDM_SLANG: -+ show_errdlg_messages (); -+ - gdm_lang_op_slang (args); - break; - -@@ -447,6 +502,8 @@ process_operation (guchar op_code, - break; - - case GDM_QUIT: -+ show_errdlg_messages (); -+ - greeter_item_timed_stop (); - - if (require_quarter) { -@@ -563,6 +620,8 @@ process_operation (guchar op_code, - break; - - case GDM_SAVEDIE: -+ show_errdlg_messages (); -+ - /* Set busy cursor */ - gdm_common_setup_cursor (GDK_WATCH); - -@@ -582,6 +641,8 @@ process_operation (guchar op_code, - break; - - default: -+ show_errdlg_messages (); -+ - gdm_common_fail_greeter ("Unexpected greeter command received: '%c'", op_code); - break; - } -@@ -918,6 +979,7 @@ gdm_read_config (void) - gdm_config_get_bool (GDM_KEY_SOUND_ON_LOGIN); - gdm_config_get_bool (GDM_KEY_DEFAULT_WELCOME); - gdm_config_get_bool (GDM_KEY_DEFAULT_REMOTE_WELCOME); -+ gdm_config_get_bool (GDM_KEY_SHOW_DOMAIN); - gdm_config_get_bool (GDM_KEY_ADD_GTK_MODULES); - gdm_config_get_bool (GDM_KEY_BROWSER); - -@@ -1007,6 +1069,7 @@ greeter_reread_config (int sig, gpointer - gdm_config_reload_bool (GDM_KEY_SHOW_LAST_SESSION) || - gdm_config_reload_bool (GDM_KEY_ALLOW_ROOT) || - gdm_config_reload_bool (GDM_KEY_ALLOW_REMOTE_ROOT) || -+ gdm_config_reload_bool (GDM_KEY_SHOW_DOMAIN) || - gdm_config_reload_bool (GDM_KEY_ADD_GTK_MODULES) || - gdm_config_reload_bool (GDM_KEY_BROWSER)) { - -diff -upr gdm-2.19.5-pre/gui/greeter/greeter_canvas_item.c gdm-2.19.5-post/gui/greeter/greeter_canvas_item.c ---- gdm-2.19.5-pre/gui/greeter/greeter_canvas_item.c 2007-08-16 15:31:59.000000000 -0500 -+++ gdm-2.19.5-post/gui/greeter/greeter_canvas_item.c 2007-08-16 15:31:56.000000000 -0500 -@@ -20,6 +20,8 @@ - - #include - #include -+#include -+#include - #include - #include - #include -@@ -46,6 +48,9 @@ - #include "greeter_canvas_text.h" - #include "greeter_parser.h" - -+#define WBINFO_DOMAINS_MAX 64 -+#define WBINFO_READ_MAX 256 -+ - /* Keep track of buttons so they can be set sensitive/insensitive */ - GtkButton *gtk_ok_button = NULL; - GtkButton *gtk_start_again_button = NULL; -@@ -395,6 +400,189 @@ set_root_pixmap (GdkPixmap *pixmap) - return FALSE; - } - -+gboolean greeter_can_do_domain_login = FALSE; -+gchar *greeter_domain_separator = NULL; -+ -+gboolean greeter_wbinfo_was_run = FALSE; -+gboolean greeter_wbinfo_is_running = FALSE; -+GPid greeter_wbinfo_pid; -+GIOChannel *greeter_wbinfo_channel; -+GString *greeter_wbinfo_output; -+ -+static void -+wbinfo_end (void) -+{ -+ GreeterItemInfo *domain_entry_item_info; -+ GtkWidget *domain_entry = NULL; -+ gint wbinfo_status = 0; -+ gchar *wbinfo_output; -+ GtkListStore *domain_list_store; -+ gchar **tokens = NULL; -+ gchar *own_domain = NULL; -+ gint select_index = 0; -+ GtkTreeIter iter; -+ const gchar *text; -+ gint i; -+ -+ if (!greeter_wbinfo_is_running) -+ return; -+ -+ greeter_wbinfo_is_running = FALSE; -+ waitpid (greeter_wbinfo_pid, &wbinfo_status, 0); -+ g_spawn_close_pid (greeter_wbinfo_pid); -+ -+ wbinfo_output = g_string_free (greeter_wbinfo_output, FALSE); -+ -+ domain_entry_item_info = greeter_lookup_id ("domain-entry"); -+ if (domain_entry_item_info && domain_entry_item_info->item && -+ GNOME_IS_CANVAS_WIDGET (domain_entry_item_info->item)) { -+ domain_entry = GNOME_CANVAS_WIDGET (domain_entry_item_info->item)->widget; -+ } else { -+ g_free (wbinfo_output); -+ return; -+ } -+ -+ /* Set up the domain store model */ -+ -+ domain_list_store = gtk_list_store_new (1, G_TYPE_STRING); -+ -+ /* The "local login" entry */ -+ -+ gtk_list_store_append (domain_list_store, &iter); -+ gtk_list_store_set (domain_list_store, &iter, -+ 0, _(""), -+ -1); -+ -+ /* Process wbinfo output, if any */ -+ -+ if (WEXITSTATUS (wbinfo_status) == 0 && wbinfo_output && *wbinfo_output) { -+ /* The first line of output should be the domain separator, -+ * and any remaining lines are trusted domains. */ -+ tokens = g_strsplit_set (wbinfo_output, "\n\r", WBINFO_DOMAINS_MAX + 1); -+ } -+ -+ g_free (wbinfo_output); -+ g_free (greeter_domain_separator); -+ greeter_domain_separator = NULL; -+ -+ if (tokens && tokens [0]) { -+ greeter_can_do_domain_login = TRUE; -+ greeter_domain_separator = g_strdup (tokens [0]); -+ -+ own_domain = tokens [1]; -+ -+ /* Generate a sorted list of domains for the domain selector combo. */ -+ -+ g_qsort_with_data (&tokens [1], -+ g_strv_length (tokens) - 1, -+ sizeof (gchar *), -+ (GCompareDataFunc) g_ascii_strcasecmp, -+ NULL); -+ -+ for (i = 1; tokens [i]; i++) { -+ /* Ensure no blank entries */ -+ if (!strlen (tokens [i])) -+ continue; -+ -+ gtk_list_store_append (domain_list_store, &iter); -+ gtk_list_store_set (domain_list_store, &iter, -+ 0, tokens [i], -+ -1); -+ -+ if (tokens [i] == own_domain) -+ select_index = i; -+ } -+ -+ } else { -+ greeter_can_do_domain_login = FALSE; -+ } -+ -+ if (tokens) -+ g_strfreev (tokens); -+ -+ /* Assign model and default selection to widget */ -+ -+ gtk_combo_box_set_model (GTK_COMBO_BOX (domain_entry), -+ GTK_TREE_MODEL (domain_list_store)); -+ gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (domain_entry), 0); -+ -+ /* Default to our own domain, but only if the entry was empty */ -+ text = gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (domain_entry)))); -+ if (!text || !*text) -+ gtk_combo_box_set_active (GTK_COMBO_BOX (domain_entry), select_index); -+ -+ g_object_unref (domain_list_store); -+} -+ -+static gboolean -+wbinfo_on_output (GIOChannel *channel, GIOCondition condition, gpointer data) -+{ -+ gchar buf [WBINFO_READ_MAX]; -+ gsize bytes_read; -+ GIOStatus status; -+ -+ status = g_io_channel_read_chars (channel, buf, WBINFO_READ_MAX, &bytes_read, NULL); -+ -+ if (bytes_read < 1) { -+ wbinfo_end (); -+ return FALSE; -+ } -+ -+ g_string_append_len (greeter_wbinfo_output, buf, bytes_read); -+ return TRUE; -+} -+ -+static void -+wbinfo_begin (void) -+{ -+ gchar *wbinfo_args [] = { "wbinfo", "--separator", "--own-domain", "--trusted-domains", NULL }; -+ gchar *wbinfo_env [] = { NULL }; -+ gint wbinfo_stdout_fd; -+ -+ if (greeter_wbinfo_was_run) -+ return; -+ -+ greeter_wbinfo_was_run = TRUE; -+ -+ /* Lame guess, in case winbind isn't running, but gets started later. This -+ * is a workaround for testing and broken systems. */ -+ greeter_domain_separator = g_strdup ("\\"); -+ -+ if (!g_spawn_async_with_pipes ("/", -+ wbinfo_args, -+ wbinfo_env, -+ G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL | -+ G_SPAWN_DO_NOT_REAP_CHILD, -+ NULL /* child setup function */, -+ NULL /* child setup user_data */, -+ &greeter_wbinfo_pid, -+ NULL /* &wbinfo_stdin_fd */, -+ &wbinfo_stdout_fd, -+ NULL /* &wbinfo_stderr_fd */, -+ NULL)) -+ return; -+ -+ greeter_wbinfo_is_running = TRUE; -+ greeter_wbinfo_output = g_string_new (""); -+ -+ fcntl (wbinfo_stdout_fd, F_SETFL, O_NONBLOCK); -+ -+ greeter_wbinfo_channel = g_io_channel_unix_new (wbinfo_stdout_fd); -+ g_io_channel_set_encoding (greeter_wbinfo_channel, NULL, NULL); -+ g_io_channel_set_close_on_unref (greeter_wbinfo_channel, TRUE); -+ g_io_add_watch (greeter_wbinfo_channel, G_IO_IN | G_IO_HUP, wbinfo_on_output, NULL); -+ g_io_channel_unref (greeter_wbinfo_channel); /* Watch holds remaining ref */ -+} -+ -+static gboolean -+deselect_entry_text (GtkEntry *entry) -+{ -+ gtk_editable_select_region (GTK_EDITABLE (entry), 0, 0); -+ gtk_editable_set_position (GTK_EDITABLE (entry), -1); -+ -+ return FALSE; -+} -+ - void - greeter_item_create_canvas_item (GreeterItemInfo *item) - { -@@ -686,6 +874,48 @@ greeter_item_create_canvas_item (Greeter - - break; - -+ case GREETER_ITEM_TYPE_COMBO_BOX_ENTRY: -+ entry = gtk_combo_box_entry_new (); -+ -+ gtk_widget_set_name (entry, "domain-entry"); -+ -+ gtk_entry_set_has_frame (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (entry))), FALSE); -+ gtk_widget_modify_font (entry, item->data.text.fonts[GREETER_ITEM_STATE_NORMAL]); -+ -+ get_gdk_color_from_rgb (&c, item->data.text.colors[GREETER_ITEM_STATE_NORMAL]); -+ gtk_widget_modify_text (entry, GTK_STATE_NORMAL, &c); -+ -+ item->item = gnome_canvas_item_new (group, -+ GNOME_TYPE_CANVAS_WIDGET, -+ "widget", entry, -+ "x", x1, -+ "y", y1, -+ "height", (double)rect.height, -+ "width", (double)rect.width, -+ NULL); -+ -+ /* cursor blinking is evil on remote displays, don't do it forever */ -+ gdm_common_setup_blinking_entry (gtk_bin_get_child (GTK_BIN (entry))); -+ -+ /* Recall the last used domain */ -+ if (g_file_get_contents (GDM_SCRATCH_DIR "/last_domain", &text, NULL, NULL)) { -+ GtkWidget *temp_entry; -+ -+ temp_entry = gtk_bin_get_child (GTK_BIN (entry)); -+ -+ gtk_entry_set_text (GTK_ENTRY (temp_entry), text); -+ -+ /* The set text gets selected. It looks bad. Avoid that. */ -+ g_idle_add_full (G_PRIORITY_LOW, (GSourceFunc) deselect_entry_text, temp_entry, NULL); -+ -+ g_free (text); -+ } -+ -+ /* Query wbinfo */ -+ wbinfo_begin (); -+ -+ break; -+ - case GREETER_ITEM_TYPE_LIST: - /* Note a list type must be setup later and we will add the list store - * to it then, depending on the type. Likely userlist is the -diff -upr gdm-2.19.5-pre/gui/greeter/greeter_configuration.h gdm-2.19.5-post/gui/greeter/greeter_configuration.h ---- gdm-2.19.5-pre/gui/greeter/greeter_configuration.h 2007-07-30 13:51:01.000000000 -0500 -+++ gdm-2.19.5-post/gui/greeter/greeter_configuration.h 2007-08-16 15:31:56.000000000 -0500 -@@ -65,6 +65,7 @@ extern gchar *GdmSoundOnLoginFailureFile - extern gboolean GdmSoundOnLoginReady; - extern gboolean GdmSoundOnLoginSuccess; - extern gboolean GdmSoundOnLoginFailure; -+extern gboolean GdmShowDomain; - - extern gboolean GDM_IS_LOCAL; - extern gboolean DOING_GDM_DEVELOPMENT; -diff -upr gdm-2.19.5-pre/gui/greeter/greeter.h gdm-2.19.5-post/gui/greeter/greeter.h ---- gdm-2.19.5-pre/gui/greeter/greeter.h 2007-07-30 13:51:01.000000000 -0500 -+++ gdm-2.19.5-post/gui/greeter/greeter.h 2007-08-16 15:31:56.000000000 -0500 -@@ -27,6 +27,9 @@ extern GtkWidget *window; - - extern gboolean greeter_probably_login_prompt; - -+extern gboolean greeter_can_do_domain_login; -+extern gchar *greeter_domain_separator; -+ - void greeter_ignore_buttons (gboolean val); - - #endif -diff -upr gdm-2.19.5-pre/gui/greeter/greeter_item.c gdm-2.19.5-post/gui/greeter/greeter_item.c ---- gdm-2.19.5-pre/gui/greeter/greeter_item.c 2007-07-30 13:51:01.000000000 -0500 -+++ gdm-2.19.5-post/gui/greeter/greeter_item.c 2007-08-16 15:57:07.000000000 -0500 -@@ -234,6 +234,11 @@ greeter_item_is_visible (GreeterItemInfo - return FALSE; - } - -+ if ( ! gdm_config_get_bool (GDM_KEY_SHOW_DOMAIN) && -+ (info->show_type != NULL && -+ g_str_has_prefix (info->show_type, "domain"))) -+ return FALSE; -+ - if (( ! gdm_config_get_bool (GDM_KEY_TIMED_LOGIN_ENABLE) || - ve_string_empty (gdm_config_get_string (GDM_KEY_TIMED_LOGIN)) || - NULL == g_getenv("GDM_TIMED_LOGIN_OK")) && -diff -upr gdm-2.19.5-pre/gui/greeter/greeter_item.h gdm-2.19.5-post/gui/greeter/greeter_item.h ---- gdm-2.19.5-pre/gui/greeter/greeter_item.h 2007-07-30 13:51:01.000000000 -0500 -+++ gdm-2.19.5-post/gui/greeter/greeter_item.h 2007-08-16 15:31:56.000000000 -0500 -@@ -47,7 +47,8 @@ enum _GreeterItemType { - GREETER_ITEM_TYPE_LABEL, - GREETER_ITEM_TYPE_ENTRY, - GREETER_ITEM_TYPE_LIST, -- GREETER_ITEM_TYPE_BUTTON -+ GREETER_ITEM_TYPE_BUTTON, -+ GREETER_ITEM_TYPE_COMBO_BOX_ENTRY - }; - - /* Make sure to adjust the bitfield in the structure if -@@ -154,7 +155,7 @@ struct _GreeterItemInfo { - union { - /* Note: we want to have alphas, colors and have_color coincide for - * all types that have it */ --#define GREETER_ITEM_TYPE_IS_TEXT(info) ((info)->item_type == GREETER_ITEM_TYPE_LABEL || (info)->item_type == GREETER_ITEM_TYPE_ENTRY) -+#define GREETER_ITEM_TYPE_IS_TEXT(info) ((info)->item_type == GREETER_ITEM_TYPE_LABEL || (info)->item_type == GREETER_ITEM_TYPE_ENTRY || (info)->item_type == GREETER_ITEM_TYPE_COMBO_BOX_ENTRY) - struct { - guint8 alphas[GREETER_ITEM_STATE_MAX]; - guint32 colors[GREETER_ITEM_STATE_MAX]; -diff -upr gdm-2.19.5-pre/gui/greeter/greeter_item_pam.c gdm-2.19.5-post/gui/greeter/greeter_item_pam.c ---- gdm-2.19.5-pre/gui/greeter/greeter_item_pam.c 2007-07-30 13:51:01.000000000 -0500 -+++ gdm-2.19.5-post/gui/greeter/greeter_item_pam.c 2007-08-16 15:31:56.000000000 -0500 -@@ -25,6 +25,7 @@ - - #include "gdm-common.h" - #include "gdm-socket-protocol.h" -+#include "gdm-daemon-config-keys.h" - - #include "greeter.h" - #include "greeter_item.h" -@@ -37,6 +38,7 @@ - #include "gdm.h" - #include "gdmwm.h" - #include "gdmcommon.h" -+#include "gdmconfig.h" - - static gboolean messages_to_give = FALSE; - static gboolean replace_msg = TRUE; -@@ -116,11 +118,29 @@ set_text (GreeterItemInfo *info, const c - info->item); - } - -+static void -+domain_entry_set_sensitive (gboolean sensitive) -+{ -+ if (gdm_config_get_bool (GDM_KEY_SHOW_DOMAIN)) -+ { -+ GreeterItemInfo *domain_entry_item_info; -+ GtkWidget *domain_entry = NULL; -+ -+ domain_entry_item_info = greeter_lookup_id ("domain-entry"); -+ if (domain_entry_item_info && domain_entry_item_info->item && -+ GNOME_IS_CANVAS_WIDGET (domain_entry_item_info->item)) -+ domain_entry = GNOME_CANVAS_WIDGET (domain_entry_item_info->item)->widget; -+ -+ if (domain_entry) -+ gtk_widget_set_sensitive (domain_entry, sensitive); -+ } -+} -+ - void - greeter_item_pam_login (GtkEntry *entry, GreeterItemInfo *info) - { - const char *str; -- char *tmp; -+ char *tmp, *tmp2; - GreeterItemInfo *error_info; - - if (gtk_ok_button != NULL) -@@ -152,6 +172,7 @@ greeter_item_pam_login (GtkEntry *entry, - } - - gtk_widget_set_sensitive (GTK_WIDGET (entry), FALSE); -+ domain_entry_set_sensitive (FALSE); - - /* clear the err_box */ - if (err_box_clear_handler > 0) -@@ -166,6 +187,33 @@ greeter_item_pam_login (GtkEntry *entry, - } - - tmp = ve_locale_from_utf8 (str); -+ -+ /* Prepend the domain if applicable */ -+ if (greeter_probably_login_prompt && gdm_config_get_bool (GDM_KEY_SHOW_DOMAIN)) -+ { -+ GreeterItemInfo *domain_entry_item_info; -+ GtkWidget *domain_entry = NULL; -+ -+ domain_entry_item_info = greeter_lookup_id ("domain-entry"); -+ if (domain_entry_item_info && domain_entry_item_info->item && -+ GNOME_IS_CANVAS_WIDGET (domain_entry_item_info->item)) -+ domain_entry = GNOME_CANVAS_WIDGET (domain_entry_item_info->item)->widget; -+ -+ if (domain_entry && (str = gtk_combo_box_get_active_text (GTK_COMBO_BOX (domain_entry))) && *str && -+ strcmp (str, _(""))) -+ { -+ g_file_set_contents (GDM_SCRATCH_DIR "/last_domain", str, strlen (str), NULL); -+ -+ tmp2 = g_strdup_printf ("%s%s%s", str, greeter_domain_separator, tmp); -+ g_free (tmp); -+ tmp = tmp2; -+ } -+ else -+ { -+ g_remove (GDM_SCRATCH_DIR "/last_domain"); -+ } -+ } -+ - printf ("%c%s\n", STX, tmp); - fflush (stdout); - g_free (tmp); -@@ -224,6 +272,7 @@ greeter_item_pam_setup (void) - - /* initially insensitive */ - gtk_widget_set_sensitive (entry, FALSE); -+ domain_entry_set_sensitive (FALSE); - } - - g_signal_connect (entry, "activate", -@@ -288,6 +337,9 @@ greeter_item_pam_prompt (const char *mes - gtk_entry_set_max_length (GTK_ENTRY (entry), entry_len); - gtk_entry_set_text (GTK_ENTRY (entry), ""); - gtk_widget_grab_focus (entry); -+ -+ /* Domain selector should only be accessed when entering the user name */ -+ domain_entry_set_sensitive (entry_visible); - } - - messages_to_give = FALSE; -diff -upr gdm-2.19.5-pre/gui/greeter/greeter_parser.c gdm-2.19.5-post/gui/greeter/greeter_parser.c ---- gdm-2.19.5-pre/gui/greeter/greeter_parser.c 2007-07-30 13:51:01.000000000 -0500 -+++ gdm-2.19.5-post/gui/greeter/greeter_parser.c 2007-08-16 15:31:56.000000000 -0500 -@@ -402,6 +402,11 @@ parse_stock (xmlNodePtr node, - g_free (*translated_text); - *translated_text = g_strdup (_("Username:")); - } -+ else if (g_ascii_strcasecmp ((char *) prop, "domain-label") == 0) -+ { -+ g_free (*translated_text); -+ *translated_text = g_strdup (_("Domain:")); -+ } - else if (g_ascii_strcasecmp ((char *) prop, "ok") == 0) - { - g_free (*translated_text); -@@ -1649,6 +1654,15 @@ parse_entry (xmlNodePtr node, - } - - static gboolean -+parse_combo_box_entry (xmlNodePtr node, -+ GreeterItemInfo *info, -+ GError **error) -+{ -+ /* A ComboBoxEntry is just an Entry with a dropdown list */ -+ return parse_entry (node, info, error); -+} -+ -+static gboolean - parse_items (xmlNodePtr node, - GList **items_out, - GreeterItemInfo *parent, -@@ -1704,6 +1718,8 @@ parse_items (xmlNodePtr node, - item_type = GREETER_ITEM_TYPE_LIST; - else if (strcmp ((char *) type, "button") == 0) - item_type = GREETER_ITEM_TYPE_BUTTON; -+ else if (strcmp ((char *) type, "combo-box-entry") == 0) -+ item_type = GREETER_ITEM_TYPE_COMBO_BOX_ENTRY; - else - { - g_set_error (error, -@@ -1750,6 +1766,9 @@ parse_items (xmlNodePtr node, - case GREETER_ITEM_TYPE_BUTTON: - res = parse_gtkbutton (child, info, error); - break; -+ case GREETER_ITEM_TYPE_COMBO_BOX_ENTRY: -+ res = parse_combo_box_entry (child, info, error); -+ break; - default: - g_set_error (error, - GREETER_PARSER_ERROR, diff --git a/gdm-2.8.0.7-halt-needs-root.patch b/gdm-2.8.0.7-halt-needs-root.patch deleted file mode 100644 index 735d2a5..0000000 --- a/gdm-2.8.0.7-halt-needs-root.patch +++ /dev/null @@ -1,568 +0,0 @@ -diff -upr gdm-2.19.7-pre/daemon/gdm-daemon-config-entries.h gdm-2.19.7-post/daemon/gdm-daemon-config-entries.h ---- gdm-2.19.7-pre/daemon/gdm-daemon-config-entries.h 2007-09-14 00:07:36.000000000 -0500 -+++ gdm-2.19.7-post/daemon/gdm-daemon-config-entries.h 2007-09-14 00:07:32.000000000 -0500 -@@ -110,6 +110,7 @@ typedef enum { - GDM_ID_ALLOW_ROOT, - GDM_ID_ALLOW_REMOTE_ROOT, - GDM_ID_ALLOW_REMOTE_AUTOLOGIN, -+ GDM_ID_SECURE_SHUTDOWN, - GDM_ID_USER_MAX_FILE, - GDM_ID_RELAX_PERM, - GDM_ID_CHECK_DIR_OWNER, -@@ -360,6 +361,7 @@ static const GdmConfigEntry gdm_daemon_c - { GDM_CONFIG_GROUP_SECURITY, "AllowRoot", GDM_CONFIG_VALUE_BOOL, "true", GDM_ID_ALLOW_ROOT }, - { GDM_CONFIG_GROUP_SECURITY, "AllowRemoteRoot", GDM_CONFIG_VALUE_BOOL, "false", GDM_ID_ALLOW_REMOTE_ROOT }, - { GDM_CONFIG_GROUP_SECURITY, "AllowRemoteAutoLogin", GDM_CONFIG_VALUE_BOOL, "false", GDM_ID_ALLOW_REMOTE_AUTOLOGIN }, -+ { GDM_CONFIG_GROUP_SECURITY, "SecureShutdown", GDM_CONFIG_VALUE_BOOL, "false", GDM_ID_SECURE_SHUTDOWN }, - { GDM_CONFIG_GROUP_SECURITY, "UserMaxFile", GDM_CONFIG_VALUE_INT, "65536", GDM_ID_USER_MAX_FILE }, - { GDM_CONFIG_GROUP_SECURITY, "RelaxPermissions", GDM_CONFIG_VALUE_INT, "0", GDM_ID_RELAX_PERM }, - { GDM_CONFIG_GROUP_SECURITY, "CheckDirOwner", GDM_CONFIG_VALUE_BOOL, "true", GDM_ID_CHECK_DIR_OWNER }, -diff -upr gdm-2.19.7-pre/daemon/gdm-daemon-config-keys.h gdm-2.19.7-post/daemon/gdm-daemon-config-keys.h ---- gdm-2.19.7-pre/daemon/gdm-daemon-config-keys.h 2007-09-14 00:07:36.000000000 -0500 -+++ gdm-2.19.7-post/daemon/gdm-daemon-config-keys.h 2007-09-14 00:07:32.000000000 -0500 -@@ -98,6 +98,7 @@ G_BEGIN_DECLS - #define GDM_KEY_ALLOW_ROOT "security/AllowRoot=true" - #define GDM_KEY_ALLOW_REMOTE_ROOT "security/AllowRemoteRoot=false" - #define GDM_KEY_ALLOW_REMOTE_AUTOLOGIN "security/AllowRemoteAutoLogin=false" -+#define GDM_KEY_SECURE_SHUTDOWN "security/SecureShutdown=false" - #define GDM_KEY_USER_MAX_FILE "security/UserMaxFile=65536" - #define GDM_KEY_RELAX_PERM "security/RelaxPermissions=0" - #define GDM_KEY_CHECK_DIR_OWNER "security/CheckDirOwner=true" -@@ -208,6 +209,7 @@ G_BEGIN_DECLS - #define GDM_NOTIFY_ALLOW_REMOTE_ROOT "AllowRemoteRoot" /* */ - #define GDM_NOTIFY_ALLOW_ROOT "AllowRoot" /* */ - #define GDM_NOTIFY_ALLOW_REMOTE_AUTOLOGIN "AllowRemoteAutoLogin" /* */ -+#define GDM_NOTIFY_SECURE_SHUTDOWN "SecureShutdown" /* */ - #define GDM_NOTIFY_SYSTEM_MENU "SystemMenu" /* */ - #define GDM_NOTIFY_CONFIG_AVAILABLE "ConfigAvailable" /* */ - #define GDM_NOTIFY_CHOOSER_BUTTON "ChooserButton" /* */ -diff -upr gdm-2.19.7-pre/daemon/gdm-socket-protocol.h gdm-2.19.7-post/daemon/gdm-socket-protocol.h ---- gdm-2.19.7-pre/daemon/gdm-socket-protocol.h 2007-08-27 11:08:20.000000000 -0500 -+++ gdm-2.19.7-post/daemon/gdm-socket-protocol.h 2007-09-14 00:07:32.000000000 -0500 -@@ -68,6 +68,8 @@ - /* Different login interruptions */ - #define GDM_INTERRUPT_TIMED_LOGIN 'T' - #define GDM_INTERRUPT_CONFIGURE 'C' -+#define GDM_INTERRUPT_HALT 'K' -+#define GDM_INTERRUPT_REBOOT 'B' - #define GDM_INTERRUPT_SUSPEND 'S' - #define GDM_INTERRUPT_SELECT_USER 'U' - #define GDM_INTERRUPT_LOGIN_SOUND 'L' -diff -upr gdm-2.19.7-pre/daemon/slave.c gdm-2.19.7-post/daemon/slave.c ---- gdm-2.19.7-pre/daemon/slave.c 2007-09-14 00:07:36.000000000 -0500 -+++ gdm-2.19.7-post/daemon/slave.c 2007-09-14 00:08:08.000000000 -0500 -@@ -140,6 +140,8 @@ static gboolean do_timed_login = - static gboolean do_configurator = FALSE; /* If this is true, login as - * root and start the - * configurator */ -+static gboolean do_system_halt = FALSE; -+static gboolean do_system_reboot = FALSE; - static gboolean do_cancel = FALSE; /* If this is true, go back to - username entry & unselect - face browser (if present) */ -@@ -2067,6 +2069,96 @@ play_login_sound (const char *sound_file - return TRUE; - } - -+static gboolean -+get_root_auth (const gchar *message, struct passwd **pwent) -+{ -+ gboolean oldAllowRoot; -+ -+ /* clear any error */ -+ gdm_slave_greeter_ctl_no_ret (GDM_ERRBOX, ""); -+ gdm_slave_greeter_ctl_no_ret (GDM_MSG, message); -+ -+ /* we always allow root for this */ -+ oldAllowRoot = gdm_daemon_config_get_value_bool (GDM_KEY_ALLOW_ROOT); -+ gdm_daemon_config_set_value_bool (GDM_KEY_ALLOW_ROOT, TRUE); -+ -+ *pwent = getpwuid (0); -+ if G_UNLIKELY (*pwent == NULL) { -+ /* what? no "root" ?? */ -+ gdm_slave_greeter_ctl_no_ret (GDM_RESET, ""); -+ gdm_daemon_config_set_value_bool (GDM_KEY_ALLOW_ROOT, oldAllowRoot); -+ return FALSE; /* continue */ -+ } -+ -+ gdm_slave_greeter_ctl_no_ret (GDM_SETLOGIN, (*pwent)->pw_name); -+ login_user = gdm_verify_user (d, -+ (*pwent)->pw_name, -+ FALSE); -+ gdm_daemon_config_set_value_bool (GDM_KEY_ALLOW_ROOT, oldAllowRoot); -+ -+ /* Clear message */ -+ gdm_slave_greeter_ctl_no_ret (GDM_MSG, ""); -+ -+ if G_UNLIKELY (do_restart_greeter) { -+ g_free (login_user); -+ login_user = NULL; -+ do_restart_greeter = FALSE; -+ restart_the_greeter (); -+ return FALSE; /* continue */ -+ } -+ -+ check_notifies_now (); -+ -+ /* The wanker can't remember his password */ -+ if (login_user == NULL) { -+ gdm_debug ("gdm_slave_wait_for_login: No login/Bad login"); -+ gdm_slave_greeter_ctl_no_ret (GDM_RESET, ""); -+ return FALSE; /* continue */ -+ } -+ -+ /* Wipe the login */ -+ g_free (login_user); -+ login_user = NULL; -+ -+ /* Note that this can still fall through to -+ * the timed login if the user doesn't type in the -+ * password fast enough and there is timed login -+ * enabled */ -+ if (do_timed_login) { -+ return FALSE; /* break; */ -+ } -+ -+ /* The user is a wanker */ -+ if G_UNLIKELY (do_configurator || do_system_halt || do_system_reboot) { -+ do_configurator = FALSE; -+ do_system_halt = FALSE; -+ do_system_reboot = FALSE; -+ gdm_slave_greeter_ctl_no_ret (GDM_RESET, ""); -+ return FALSE; /* continue */ -+ } -+ -+ /* Now running as root */ -+ -+ /* Get the root pwent */ -+ *pwent = getpwuid (0); -+ -+ if G_UNLIKELY (*pwent == NULL) { -+ /* What? No "root" ?? This is not possible -+ * since we logged in, but I'm paranoid */ -+ gdm_slave_greeter_ctl_no_ret (GDM_RESET, ""); -+ return FALSE; /* continue */ -+ } -+ -+ d->logged_in = TRUE; -+ logged_in_uid = 0; -+ logged_in_gid = 0; -+ gdm_slave_send_num (GDM_SOP_LOGGED_IN, TRUE); -+ /* Note: nobody really logged in */ -+ gdm_slave_send_string (GDM_SOP_LOGIN, ""); -+ -+ return TRUE; -+} -+ - static void - gdm_slave_wait_for_login (void) - { -@@ -2127,86 +2219,14 @@ gdm_slave_wait_for_login (void) - do_configurator = FALSE; - g_free (login_user); - login_user = NULL; -- /* clear any error */ -- gdm_slave_greeter_ctl_no_ret (GDM_ERRBOX, ""); -- gdm_slave_greeter_ctl_no_ret -- (GDM_MSG, -- _("You must authenticate as root to run configuration.")); -- -- /* we always allow root for this */ -- oldAllowRoot = gdm_daemon_config_get_value_bool (GDM_KEY_ALLOW_ROOT); -- gdm_daemon_config_set_value_bool (GDM_KEY_ALLOW_ROOT, TRUE); -- -- pwent = getpwuid (0); -- if G_UNLIKELY (pwent == NULL) { -- /* what? no "root" ?? */ -- gdm_slave_greeter_ctl_no_ret (GDM_RESET, ""); -- continue; -- } -- -- gdm_slave_greeter_ctl_no_ret (GDM_SETLOGIN, pwent->pw_name); -- login_user = gdm_verify_user (d, -- pwent->pw_name, -- FALSE); -- gdm_daemon_config_set_value_bool (GDM_KEY_ALLOW_ROOT, oldAllowRoot); -- -- /* Clear message */ -- gdm_slave_greeter_ctl_no_ret (GDM_MSG, ""); -- -- if G_UNLIKELY (do_restart_greeter) { -- g_free (login_user); -- login_user = NULL; -- do_restart_greeter = FALSE; -- restart_the_greeter (); -- continue; -- } -- -- check_notifies_now (); -- -- /* The user can't remember his password */ -- if (login_user == NULL) { -- gdm_debug ("gdm_slave_wait_for_login: No login/Bad login"); -- gdm_slave_greeter_ctl_no_ret (GDM_RESET, ""); -- continue; -- } -- -- /* Wipe the login */ -- g_free (login_user); -- login_user = NULL; - -- /* Note that this can still fall through to -- * the timed login if the user doesn't type in the -- * password fast enough and there is timed login -- * enabled */ -- if (do_timed_login) { -- break; -- } -+ if (!get_root_auth (_("You must authenticate as root to run configuration."), &pwent)) { -+ if (do_timed_login) -+ break; - -- if G_UNLIKELY (do_configurator) { -- do_configurator = FALSE; -- gdm_slave_greeter_ctl_no_ret (GDM_RESET, ""); - continue; - } - -- /* Now running as root */ -- -- /* Get the root pwent */ -- pwent = getpwuid (0); -- -- if G_UNLIKELY (pwent == NULL) { -- /* What? No "root" ?? This is not possible -- * since we logged in, but I'm paranoid */ -- gdm_slave_greeter_ctl_no_ret (GDM_RESET, ""); -- continue; -- } -- -- d->logged_in = TRUE; -- logged_in_uid = 0; -- logged_in_gid = 0; -- gdm_slave_send_num (GDM_SOP_LOGGED_IN, TRUE); -- /* Note: nobody really logged in */ -- gdm_slave_send_string (GDM_SOP_LOGIN, ""); -- - /* Disable the login screen, we don't want people to - * log in in the meantime */ - gdm_slave_greeter_ctl_no_ret (GDM_DISABLE, ""); -@@ -2245,6 +2265,43 @@ gdm_slave_wait_for_login (void) - continue; - } - -+ if (do_system_halt) { -+ struct passwd *pwent; -+ -+ do_system_halt = FALSE; -+ g_free (login_user); -+ login_user = NULL; -+ -+ if (!gdm_daemon_config_get_value_bool (GDM_KEY_SECURE_SHUTDOWN) || -+ get_root_auth (_("You must authenticate as root to shut down."), &pwent)) { -+ exit_code_to_use = DISPLAY_HALT; -+ term_quit (); -+ } else if (do_timed_login) { -+ break; -+ } -+ -+ continue; -+ } -+ -+ if (do_system_reboot) { -+ struct passwd *pwent; -+ -+ do_system_reboot = FALSE; -+ g_free (login_user); -+ login_user = NULL; -+ -+ if (!gdm_daemon_config_get_value_bool (GDM_KEY_SECURE_SHUTDOWN) || -+ get_root_auth (_("You must authenticate as root to restart the computer."), &pwent)) { -+ exit_code_to_use = DISPLAY_REBOOT; -+ term_quit (); -+ } else if (do_timed_login) { -+ break; -+ } -+ -+ continue; -+ } -+ -+ - /* The user timed out into a timed login during the - * conversation */ - if (do_timed_login) { -@@ -5519,6 +5576,14 @@ check_for_interruption (const char *msg) - /* Not interrupted, continue reading input, - * just proxy this to the master server */ - return TRUE; -+ case GDM_INTERRUPT_HALT: -+ if (d->attached) -+ do_system_halt = TRUE; -+ break; -+ case GDM_INTERRUPT_REBOOT: -+ if (d->attached) -+ do_system_reboot = TRUE; -+ break; - case GDM_INTERRUPT_LOGIN_SOUND: - if (d->attached && - ! play_login_sound (gdm_daemon_config_get_value_string (GDM_KEY_SOUND_ON_LOGIN_FILE))) { -@@ -5975,6 +6040,8 @@ gdm_slave_action_pending (void) - { - if (do_timed_login || - do_configurator || -+ do_system_halt || -+ do_system_reboot || - do_restart_greeter || - do_cancel) - return FALSE; -@@ -6258,6 +6325,8 @@ gdm_slave_handle_notify (const char *msg - remanage_asap = TRUE; - } - } -+ } else if (sscanf (msg, GDM_NOTIFY_SECURE_SHUTDOWN " %d", &val) == 1) { -+ gdm_daemon_config_set_value_bool (GDM_KEY_SECURE_SHUTDOWN, val); - } - } - -diff -upr gdm-2.19.7-pre/gui/gdmlogin.c gdm-2.19.7-post/gui/gdmlogin.c ---- gdm-2.19.7-pre/gui/gdmlogin.c 2007-09-14 00:07:36.000000000 -0500 -+++ gdm-2.19.7-post/gui/gdmlogin.c 2007-09-14 00:07:32.000000000 -0500 -@@ -692,12 +692,15 @@ gdm_run_gdmconfig (GtkWidget *w, gpointe - static void - gdm_login_restart_handler (void) - { -- if (gdm_wm_warn_dialog ( -- _("Are you sure you want to restart the computer?"), "", -- _("_Restart"), NULL, TRUE) == GTK_RESPONSE_YES) { -- -- gdm_kill_thingies (); -- _exit (DISPLAY_REBOOT); -+ if (!gdm_config_get_bool (GDM_KEY_SECURE_SHUTDOWN)) { -+ if (gdm_wm_warn_dialog (_("Are you sure you want to restart the computer?"), "", -+ _("_Restart"), NULL, TRUE) == GTK_RESPONSE_YES) { -+ gdm_kill_thingies (); -+ _exit (DISPLAY_REBOOT); -+ } -+ } else { -+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_REBOOT); -+ fflush (stdout); - } - } - -@@ -721,12 +724,15 @@ gdm_custom_cmd_handler (GtkWidget *widge - static void - gdm_login_halt_handler (void) - { -- if (gdm_wm_warn_dialog ( -- _("Are you sure you want to Shut Down the computer?"), "", -- _("Shut _Down"), NULL, TRUE) == GTK_RESPONSE_YES) { -- -- gdm_kill_thingies (); -- _exit (DISPLAY_HALT); -+ if (!gdm_config_get_bool (GDM_KEY_SECURE_SHUTDOWN)) { -+ if (gdm_wm_warn_dialog (_("Are you sure you want to Shut Down the computer?"), "", -+ _("Shut _Down"), NULL, TRUE) == GTK_RESPONSE_YES) { -+ gdm_kill_thingies (); -+ _exit (DISPLAY_HALT); -+ } -+ } else { -+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_HALT); -+ fflush (stdout); - } - } - -@@ -740,11 +746,14 @@ gdm_login_use_chooser_handler (void) - static void - gdm_login_suspend_handler (void) - { -- if (gdm_wm_warn_dialog ( -- _("Are you sure you want to suspend the computer?"), "", -- _("_Suspend"), NULL, TRUE) == GTK_RESPONSE_YES) { -- -- /* suspend interruption */ -+ if (!gdm_config_get_bool (GDM_KEY_SECURE_SHUTDOWN)) { -+ if (gdm_wm_warn_dialog (_("Are you sure you want to suspend the computer?"), "", -+ _("_Suspend"), NULL, TRUE) == GTK_RESPONSE_YES) { -+ /* suspend interruption */ -+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_SUSPEND); -+ fflush (stdout); -+ } -+ } else { - printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_SUSPEND); - fflush (stdout); - } -@@ -2913,6 +2922,7 @@ gdm_read_config (void) - gdm_config_get_bool (GDM_KEY_TITLE_BAR); - gdm_config_get_bool (GDM_KEY_ADD_GTK_MODULES); - gdm_config_get_bool (GDM_KEY_SHOW_DOMAIN); -+ gdm_config_get_bool (GDM_KEY_SECURE_SHUTDOWN); - - /* Keys not to include in reread_config */ - gdm_config_get_bool (GDM_KEY_LOCK_POSITION); -@@ -2996,6 +3006,7 @@ gdm_reread_config (int sig, gpointer dat - gdm_config_reload_bool (GDM_KEY_TIMED_LOGIN_ENABLE) || - gdm_config_reload_bool (GDM_KEY_TITLE_BAR) || - gdm_config_reload_bool (GDM_KEY_SHOW_DOMAIN) || -+ gdm_config_reload_bool (GDM_KEY_SECURE_SHUTDOWN) || - gdm_config_reload_bool (GDM_KEY_ADD_GTK_MODULES)) { - - /* Set busy cursor */ -diff -upr gdm-2.19.7-pre/gui/greeter/greeter.c gdm-2.19.7-post/gui/greeter/greeter.c ---- gdm-2.19.7-pre/gui/greeter/greeter.c 2007-09-14 00:07:36.000000000 -0500 -+++ gdm-2.19.7-post/gui/greeter/greeter.c 2007-09-14 00:07:32.000000000 -0500 -@@ -982,6 +982,7 @@ gdm_read_config (void) - gdm_config_get_bool (GDM_KEY_SHOW_DOMAIN); - gdm_config_get_bool (GDM_KEY_ADD_GTK_MODULES); - gdm_config_get_bool (GDM_KEY_BROWSER); -+ gdm_config_get_bool (GDM_KEY_SECURE_SHUTDOWN); - - /* Keys for custom commands */ - for (i = 0; i < GDM_CUSTOM_COMMAND_MAX; i++) { -@@ -1071,6 +1072,7 @@ greeter_reread_config (int sig, gpointer - gdm_config_reload_bool (GDM_KEY_ALLOW_REMOTE_ROOT) || - gdm_config_reload_bool (GDM_KEY_SHOW_DOMAIN) || - gdm_config_reload_bool (GDM_KEY_ADD_GTK_MODULES) || -+ gdm_config_reload_bool (GDM_KEY_SECURE_SHUTDOWN) || - gdm_config_reload_bool (GDM_KEY_BROWSER)) { - - /* Set busy cursor */ -diff -upr gdm-2.19.7-pre/gui/greeter/greeter_item.c gdm-2.19.7-post/gui/greeter/greeter_item.c ---- gdm-2.19.7-pre/gui/greeter/greeter_item.c 2007-09-14 00:07:36.000000000 -0500 -+++ gdm-2.19.7-post/gui/greeter/greeter_item.c 2007-09-14 00:07:32.000000000 -0500 -@@ -214,15 +214,15 @@ greeter_item_is_visible (GreeterItemInfo - strcmp (info->show_type, "system") == 0) - return FALSE; - -- if (( ! sysmenu || ! GdmHaltFound) && -+ if (( ! sysmenu || ! GdmHaltFound || !gdm_common_is_action_available ("HALT")) && - (info->show_type != NULL && - strcmp (info->show_type, "halt") == 0)) - return FALSE; -- if (( ! sysmenu || ! GdmRebootFound) && -+ if (( ! sysmenu || ! GdmRebootFound || !gdm_common_is_action_available ("REBOOT")) && - (info->show_type != NULL && - strcmp (info->show_type, "reboot") == 0)) - return FALSE; -- if (( ! sysmenu || ! GdmSuspendFound) && -+ if (( ! sysmenu || ! GdmSuspendFound || !gdm_common_is_action_available ("SUSPEND")) && - (info->show_type != NULL && - strcmp (info->show_type, "suspend") == 0)) - return FALSE; -diff -upr gdm-2.19.7-pre/gui/greeter/greeter_system.c gdm-2.19.7-post/gui/greeter/greeter_system.c ---- gdm-2.19.7-pre/gui/greeter/greeter_system.c 2007-08-27 11:07:52.000000000 -0500 -+++ gdm-2.19.7-post/gui/greeter/greeter_system.c 2007-09-14 00:07:32.000000000 -0500 -@@ -77,10 +77,15 @@ bin_exists (const char *command) - static void - query_greeter_restart_handler (void) - { -- if (gdm_wm_warn_dialog (_("Are you sure you want to restart the computer?"), "", -- _("_Restart"), NULL, TRUE) == GTK_RESPONSE_YES) { -- _exit (DISPLAY_REBOOT); -- } -+ if (!gdm_config_get_bool (GDM_KEY_SECURE_SHUTDOWN)) { -+ if (gdm_wm_warn_dialog (_("Are you sure you want to restart the computer?"), "", -+ _("_Restart"), NULL, TRUE) == GTK_RESPONSE_YES) { -+ _exit (DISPLAY_REBOOT); -+ } -+ } else { -+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_REBOOT); -+ fflush (stdout); -+ } - } - - static void -@@ -101,27 +106,42 @@ query_greeter_custom_cmd_handler (GtkWid - static void - query_greeter_halt_handler (void) - { -- if (gdm_wm_warn_dialog (_("Are you sure you want to Shut Down the computer?"), "", -- _("Shut _Down"), NULL, TRUE) == GTK_RESPONSE_YES) { -- _exit (DISPLAY_HALT); -- } -+ if (!gdm_config_get_bool (GDM_KEY_SECURE_SHUTDOWN)) { -+ if (gdm_wm_warn_dialog (_("Are you sure you want to Shut Down the computer?"), "", -+ _("Shut _Down"), NULL, TRUE) == GTK_RESPONSE_YES) { -+ _exit (DISPLAY_HALT); -+ } -+ } else { -+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_HALT); -+ fflush (stdout); -+ } - } - - static void - query_greeter_suspend_handler (void) - { -- if (gdm_wm_warn_dialog (_("Are you sure you want to suspend the computer?"), "", -- _("_Suspend"), NULL, TRUE) == GTK_RESPONSE_YES) { -- /* suspend interruption */ -- printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_SUSPEND); -- fflush (stdout); -- } -+ if (!gdm_config_get_bool (GDM_KEY_SECURE_SHUTDOWN)) { -+ if (gdm_wm_warn_dialog (_("Are you sure you want to suspend the computer?"), "", -+ _("_Suspend"), NULL, TRUE) == GTK_RESPONSE_YES) { -+ /* suspend interruption */ -+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_SUSPEND); -+ fflush (stdout); -+ } -+ } else { -+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_SUSPEND); -+ fflush (stdout); -+ } - } - - static void - greeter_restart_handler (void) - { -- _exit (DISPLAY_REBOOT); -+ if (GDM_KEY_SECURE_SHUTDOWN) { -+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_REBOOT); -+ fflush (stdout); -+ } else { -+ _exit (DISPLAY_REBOOT); -+ } - } - - static void -@@ -134,7 +154,12 @@ greeter_custom_cmd_handler (gint cmd_id) - static void - greeter_halt_handler (void) - { -- _exit (DISPLAY_HALT); -+ if (GDM_KEY_SECURE_SHUTDOWN) { -+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_HALT); -+ fflush (stdout); -+ } else { -+ _exit (DISPLAY_HALT); -+ } - } - - static void -@@ -342,7 +367,7 @@ greeter_system_handler (GreeterItemInfo - vbox, - TRUE, TRUE, 0); - -- if (GdmHaltFound) { -+ if (GdmHaltFound && gdm_common_is_action_available ("HALT")) { - if (group_radio != NULL) - radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (group_radio)); - halt_radio = gtk_radio_button_new_with_mnemonic (radio_group, -@@ -360,7 +385,7 @@ greeter_system_handler (GreeterItemInfo - gtk_widget_show (halt_radio); - } - -- if (GdmRebootFound) { -+ if (GdmRebootFound && gdm_common_is_action_available ("REBOOT")) { - if (group_radio != NULL) - radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (group_radio)); - restart_radio = gtk_radio_button_new_with_mnemonic (radio_group, -@@ -404,7 +429,7 @@ greeter_system_handler (GreeterItemInfo - } - } - -- if (GdmSuspendFound) { -+ if (GdmSuspendFound && gdm_common_is_action_available ("SUSPEND")) { - if (group_radio != NULL) - radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (group_radio)); - suspend_radio = gtk_radio_button_new_with_mnemonic (radio_group, diff --git a/gdm-2.8.0.7-onlyshow-in-gnome.diff b/gdm-2.8.0.7-onlyshow-in-gnome.diff deleted file mode 100644 index 820600f..0000000 --- a/gdm-2.8.0.7-onlyshow-in-gnome.diff +++ /dev/null @@ -1,18 +0,0 @@ -Index: gdm-2.18.1/gui/gdmflexiserver.desktop.in -=================================================================== ---- gdm-2.18.1.orig/gui/gdmflexiserver.desktop.in -+++ gdm-2.18.1/gui/gdmflexiserver.desktop.in -@@ -11,3 +11,4 @@ Categories=GNOME;GTK;System; - X-GNOME-Bugzilla-Bugzilla=GNOME - X-GNOME-Bugzilla-Product=gdm - X-GNOME-Bugzilla-Component=general -+OnlyShowIn=GNOME; -Index: gdm-2.18.1/gui/gdmphotosetup.desktop.in -=================================================================== ---- gdm-2.18.1.orig/gui/gdmphotosetup.desktop.in -+++ gdm-2.18.1/gui/gdmphotosetup.desktop.in -@@ -13,3 +13,4 @@ Categories=GNOME;GTK;Settings; - X-GNOME-Bugzilla-Bugzilla=GNOME - X-GNOME-Bugzilla-Product=gdm - X-GNOME-Bugzilla-Component=general -+OnlyShowIn=GNOME; diff --git a/gdm-2.8.0.7-some-info-in-dialog.patch b/gdm-2.8.0.7-some-info-in-dialog.patch deleted file mode 100644 index 1521f20..0000000 --- a/gdm-2.8.0.7-some-info-in-dialog.patch +++ /dev/null @@ -1,16 +0,0 @@ -Only in gdm-2.19.5-pre/daemon: gdm-daemon-config-keys.h.orig -Only in gdm-2.19.5-pre/daemon: slave.c.orig -diff -upr gdm-2.19.5-pre/daemon/verify-pam.c gdm-2.19.5-post/daemon/verify-pam.c ---- gdm-2.19.5-pre/daemon/verify-pam.c 2007-08-03 19:47:48.000000000 -0500 -+++ gdm-2.19.5-post/daemon/verify-pam.c 2007-08-03 19:48:46.000000000 -0500 -@@ -610,7 +610,7 @@ gdm_verify_pam_conv (int num_msg, struct - - case PAM_TEXT_INFO: - /* PAM sent a message that should displayed to the user */ -- gdm_slave_greeter_ctl_no_ret (GDM_MSG, m); -+ gdm_slave_greeter_ctl_no_ret (GDM_ERRDLG, m); - reply[replies].resp_retcode = PAM_SUCCESS; - reply[replies].resp = NULL; - break; -Only in gdm-2.19.5-pre/daemon: verify-pam.c.orig -Only in gdm-2.19.5-post: error.18283 diff --git a/gdm-XKeepsCrashing-SaX2.patch b/gdm-XKeepsCrashing-SaX2.patch deleted file mode 100644 index 03f757c..0000000 --- a/gdm-XKeepsCrashing-SaX2.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- config/XKeepsCrashing -+++ config/XKeepsCrashing -@@ -65,6 +65,7 @@ - # - XCONFIGURATOR= - for n in \ -+ /usr/sbin/SaX2 \ - /usr/bin/system-config-display \ - /usr/bin/redhat-config-xfree86 \ - /usr/sbin/XFdrake \ diff --git a/gdm-XKeepsCrashing-desktop-effects.patch b/gdm-XKeepsCrashing-desktop-effects.patch deleted file mode 100644 index ed64f6a..0000000 --- a/gdm-XKeepsCrashing-desktop-effects.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- config/XKeepsCrashing 2007-12-15 17:31:14.000000000 -0500 -+++ config/XKeepsCrashing 2008-04-02 16:21:39.000000000 -0400 -@@ -134,6 +135,11 @@ - exit $? - fi - -+if test `grep "DISPLAYMANAGER_XSERVER=" /etc/sysconfig/displaymanager | grep Xgl | wc -l` = "1" && test -x /usr/bin/gnome-xgl-switch; then -+ /usr/bin/gnome-xgl-switch --disable-xgl -+ MSG7=`gettextfunc "Desktop effects have been disabled."` -+fi -+ - clear - - # Note, dialog required, though this script could be fixed to not require it diff --git a/gdm-bnc343858-buggy-intel-xinerama.patch b/gdm-bnc343858-buggy-intel-xinerama.patch deleted file mode 100644 index 6c19c7b..0000000 --- a/gdm-bnc343858-buggy-intel-xinerama.patch +++ /dev/null @@ -1,161 +0,0 @@ -Fix for https://bugzilla.novell.com/show_bug.cgi?id=343858 - -2008-01-15 Federico Mena Quintero - - * gui/gdmwm.c (gdm_wm_screen_init): Use the GdkScreen functions to - get the monitors, instead of sanitizing the monitor geometries - here. This assumes an updated GTK+ package with the sanitization - logic in GdkScreen. - -diff --git a/gui/gdmwm.c b/gui/gdmwm.c -index 806b944..681de8a 100644 ---- a/gui/gdmwm.c -+++ b/gui/gdmwm.c -@@ -84,6 +84,9 @@ static guint save_struts[4] = {0, 0, 0, 0}; - void - gdm_wm_screen_init (int cur_screen_num) - { -+ GdkScreen *screen; -+ int i; -+ - if (g_getenv ("FAKE_XINERAMA_GDM") != NULL) { - /* for testing Xinerama support on non-xinerama setups */ - gdm_wm_screen.x = 100; -@@ -101,129 +104,18 @@ gdm_wm_screen_init (int cur_screen_num) - return; - } - -- { --#ifdef HAVE_XFREE_XINERAMA -- gboolean have_xinerama = FALSE; -- -- gdk_flush (); -- gdk_error_trap_push (); -- have_xinerama = XineramaIsActive (GDK_DISPLAY ()); -- gdk_flush (); -- if (gdk_error_trap_pop () != 0) -- have_xinerama = FALSE; -- -- if (have_xinerama) { -- int screen_num, i; -- XineramaScreenInfo *xscreens = -- XineramaQueryScreens (GDK_DISPLAY (), -- &screen_num); -- -- -- if (screen_num <= 0) { -- /* should NEVER EVER happen */ -- gdm_common_error ("Xinerama active, but <= 0 screens?"); -- gdm_wm_screen.x = 0; -- gdm_wm_screen.y = 0; -- gdm_wm_screen.width = gdk_screen_width (); -- gdm_wm_screen.height = gdk_screen_height (); -- -- gdm_wm_allscreens = g_new0 (GdkRectangle, 1); -- gdm_wm_allscreens[0] = gdm_wm_screen; -- gdm_wm_screens = 1; -- return; -- } -+ screen = gdk_screen_get_default (); - -- if (screen_num <= cur_screen_num) -- cur_screen_num = 0; -+ gdm_wm_screens = gdk_screen_get_n_monitors (screen); - -- gdm_wm_allscreens = g_new0 (GdkRectangle, screen_num); -- gdm_wm_screens = screen_num; -+ gdm_wm_allscreens = g_new (GdkRectangle, gdm_wm_screens); -+ for (i = 0; i < gdm_wm_screens; i++) -+ gdk_screen_get_monitor_geometry (screen, i, gdm_wm_allscreens + i); - -- for (i = 0; i < screen_num; i++) { -- gdm_wm_allscreens[i].x = xscreens[i].x_org; -- gdm_wm_allscreens[i].y = xscreens[i].y_org; -- gdm_wm_allscreens[i].width = xscreens[i].width; -- gdm_wm_allscreens[i].height = xscreens[i].height; -- -- if (cur_screen_num == i) -- gdm_wm_screen = gdm_wm_allscreens[i]; -- } -- -- XFree (xscreens); -- } else --#elif HAVE_SOLARIS_XINERAMA -- gboolean have_xinerama = FALSE; -- /* This code from GDK, Copyright (C) 2002 Sun Microsystems */ -- int opcode; -- int firstevent; -- int firsterror; -- int n_monitors = 0; -- -- gdk_flush (); -- gdk_error_trap_push (); -- have_xinerama = XQueryExtension (GDK_DISPLAY (), -- "XINERAMA", -- &opcode, -- &firstevent, -- &firsterror); -- gdk_flush (); -- if (gdk_error_trap_pop () != 0) -- have_xinerama = FALSE; -- -- if (have_xinerama) { -- int i; -- int result; -- XRectangle monitors[MAXFRAMEBUFFERS]; -- unsigned char hints[16]; -- -- result = XineramaGetInfo (GDK_DISPLAY (), 0, monitors, hints, &n_monitors); -- /* Yes I know it should be Success but the current implementation -- * returns the num of monitor -- */ -- -- if (result <= 0) { -- /* should NEVER EVER happen */ -- gdm_common_error ("Xinerama active, but <= 0 screens?"); -- gdm_wm_screen.x = 0; -- gdm_wm_screen.y = 0; -- gdm_wm_screen.width = gdk_screen_width (); -- gdm_wm_screen.height = gdk_screen_height (); -- -- gdm_wm_allscreens = g_new0 (GdkRectangle, 1); -- gdm_wm_allscreens[0] = gdm_wm_screen; -- gdm_wm_screens = 1; -- return; -- } -- -- if (n_monitors <= cur_screen_num) -- cur_screen_num = 0; -- -- gdm_wm_allscreens = g_new0 (GdkRectangle, n_monitors); -- gdm_wm_screens = n_monitors; -- -- for (i = 0; i < n_monitors; i++) { -- gdm_wm_allscreens[i].x = monitors[i].x; -- gdm_wm_allscreens[i].y = monitors[i].y; -- gdm_wm_allscreens[i].width = monitors[i].width; -- gdm_wm_allscreens[i].height = monitors[i].height; -- -- if (cur_screen_num == i) -- gdm_wm_screen = gdm_wm_allscreens[i]; -- } -- -- } else --#endif -- { -- gdm_wm_screen.x = 0; -- gdm_wm_screen.y = 0; -- gdm_wm_screen.width = gdk_screen_width (); -- gdm_wm_screen.height = gdk_screen_height (); -+ if (gdm_wm_screens < cur_screen_num) -+ cur_screen_num = 0; - -- gdm_wm_allscreens = g_new0 (GdkRectangle, 1); -- gdm_wm_allscreens[0] = gdm_wm_screen; -- gdm_wm_screens = 1; -- } -- } -+ gdm_wm_screen = gdm_wm_allscreens[cur_screen_num]; - } - - void diff --git a/gdm-conf-custom-sysconfig.patch b/gdm-conf-custom-sysconfig.patch deleted file mode 100644 index c35b369..0000000 --- a/gdm-conf-custom-sysconfig.patch +++ /dev/null @@ -1,17 +0,0 @@ -Index: config/gdm.conf-custom.in -=================================================================== ---- config/gdm.conf-custom.in.orig -+++ config/gdm.conf-custom.in -@@ -50,6 +50,12 @@ - # - # NOTE: Lines that begin with "#" are considered comments. - # -+# SuSEconfig comments: Some of entries in this file are updated by SuSEconfig, -+# whenever sysconfig entry change. To edit these entries, please use sysconfig -+# (or never touch these sysconfig variables). -+# Comment for each of this entry contains related /etc/sysconfig file and -+# variable. -+# - # Have fun! - - [daemon] diff --git a/gdm-conf.patch b/gdm-conf.patch deleted file mode 100644 index c6855ce..0000000 --- a/gdm-conf.patch +++ /dev/null @@ -1,78 +0,0 @@ ---- config/gdm.conf.in -+++ config/gdm.conf.in -@@ -86,10 +86,12 @@ - # This value will be overridden with the value from /etc/default/login if it - # contains "ROOT=". - #DefaultPath=@GDM_USER_PATH@ -+DefaultPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/var/lib/dosemu:/usr/games:/opt/bin:/opt/kde3/bin:/opt/kde2/bin:/opt/kde/bin:/usr/openwin/bin:/opt/cross/bin - # Default path for root. The profile scripts will likely override this value. - # This value will be overridden with the value from /etc/default/login if it - # contains "SUROOT=". - #RootPath=/sbin:/usr/sbin:@GDM_USER_PATH@ -+RootPath=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/var/lib/dosemu:/usr/games:/opt/bin:/opt/kde3/bin:/opt/kde2/bin:/opt/kde/bin:/usr/openwin/bin:/opt/cross/bin - - # If you are having trouble with using a single server for a long time and want - # GDM to kill/restart the server, turn this on. On Solaris, this value is -@@ -126,9 +128,14 @@ - # - # Reboot, Halt and suspend commands, you can add different commands separated - # by a semicolon. GDM will use the first one it can find. --RebootCommand=@REBOOT_COMMAND@ --HaltCommand=@HALT_COMMAND@ --SuspendCommand=@SUSPEND_COMMAND@ -+#RebootCommand=@REBOOT_COMMAND@ -+#HaltCommand=@HALT_COMMAND@ -+#SuspendCommand=@SUSPEND_COMMAND@ -+ -+RebootCommand=/sbin/shutdown -r now -+HaltCommand=/sbin/shutdown -h now -+SuspendCommand=/usr/bin/powersave --suspend-to-disk -+ - - # The following options specify how GDM system commands are supported. - # -@@ -163,7 +170,7 @@ - # really a PATH style variable since 2.4.4.2 to allow actual interoperability - # with KDM. Note that /Sessions is there for backwards - # compatibility reasons with 2.4.4.x. --#SessionDesktopDir=/etc/X11/sessions/:@dmconfdir@/Sessions/:@datadir@/gdm/BuiltInSessions/:@datadir@/xsessions/ -+SessionDesktopDir=/usr/share/xsessions/:@dmconfdir@/Sessions/:@datadir@/gdm/BuiltInSessions/ - # This is the default .desktop session. One of the ones in SessionDesktopDir - #DefaultSession=gnome.desktop - # Better leave this blank and HOME will be used. You can use syntax ~/ below -@@ -339,11 +346,12 @@ - #PingIntervalSeconds=15 - # The port. 177 is the standard port so better keep it that way. - #Port=177 --# Willing script, none is shipped and by default we'll send hostname system id. --# But if you supply something here, the output of this script will be sent as --# status of this host so that the chooser can display it. You could for --# example send load, or mail details for some user, or some such. --#Willing=@gdmconfdir@/Xwilling -+# Willing script, none is shipped, X11's one is used by default. If -+# none is present we'll send hostname system id. But if you supply -+# something here, the output of this script will be sent as status of -+# this host so that the chooser can display it. You could for example -+# send load, or mail details for some user, or some such. -+Willing=/etc/X11/xdm/Xwilling - - [gui] - # The specific gtkrc file we use. It should be the full path to the gtkrc that -@@ -397,7 +405,7 @@ - # User ID's less than the MinimalUID value will not be included in the face - # browser or in the gdmselection list for Automatic/Timed login. They will not - # be displayed regardless of the settings for Include and Exclude. --#MinimalUID=100 -+MinimalUID=500 - # Users listed in Include will be included in the face browser and in the - # gdmsetup selection list for Automatic/Timed login. Users should be separated - # by commas. -@@ -626,7 +634,7 @@ - - [server-Standard] - name=Standard server --command=@X_SERVER@ @X_CONFIG_OPTIONS@ @XEVIE_OPTION@ -+command=@X_SERVER@ @X_CONFIG_OPTIONS@ @XEVIE_OPTION@ -br - flexible=true - # Indicates that the X server should be started at a different process - # priority. Values can be any integer value accepted by the setpriority C diff --git a/gdm-consolekit-helper-subdir.patch b/gdm-consolekit-helper-subdir.patch new file mode 100644 index 0000000..7eff50a --- /dev/null +++ b/gdm-consolekit-helper-subdir.patch @@ -0,0 +1,12 @@ +diff -upr gdm-2.22.0-pre/daemon/gdm-server.c gdm-2.22.0-post/daemon/gdm-server.c +--- gdm-2.22.0-pre/daemon/gdm-server.c 2008-04-17 22:29:28.000000000 -0500 ++++ gdm-2.22.0-post/daemon/gdm-server.c 2008-07-31 00:35:53.000000000 -0500 +@@ -125,7 +125,7 @@ _gdm_server_query_ck_for_display_device + g_return_val_if_fail (GDM_IS_SERVER (server), NULL); + + error = NULL; +- command = g_strdup_printf (LIBEXECDIR "/ck-get-x11-display-device --display %s", ++ command = g_strdup_printf (LIBEXECDIR "/ConsoleKit/ck-get-x11-display-device --display %s", + server->priv->display_name); + + g_debug ("GdmServer: Running helper %s", command); diff --git a/gdm-gdmsetup-rootonly.patch b/gdm-gdmsetup-rootonly.patch deleted file mode 100644 index 5fb302a..0000000 --- a/gdm-gdmsetup-rootonly.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: gui/gdmsetup.desktop.in.in -=================================================================== ---- gui/gdmsetup.desktop.in.in.orig -+++ gui/gdmsetup.desktop.in.in -@@ -4,6 +4,7 @@ _Name=Login Window - _Comment=Configure GDM login window appearance and behavior - TryExec=@sbindir@/gdmsetup - Exec=@sbindir@/gdmsetup -+X-KDE-RootOnly=true - Icon=gdmsetup - StartupNotify=true - Terminal=false diff --git a/gdm-gdmsetup.patch b/gdm-gdmsetup.patch deleted file mode 100644 index bf3188a..0000000 --- a/gdm-gdmsetup.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: gui/gdmsetup.desktop.in.in -=================================================================== ---- gui/gdmsetup.desktop.in.in.orig -+++ gui/gdmsetup.desktop.in.in -@@ -2,7 +2,7 @@ - Encoding=UTF-8 - _Name=Login Window - _Comment=Configure GDM login window appearance and behavior --TryExec=@sbindir@/gdmsetup -+TryExec=gdmsetup - Exec=@sbindir@/gdmsetup - X-KDE-RootOnly=true - Icon=gdm-setup diff --git a/gdm-greeter-file-system-type-can-be-null.patch b/gdm-greeter-file-system-type-can-be-null.patch new file mode 100644 index 0000000..f17672c --- /dev/null +++ b/gdm-greeter-file-system-type-can-be-null.patch @@ -0,0 +1,20 @@ +--- gdm-2.22.0-pre/gui/simple-greeter/gdm-user.c 2008-04-17 22:29:26.000000000 -0500 ++++ gdm-2.22.0-post/gui/simple-greeter/gdm-user.c 2008-07-31 07:37:40.000000000 -0500 +@@ -750,11 +750,12 @@ render_icon_from_home (GdmUser *user, + } + filesystem_type = g_file_info_get_attribute_string (file_info, + G_FILE_ATTRIBUTE_FILESYSTEM_TYPE); +- is_local = ((strcmp (filesystem_type, "nfs") != 0) && +- (strcmp (filesystem_type, "afs") != 0) && +- (strcmp (filesystem_type, "autofs") != 0) && +- (strcmp (filesystem_type, "unknown") != 0) && +- (strcmp (filesystem_type, "ncpfs") != 0)); ++ is_local = (filesystem_type == NULL || ++ ((strcmp (filesystem_type, "nfs") != 0) && ++ (strcmp (filesystem_type, "afs") != 0) && ++ (strcmp (filesystem_type, "autofs") != 0) && ++ (strcmp (filesystem_type, "unknown") != 0) && ++ (strcmp (filesystem_type, "ncpfs") != 0))); + g_object_unref (file_info); + g_object_unref (file); + } diff --git a/gdm-language-dialog-size.patch b/gdm-language-dialog-size.patch deleted file mode 100644 index f79f026..0000000 --- a/gdm-language-dialog-size.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -upr gdm-2.19.3-pre/gui/gdmlanguages.c gdm-2.19.3-post/gui/gdmlanguages.c ---- gdm-2.19.3-pre/gui/gdmlanguages.c 2007-07-31 20:36:54.000000000 -0400 -+++ gdm-2.19.3-post/gui/gdmlanguages.c 2007-07-31 20:43:55.000000000 -0400 -@@ -840,6 +840,7 @@ gdm_lang_setup_treeview (void) - GtkWidget *swindow; - GtkWidget *label; - char *s; -+ gint y_size; - - dialog = gtk_dialog_new_with_buttons (_("Select a Language"), - #ifdef TODO -@@ -906,9 +907,13 @@ gdm_lang_setup_treeview (void) - gtk_container_add (GTK_CONTAINER (swindow), tv); - gtk_box_pack_start (GTK_BOX (main_vbox), - swindow, TRUE, TRUE, 0); -+ -+ /* Make the dialog fill 8/10 of the screen's height */ -+ y_size = (8 * gdm_wm_screen.height) / 10; -+ - gtk_window_set_default_size (GTK_WINDOW (dialog), - MIN (400, gdm_wm_screen.width), -- MIN (600, gdm_wm_screen.height)); -+ y_size); - g_signal_connect (G_OBJECT (gtk_tree_view_get_selection (GTK_TREE_VIEW (tv))), - "changed", - (GCallback) selection_changed, diff --git a/gdm-language-hang.patch b/gdm-language-hang.patch deleted file mode 100644 index 478f1a3..0000000 --- a/gdm-language-hang.patch +++ /dev/null @@ -1,117 +0,0 @@ ---- daemon/slave.c 2007-09-12 18:59:56.000000000 +0200 -+++ daemon/slave.c 2007-09-15 01:04:02.000000000 +0200 -@@ -192,7 +192,7 @@ - * the slave can talk to itself from its sig handler - * using the greeter ipc mechanism - */ --static int slave_fd_out = -1; -+//static int slave_fd_out = -1; - - #ifdef HAVE_TSOL - static gboolean have_suntsol_extension = FALSE; -@@ -682,6 +682,18 @@ - } - - static void -+whack_greeter_fds (void) -+{ -+ if (greeter_fd_out > 0) -+ VE_IGNORE_EINTR (close (greeter_fd_out)); -+ greeter_fd_out = -1; -+ if (greeter_fd_in > 0) -+ VE_IGNORE_EINTR (close (greeter_fd_in)); -+ greeter_fd_in = -1; -+} -+ -+/* -+static void - whack_greeter_and_slave_fds (void) - { - if (greeter_fd_out > 0) -@@ -690,10 +702,12 @@ - if (greeter_fd_in > 0) - VE_IGNORE_EINTR (close (greeter_fd_in)); - greeter_fd_in = -1; -+ - if (slave_fd_out > 0) - VE_IGNORE_EINTR (close (slave_fd_out)); - slave_fd_out = -1; - } -+*/ - - static void - term_session_stop_and_quit (void) -@@ -1178,7 +1192,8 @@ - - d->greetpid = 0; - -- whack_greeter_and_slave_fds (); -+ //whack_greeter_and_slave_fds (); -+ whack_greeter_fds (); - - gdm_slave_send_num (GDM_SOP_GREETPID, 0); - -@@ -2027,7 +2042,8 @@ - - d->greetpid = 0; - -- whack_greeter_and_slave_fds (); -+ //whack_greeter_and_slave_fds (); -+ whack_greeter_fds (); - - gdm_slave_send_num (GDM_SOP_GREETPID, 0); - } -@@ -2945,10 +2961,13 @@ - - default: - VE_IGNORE_EINTR (close (pipe1[0])); -+ // added -+ VE_IGNORE_EINTR (close (pipe2[1])); - -- whack_greeter_and_slave_fds (); -+ //whack_greeter_and_slave_fds (); -+ whack_greeter_fds (); - -- slave_fd_out = pipe2[1]; -+ //slave_fd_out = pipe2[1]; - - greeter_fd_out = pipe1[1]; - greeter_fd_in = pipe2[0]; -@@ -5301,7 +5320,8 @@ - - greet = FALSE; - d->greetpid = 0; -- whack_greeter_and_slave_fds (); -+ //whack_greeter_and_slave_fds (); -+ whack_greeter_fds (); - gdm_slave_send_num (GDM_SOP_GREETPID, 0); - - do_restart_greeter = TRUE; -@@ -5313,7 +5333,8 @@ - continue; - } - -- whack_greeter_and_slave_fds (); -+ //whack_greeter_and_slave_fds (); -+ whack_greeter_fds (); - - /* if greet is TRUE, then the greeter died outside of our - * control really, so clean up and die, something is wrong -@@ -5456,7 +5477,7 @@ - gdm_wait_for_go = FALSE; - } else if (strcmp (&s[1], GDM_NOTIFY_TWIDDLE_POINTER) == 0) { - gdm_twiddle_pointer (d); -- } else if (strcmp (&s[1], GDM_NOTIFY_RESET) == 0) { -+ } /*else if (strcmp (&s[1], GDM_NOTIFY_RESET) == 0) { - if (!d->logged_in) { - gdm_fdprintf (slave_fd_out, "%c%c%c\n", - STX, BEL, GDM_INTERRUPT_CANCEL); -@@ -5466,7 +5487,7 @@ - gdm_fdprintf (slave_fd_out, "%c%c%c\n", - STX, BEL, GDM_INTERRUPT_TOKEN_LOGIN); - } -- } -+ }*/ - } else if (s[0] == GDM_SLAVE_NOTIFY_RESPONSE) { - gdm_got_ack = TRUE; - if (gdm_ack_response) diff --git a/gdm-presession-kde-path.patch b/gdm-presession-kde-path.patch deleted file mode 100644 index f685d19..0000000 --- a/gdm-presession-kde-path.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gdm-2.16.1/config/PreSession.in -+++ gdm-2.16.1/config/PreSession.in -@@ -6,7 +6,7 @@ - # - # Note that output goes into the .xsession-errors file for easy debugging - # --PATH="@X_PATH@:$PATH:/bin:/usr/bin" -+PATH="@X_PATH@:$PATH:/bin:/usr/bin:/opt/kde3/bin" - OLD_IFS=$IFS - - gdmwhich () { diff --git a/gdm-server-timeout.patch b/gdm-server-timeout.patch deleted file mode 100644 index 7a0b4bb..0000000 --- a/gdm-server-timeout.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -upr gdm-2.19.5-pre/daemon/gdm-daemon-config-keys.h gdm-2.19.5-post/daemon/gdm-daemon-config-keys.h ---- gdm-2.19.5-pre/daemon/gdm-daemon-config-keys.h 2007-08-03 19:38:33.000000000 -0500 -+++ gdm-2.19.5-post/daemon/gdm-daemon-config-keys.h 2007-08-03 19:44:00.000000000 -0500 -@@ -81,7 +81,7 @@ G_BEGIN_DECLS - #define GDM_KEY_FIRST_VT "daemon/FirstVT=7" - #define GDM_KEY_VT_ALLOCATION "daemon/VTAllocation=true" - #define GDM_KEY_CONSOLE_CANNOT_HANDLE "daemon/ConsoleCannotHandle=am,ar,az,bn,el,fa,gu,hi,ja,ko,ml,mr,pa,ta,zh" --#define GDM_KEY_XSERVER_TIMEOUT "daemon/GdmXserverTimeout=10" -+#define GDM_KEY_XSERVER_TIMEOUT "daemon/GdmXserverTimeout=30" - #define GDM_KEY_SYSTEM_COMMANDS_IN_MENU "daemon/SystemCommandsInMenu=HALT;REBOOT;SUSPEND;CUSTOM_CMD" - #define GDM_KEY_ALLOW_LOGOUT_ACTIONS "daemon/AllowLogoutActions=HALT;REBOOT;SUSPEND;CUSTOM_CMD" - #define GDM_KEY_RBAC_SYSTEM_COMMAND_KEYS "daemon/RBACSystemCommandKeys=" GDM_RBAC_SYSCMD_KEYS -Only in gdm-2.19.5-post/daemon: gdm-daemon-config-keys.h~ -Only in gdm-2.19.5-pre/daemon: gdm-daemon-config-keys.h.orig -Only in gdm-2.19.5-pre/daemon: slave.c.orig -Only in gdm-2.19.5-pre/daemon: verify-pam.c.orig -Only in gdm-2.19.5-post: error.15631 diff --git a/gdm-xdm-sessions.patch b/gdm-xdm-sessions.patch deleted file mode 100644 index 6119f89..0000000 --- a/gdm-xdm-sessions.patch +++ /dev/null @@ -1,401 +0,0 @@ ---- gdm-2.20.0-orig/config/Init.in 2007-09-17 16:45:50.000000000 +0200 -+++ gdm-2.20.0/config/Init.in 2007-11-07 00:03:29.000000000 +0100 -@@ -1,89 +1,2 @@ - #!/bin/sh --# Stolen from the debian kdm setup, aren't I sneaky --# Plus a lot of fun stuff added --# -George -- --PATH=@X_PATH@:$PATH --OLD_IFS=$IFS -- --gdmwhich () { -- COMMAND="$1" -- OUTPUT= -- IFS=: -- for dir in $PATH -- do -- if test -x "$dir/$COMMAND" ; then -- if test "x$OUTPUT" = "x" ; then -- OUTPUT="$dir/$COMMAND" -- fi -- fi -- done -- IFS=$OLD_IFS -- echo "$OUTPUT" --} -- --sysresources=/etc/X11/Xresources -- --# merge in defaults --if [ -f "$sysresources" ]; then -- xrdb -merge "$sysresources" --fi -- --sysmodmap=/etc/X11/Xmodmap -- --XMODMAP=`gdmwhich xmodmap` --if [ x$XMODMAP != x ] ; then -- if [ x$GDM_PARENT_DISPLAY = x ]; then -- if [ -f $sysmodmap ]; then -- $XMODMAP $sysmodmap -- fi -- else -- ( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP - -- fi -- -- # -- # Switch Sun's Alt and Meta mod mappings -- # -- -- UNAME=`gdmwhich uname` -- PROCESSOR=`$UNAME -p` -- if [ x$PROCESSOR = xsparc ]; then -- if $XMODMAP | /usr/bin/grep mod4 | /usr/bin/grep Alt > /dev/null 2>/dev/null -- then -- $XMODMAP -e "clear Mod1" \ -- -e "clear Mod4" \ -- -e "add Mod1 = Alt_L" \ -- -e "add Mod1 = Alt_R" \ -- -e "add Mod4 = Meta_L" \ -- -e "add Mod4 = Meta_R" -- fi -- fi --fi -- --SETXKBMAP=`gdmwhich setxkbmap` --if [ x$SETXKBMAP != x ] ; then -- # FIXME: is this all right? Is this completely on crack? -- # What this does is move the xkb configuration from the GDM_PARENT_DISPLAY -- # FIXME: This should be done in code. Or there must be an easier way ... -- if [ -n "$GDM_PARENT_DISPLAY" ]; then -- XKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )` -- if [ -n "$XKBSETUP" ]; then -- XKBKEYMAP=`echo "$XKBSETUP" | grep '^keymap' | awk '{ print $2 }'` -- XKBTYPES=`echo "$XKBSETUP" | grep '^types' | awk '{ print $2 }'` -- XKBCOMPAT=`echo "$XKBSETUP" | grep '^compat' | awk '{ print $2 }'` -- XKBSYMBOLS=`echo "$XKBSETUP" | grep '^symbols' | awk '{ print $2 }'` -- XKBGEOMETRY=`echo "$XKBSETUP" | grep '^geometry' | awk '{ print $2 }'` -- if [ -n "$XKBKEYMAP" ]; then -- $SETXKBMAP -keymap "$XKBKEYMAP" -- elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" -a -n "$XKBGEOMETRY" ]; then -- $SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS" -geometry "$XKBGEOMETRY" -- elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" ]; then -- $SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS" -- elif [ -n "$XKBSYMBOLS" ]; then -- $SETXKBMAP -symbols "$XKBSYMBOLS" -- fi -- fi -- fi --fi -- --exit 0 -+exec /etc/X11/xdm/Xsetup ---- gdm-2.20.0-orig/config/PostSession.in 2007-09-17 16:45:50.000000000 +0200 -+++ gdm-2.20.0/config/PostSession.in 2007-11-07 00:03:57.000000000 +0100 -@@ -1,22 +1,3 @@ - #!/bin/sh - --PATH="@X_PATH@:$PATH:/bin:/usr/bin" --OLD_IFS=$IFS -- --gdmwhich () { -- COMMAND="$1" -- OUTPUT= -- IFS=: -- for dir in $PATH -- do -- if test -x "$dir/$COMMAND" ; then -- if test "x$OUTPUT" = "x" ; then -- OUTPUT="$dir/$COMMAND" -- fi -- fi -- done -- IFS=$OLD_IFS -- echo "$OUTPUT" --} -- --exit 0 -+exec /etc/X11/xdm/Xreset ---- gdm-2.20.0-orig/config/Xsession.in 2007-09-17 16:45:50.000000000 +0200 -+++ gdm-2.20.0/config/Xsession.in 2007-11-07 00:04:54.000000000 +0100 -@@ -1,278 +1,3 @@ - #!@XSESSION_SHELL@ - # --# This is SORT OF LIKE an X session, but not quite. You get a command as the --# first argument (it could be multiple words, so run it with "eval"). As a --# special case, the command can be: --# default - Run the appropriate Xclients startup (see the code below) --# custom - Run ~/.xsession and if that's not available run 'default' --# --# (Note that other arguments could also follow, but only the command one is --# right now relevant and supported) --# --# The output is ALREADY redirected to .xsession-errors in GDM. This way --# .xsession-errors actually gets more output such as if the PreSession script --# is failing. This also prevents DoS attacks if some app in the users session --# can be prodded to dump lots of stuff on the stdout/stderr. We wish to be --# robust don't we? In case you wish to use an existing script for other DM's, --# you can just not redirect when GDMSESSION is set. GDMSESSION will always --# be set from gdm. --# --# Also note that this is not run as a login shell, this is just executed. --# This is why we source the profile files below. --# --# based on: --# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $ -- --command="$@" -- --# this will go into the .xsession-errors along with all other echo's --# good for debugging where things went wrong --echo "$0: Beginning session setup..." -- --# First read /etc/profile and .profile --test -f /etc/profile && . /etc/profile --test -f "$HOME/.profile" && . "$HOME/.profile" --# Second read /etc/xprofile and .xprofile for X specific setup --test -f /etc/xprofile && . /etc/xprofile --test -f "$HOME/.xprofile" && . "$HOME/.xprofile" -- --# Translation stuff --if [ -x "@libexecdir@/gdmtranslate" ] ; then -- gdmtranslate="@libexecdir@/gdmtranslate" --else -- gdmtranslate= --fi -- --# Note that this should only go to zenity dialogs which always expect utf8 --gettextfunc () { -- if [ "x$gdmtranslate" != "x" ] ; then -- "$gdmtranslate" --utf8 "$1" -- else -- echo "$1" -- fi --} -- --OLD_IFS=$IFS -- --gdmwhich () { -- COMMAND="$1" -- OUTPUT= -- IFS=: -- for dir in $PATH -- do -- if test -x "$dir/$COMMAND" ; then -- if test "x$OUTPUT" = "x" ; then -- OUTPUT="$dir/$COMMAND" -- fi -- fi -- done -- IFS=$OLD_IFS -- echo "$OUTPUT" --} -- --zenity=`gdmwhich zenity` -- --# Note: ~/.xsession-errors is now done in the daemon so that it --# works for ALL sessions (except ones named 'Failsafe') -- --# clean up after xbanner --freetemp=`gdmwhich freetemp` --if [ -n "$freetemp" ] ; then -- "$freetemp" --fi -- --userresources="$HOME/.Xresources" --usermodmap="$HOME/.Xmodmap" --userxkbmap="$HOME/.Xkbmap" -- --sysresources=/etc/X11/Xresources --sysmodmap=/etc/X11/Xmodmap --sysxkbmap=/etc/X11/Xkbmap -- --rh6sysresources=/etc/X11/xinit/Xresources --rh6sysmodmap=/etc/X11/xinit/Xmodmap -- --# merge in defaults --if [ -f "$rh6sysresources" ]; then -- xrdb -merge "$rh6sysresources" --fi -- --if [ -f "$sysresources" ]; then -- xrdb -merge "$sysresources" --fi -- --if [ -f "$userresources" ]; then -- xrdb -merge "$userresources" --fi -- --# merge in keymaps --if [ -f "$sysxkbmap" ]; then -- setxkbmap `cat "$sysxkbmap"` -- XKB_IN_USE=yes --fi -- --if [ -f "$userxkbmap" ]; then -- setxkbmap `cat "$userxkbmap"` -- XKB_IN_USE=yes --fi -- --# --# Eeek, this seems like too much magic here --# --if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then -- if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then -- xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config` -- if [ -n "$xkbsymbols" ]; then -- setxkbmap -symbols "$xkbsymbols" -- XKB_IN_USE=yes -- fi -- fi --fi -- --# xkb and xmodmap don't play nice together --if [ -z "$XKB_IN_USE" ]; then -- if [ -f "$rh6sysmodmap" ]; then -- xmodmap "$rh6sysmodmap" -- fi -- -- if [ -f "$sysmodmap" ]; then -- xmodmap "$sysmodmap" -- fi -- -- if [ -f "$usermodmap" ]; then -- xmodmap "$usermodmap" -- fi --fi -- --unset XKB_IN_USE -- --# Normalize languages, some places/distros screw us up in /etc/profile, --# so in case the user did select a language --if [ -n "$GDM_LANG" ]; then -- LANG="$GDM_LANG" -- export LANG -- -- if [ -n "$LC_ALL" ]; then -- if [ "$LC_ALL" != "$LANG" ]; then -- LC_ALL="$LANG" -- fi -- else -- unset LC_ALL -- fi -- -- if [ -n "$LANGUAGE" ]; then -- if [ "$LANGUAGE" != "$LANG" ]; then -- LANGUAGE="$LANG" -- fi -- else -- unset LANGUAGE -- fi -- -- if [ -n "$LINGUAS" ]; then -- if [ "$LINGUAS" != "$LANG" ]; then -- LINGUAS="$LANG" -- fi -- else -- unset LINGUAS -- fi --fi -- --# Normalize all LC_* settings to $LANG --for var in "LC_ALL" "LC_CTYPE" "LC_NUMERIC" "LC_TIME" "LC_COLLATE" "LC_MONETARY" "LC_MESSAGES" \ -- "LC_PAPER" "LC_NAME" "LC_ADDRESS" "LC_TELEPHONE" "LC_MEASUREMENT" "LC_IDENTIFICATION" ; do -- if eval "[ -n \"\$$var\" -a \"\$$var\" != \"\$LANG\" ]" ; then -- unset $var -- fi --done -- --# run all system xinitrc shell scripts. --if [ -d /etc/X11/xinit/xinitrc.d ]; then -- for i in /etc/X11/xinit/xinitrc.d/* ; do -- if [ -x "$i" ]; then -- . "$i" -- fi -- done --fi -- --# --# To determine the character set used for filenames with --# glib's g_filename_to/from_utf8() functions, we set the --# environment variables G_FILENAME_ENCODING and G_BROKEN_FILENAMES. --# --# G_BROKEN_FILENAMES, when set, lets the functions take the --# character set for the current locale for filename's encoding. --# --# G_FILENAME_ENCODING, which is introduced to glib 2.3.x and later, may be --# set to a comma-separated list of character set names. --# The special token "@locale" is taken to mean the character set --# for the current locale. The first character set from the list is taken --# as the filename encoding. --# --# If G_FILENAME_ENCODING is not set, but G_BROKEN_FILENAMES is, the --# character set of the current locale is taken as the filename encoding. -- --G_BROKEN_FILENAMES=yes --export G_BROKEN_FILENAMES --# G_FILENAME_ENCODING=@locale --# export G_FILENAME_ENCODING -- --#Startup Input methods (IIIM->XIM) --if [ -f /etc/iiim/xsession ]; then -- . /etc/iiim/xsession --fi --#Startup XIM stuff --if [ "x$XMODIFIERS" = "x" ]; then -- if [ -f "$HOME/.xim" ]; then -- . $HOME/.xim -- elif [ -f "/etc/skel/.xim" ]; then -- . /etc/skel/.xim -- fi --fi -- --if [ "x$command" = "xcustom" ] ; then -- if [ -x "$HOME/.xsession" ]; then -- command="$HOME/.xsession" -- else -- echo "$0: Cannot find ~/.xsession will try the default session" -- command="default" -- fi --fi -- --if [ "x$command" = "xdefault" ] ; then -- if [ -x "$HOME/.Xclients" ]; then -- command="$HOME/.Xclients" -- elif [ -x /etc/X11/xinit/Xclients ]; then -- command="/etc/X11/xinit/Xclients" -- elif [ -x /etc/X11/Xclients ]; then -- command="/etc/X11/Xclients" -- else -- if [ -n "$zenity" ] ; then -- disptext=`gettextfunc "System has no Xclients file, so starting a failsafe xterm session. Windows will have focus only if the mouse pointer is above them. To get out of this mode type 'exit' in the window."` -- "$zenity" --info --text "$disptext" -- else -- echo "$0: Cannot find Xclients" -- fi -- exec xterm -geometry 80x24+0+0 -- fi --fi -- --# add ssh-agent if found --sshagent="`gdmwhich ssh-agent`" --if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then -- command="$sshagent -- $command" --elif [ -z "$sshagent" ] ; then -- echo "$0: ssh-agent not found!" --fi -- --echo "$0: Setup done, will execute: $command" -- --eval exec $command -- --echo "$0: Executing $command failed, will run xterm" -- --if [ -n "$zenity" ] ; then -- disptext=`gettextfunc "Failed to start the session, so starting a failsafe xterm session. Windows will have focus only if the mouse pointer is above them. To get out of this mode type 'exit' in the window."` -- "$zenity" --info --text "$disptext" --fi -- --exec xterm -geometry 80x24+0+0 -+/bin/bash /etc/X11/xdm/Xstartup && exec /etc/X11/xdm/Xsession $1 $GDM_LANG diff --git a/gdm.changes b/gdm.changes index d5f2e4d..ef40b0b 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Fri Aug 1 17:28:58 CDT 2008 - hpj@suse.de + +- Major upgrade to GDM 2.22.0, which is pretty much a complete rewrite upstream: + + Added gdm-consolekit-helper-subdir.patch, which lets GDM find ConsoleKit's + helper executable in the subdir where it's installed. + + Added gdm-2.21.9-no-fatal-warnings.patch, which prevents GDM from crashing + on non-fatal errors. + + Added gdm-greeter-file-system-type-can-be-null.patch, which prevents a + crash. + + Added gdm-2.21.5-vt7-temporary-hack.patch, which makes GDM default to VT7 + when the initial VT is not specified. Prevents a keyboard lockup on startup. + + Dropped patches: + gdm-conf.patch, gdm-language-dialog-size.patch, + gdm-xdm-sessions.patch, gdm-presession-kde-path.patch, + gdm-gdmsetup-rootonly.patch, gdm-2.8.0.0-any-hostname-auth.patch, + gdm-2.8.0.0-list-users.patch, gdm-2.8.0.0-setup-no-flicker.patch, + gdm-2.8.0.7-bg-4.patch, gdm-2.8.0.7-domain-entry.patch, + gdm-2.8.0.7-halt-needs-root.patch, gdm-2.8.0.7-onlyshow-in-gnome.patch, + gdm-server-timeout.patch, gdm-2.8.0.7-some-info-in-dialog.patch, + gdm-gdmsetup.patch, gdm-conf-custom-sysconfig.patch, + gdm-2.19.3-reset-pam.patch, gdm-2.19.3-dbus-security-tokens.patch, + gdm-2.19.3-token-login.patch, gdm-2.19.3-token-login2.patch, + gdm-XKeepsCrashing-SaX2.patch, gdm-XKeepsCrashing-desktop-effects.patch, + gdm-language-hang.patch, gdm-2.20.0-wait-for-restart.patch, + gdm-bnc343858-buggy-intel-xinerama.patch. + ------------------------------------------------------------------- Thu May 15 10:14:09 CEST 2008 - vuntz@suse.de diff --git a/gdm.spec b/gdm.spec index 3c07f45..7a1c3e7 100644 --- a/gdm.spec +++ b/gdm.spec @@ -1,10 +1,17 @@ # -# spec file for package gdm (Version 2.20.4) +# spec file for package gdm (Version 2.22.0) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. -# This file and all modifications and additions to the pristine -# package are under the same license as the package itself. # +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + # Please submit bugfixes or comments via http://bugs.opensuse.org/ # @@ -12,7 +19,7 @@ Name: gdm -BuildRequires: docbook_4 fdupes gnome-common gnome-doc-utils-devel gnome-patch-translation gnutls-devel intltool libglade2-devel libgnomeprintui-devel libgnomeui-devel librsvg-devel libwnck-devel pam-devel perl-XML-Parser pwdutils scrollkeeper tcpd-devel update-desktop-files xorg-x11-server xorg-x11-server-extra zenity +BuildRequires: docbook_4 fdupes gconf2-devel gnome-common gnome-doc-utils-devel gnome-panel-devel gnome-patch-translation intltool libglade2-devel libgnomeprintui-devel libgnomeui-devel libgnutls-devel librsvg-devel libwnck-devel pam-devel perl-XML-Parser pwdutils scrollkeeper tcpd-devel update-desktop-files xorg-x11-server xorg-x11-server-extra zenity PreReq: /usr/sbin/groupadd PreReq: /usr/sbin/useradd PreReq: /usr/sbin/usermod @@ -22,8 +29,8 @@ PreReq: %fillup_prereq PreReq: %insserv_prereq License: GPL v2 or later Group: System/GUI/GNOME -Version: 2.20.4 -Release: 24 +Version: 2.22.0 +Release: 1 Summary: The GNOME 2.x Display Manager Source: %{name}-%{version}.tar.bz2 Source1: gdm.pamd @@ -31,50 +38,20 @@ Source2: gdm-autologin.pamd # FIXME: See FIXME in the script. Source3: SuSEconfig.gdm Source5: sysconfig.displaymanager-gdm -Source6: dbus-gdm.conf -# Only system integration patches are allowed in gdm.conf. -# Any Look and Feel changes should be done in gdm-branding packages. -Patch0: gdm-conf.patch -Patch3: gdm-language-dialog-size.patch -Patch5: gdm-xdm-sessions.patch -Patch9: gdm-presession-kde-path.patch -Patch12: gdm-gdmsetup-rootonly.patch -Patch13: gdm-2.8.0.0-any-hostname-auth.patch -Patch14: gdm-2.8.0.0-list-users.patch -Patch15: gdm-2.8.0.0-setup-no-flicker.patch -Patch19: gdm-2.8.0.7-bg-4.patch -Patch20: gdm-2.8.0.7-domain-entry.patch -Patch21: gdm-2.8.0.7-halt-needs-root.patch -Patch22: gdm-2.8.0.7-onlyshow-in-gnome.diff -Patch24: gdm-server-timeout.patch -Patch26: gdm-2.8.0.7-some-info-in-dialog.patch +Patch1: gdm-consolekit-helper-subdir.patch +Patch2: gdm-2.21.9-no-fatal-warnings.patch +Patch3: gdm-greeter-file-system-type-can-be-null.patch +Patch4: gdm-2.21.5-vt7-temporary-hack.patch Patch28: gdm-X_SERVER.patch -Patch29: gdm-gdmsetup.patch -Patch30: gdm-conf-custom-sysconfig.patch -Patch34: gdm-2.17.7-vt-fallback.patch -Patch35: gdm-2.19.3-reset-pam.patch -Patch36: gdm-2.19.3-dbus-security-tokens.patch -Patch37: gdm-2.19.3-token-login.patch -# don't ask. -Patch38: gdm-2.19.3-token-login2.patch -Patch40: gdm-XKeepsCrashing-SaX2.patch -Patch41: gdm-XKeepsCrashing-desktop-effects.patch -#Patch42: fix-desktop-files.diff -Patch43: gdm-language-hang.patch -Patch45: gdm-2.20.0-wait-for-restart.patch -# PATCH-FIX-UPSTREAM gdm-bnc343858-buggy-intel-xinerama.patch bnc343858 bgo523403 vuntz@novell.com -- make gdm use gdk functions to know about xinerama -Patch48: gdm-bnc343858-buggy-intel-xinerama.patch Url: http://www.gnome.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build DocDir: %{_defaultdocdir} Provides: gdm2 Obsoletes: gdm2 -%if %suse_version <= 1020 -PreReq: xorg-x11 -%endif Requires: gnome-themes klogd xorg-x11-server-extra Requires: %{name}-branding Requires: %{name}-lang = %{version} +%gconf_schemas_prereq %description This version of GDM, the GNOME display manager, is based on GTK2 and is @@ -118,48 +95,18 @@ Authors: %lang_package %prep %setup -q -gnome-patch-translation-prepare -%patch0 +%patch1 -p1 +%patch2 -p1 %patch3 -p1 -%patch5 -p1 -%patch9 -p1 -%patch12 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch19 -p1 -%if %suse_version > 1000 -%patch20 -p1 -%patch21 -p1 -%endif -%patch22 -p1 -%patch24 -p1 -%patch26 -p1 +%patch4 -p1 %patch28 -%patch29 -%patch30 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p0 -%patch40 -%patch41 -#%patch42 - dont think this patch is needed with suse_udpate_desktop_file -g working. -%patch43 -%patch45 -p1 -%patch48 -p1 -gnome-patch-translation-update %build autoreconf -f -i -# gdm-2.16.1: greeter_canvas_text.c:98: warning: dereferencing type-punned pointer will break strict-aliasing rules export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" -# FIXME: Build as root modifies system! -# gdm-2.16.1: --disable-scrollkeeper does not work properly. %configure\ - --libexecdir=%{_prefix}/lib/gdm\ - --localstatedir=%{_localstatedir}/lib\ + --libexecdir=%{_prefix}/lib \ + --localstatedir=%{_localstatedir} \ --with-atspi-dir=%{_prefix}/lib/at-spi \ --enable-ipv6\ --disable-scrollkeeper\ @@ -168,6 +115,7 @@ make %{?jobs:-j%jobs} %install %makeinstall +%find_gconf_schemas # Remove wrapper, it is not needed. mv $RPM_BUILD_ROOT%{_sbindir}/gdm-binary $RPM_BUILD_ROOT%{_sbindir}/gdm # Install PAM files and remove examples. @@ -180,36 +128,18 @@ mv $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default.sample $RPM_BUILD_ROOT%{_ mkdir -p $RPM_BUILD_ROOT/sbin/conf.d cp %{S:3} $RPM_BUILD_ROOT/sbin/conf.d chmod +x $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.gdm -%if %suse_version <1010 -mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates -cp %{S:5} $RPM_BUILD_ROOT/var/adm/fillup-templates -%endif -# -%if %suse_version > 1030 -mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/dbus-1/system.d -cp %{S:6} $RPM_BUILD_ROOT/%{_sysconfdir}/dbus-1/system.d/gdm.conf -%endif touch $RPM_BUILD_ROOT%{_sysconfdir}/gdm/gdm_sysconfig.conf -# gnome.desktop should be in gnome-session, ssh.desktop doesn't work -rm $RPM_BUILD_ROOT%{_datadir}/xsessions/ssh.desktop -rm $RPM_BUILD_ROOT%{_datadir}/xsessions/gnome.desktop -rmdir $RPM_BUILD_ROOT%{_sysconfdir}/dm -%suse_update_desktop_file $RPM_BUILD_ROOT/usr/share/gdm/applications/gdmsetup.desktop SystemSetup -%suse_update_desktop_file -G "" $RPM_BUILD_ROOT/usr/share/gdm/applications/gdmphotosetup.desktop SystemSetup -%suse_update_desktop_file -G "" $RPM_BUILD_ROOT/usr/share/gdm/applications/gdmflexiserver.desktop RemoteAccess -%suse_update_desktop_file -G "" $RPM_BUILD_ROOT/usr/share/gdm/applications/gdmflexiserver-xnest.desktop RemoteAccess -#echo DocPath=gdm >> $RPM_BUILD_ROOT%{_datadir}/applications/gdmsetup.desktop -#echo DocPath=gdm >> $RPM_BUILD_ROOT%{_datadir}/applications/gdmphotosetup.desktop -mkdir -p $RPM_BUILD_ROOT/var/log/gdm +mkdir -p $RPM_BUILD_ROOT{_localstatedir}/log/gdm +mkdir -p $RPM_BUILD_ROOT{_localstatedir}/run/gdm %find_lang %{name} +mkdir -p $RPM_BUILD_ROOT%{_bindir} ln -s ../sbin/gdm $RPM_BUILD_ROOT%{_bindir}/gdm -rm $RPM_BUILD_ROOT%{_libdir}/*/*/*.*a %fdupes $RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT -%pre +%pre -f %{name}.schemas_pre /usr/sbin/groupadd -r gdm 2> /dev/null || : /usr/sbin/useradd -r -o -g gdm -s /bin/false \ -c "Gnome Display Manager daemon" -d /var/lib/gdm gdm 2> /dev/null || : @@ -233,66 +163,70 @@ if grep -q gdm-autologin sbin/conf.d/SuSEconfig.gdm ; then fi fi -%post -%if %suse_version < 1010 -%{fillup_only -n displaymanager -s gdm} -%{fillup_and_insserv -npY displaymanager} -%endif -%if %suse_version <= 1020 -sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/init.d/xdm +%preun -f %{name}.schemas_preun +%posttrans -f %{name}.schemas_posttrans -%triggerin -- xorg-x11 -sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/init.d/xdm -%endif +%post %postun %insserv_cleanup -%files +%files -f %{name}.schemas_list %defattr(-,root,root) %doc AUTHORS COPYING ChangeLog NEWS README TODO %dir %config %{_sysconfdir}/gdm -%dir %{_datadir}/omf/gdm %config %{_sysconfdir}/gdm/[IPXl]* -%config(noreplace) %{_sysconfdir}/gdm/custom.conf -%{_sysconfdir}/gdm/Xsession %ghost %{_sysconfdir}/gdm/gdm_sysconfig.conf -%dir %config %{_sysconfdir}/gdm/modules -%config %{_sysconfdir}/gdm/modules/A* -%{_sysconfdir}/gdm/modules/factory* -%{_datadir}/omf/gdm/gdm-*.omf %{_sbindir}/* %{_bindir}/* %{_datadir}/gdm -%exclude %{_datadir}/gdm/*.conf -#%{_datadir}/applications/*.desktop %{_datadir}/pixmaps/*.png %{_datadir}/pixmaps/faces %{_datadir}/icons/*/*/*/*.* -%{_libdir}/gtk-2.0/modules/* -%doc %{_mandir}/man1/*.* -%{_prefix}/lib/gdm +%{_prefix}/lib/* +%{_prefix}/lib/bonobo/servers/* +%{_datadir}/gnome-2.0/ui/* %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm +%attr(755,gdm,gdm) %dir %{_localstatedir}/run/gdm %attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm %config /etc/pam.d/* /sbin/conf.d/SuSEconfig.gdm -%if %suse_version <1010 -/var/adm/fillup-templates/* -%endif -%if %suse_version <= 1020 -%dir /usr/share/xsessions -%endif -%if %suse_version > 1030 %{_sysconfdir}/dbus-1/system.d/gdm.conf -%endif - -%files lang -f %{name}.lang +%{_sysconfdir}/gdm/gdm.schemas +%{_localstatedir}/lib/gdm/.gconf.mandatory/%gconf-tree.xml +%{_localstatedir}/lib/gdm/.gconf.path %files branding-upstream %defattr(-,root,root) -%{_datadir}/gdm/*.conf +%config(noreplace) %{_sysconfdir}/gdm/custom.conf + +%files lang -f %{name}.lang %changelog +* Fri Aug 01 2008 hpj@suse.de +- Major upgrade to GDM 2.22.0, which is pretty much a complete rewrite upstream: + + Added gdm-consolekit-helper-subdir.patch, which lets GDM find ConsoleKit's + helper executable in the subdir where it's installed. + + Added gdm-2.21.9-no-fatal-warnings.patch, which prevents GDM from crashing + on non-fatal errors. + + Added gdm-greeter-file-system-type-can-be-null.patch, which prevents a + crash. + + Added gdm-2.21.5-vt7-temporary-hack.patch, which makes GDM default to VT7 + when the initial VT is not specified. Prevents a keyboard lockup on startup. + + Dropped patches: + gdm-conf.patch, gdm-language-dialog-size.patch, + gdm-xdm-sessions.patch, gdm-presession-kde-path.patch, + gdm-gdmsetup-rootonly.patch, gdm-2.8.0.0-any-hostname-auth.patch, + gdm-2.8.0.0-list-users.patch, gdm-2.8.0.0-setup-no-flicker.patch, + gdm-2.8.0.7-bg-4.patch, gdm-2.8.0.7-domain-entry.patch, + gdm-2.8.0.7-halt-needs-root.patch, gdm-2.8.0.7-onlyshow-in-gnome.patch, + gdm-server-timeout.patch, gdm-2.8.0.7-some-info-in-dialog.patch, + gdm-gdmsetup.patch, gdm-conf-custom-sysconfig.patch, + gdm-2.19.3-reset-pam.patch, gdm-2.19.3-dbus-security-tokens.patch, + gdm-2.19.3-token-login.patch, gdm-2.19.3-token-login2.patch, + gdm-XKeepsCrashing-SaX2.patch, gdm-XKeepsCrashing-desktop-effects.patch, + gdm-language-hang.patch, gdm-2.20.0-wait-for-restart.patch, + gdm-bnc343858-buggy-intel-xinerama.patch. * Thu May 15 2008 vuntz@suse.de - Update gdm-xdm-sessions.patch to run /etc/X11/xdm/Xstartup. Part of bnc#368673. @@ -375,7 +309,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i displays. + Build/configure fixes for Solaris. + Translation updates. -* Wed Nov 14 2007 hpj@suse.de +* Tue Nov 13 2007 hpj@suse.de - Removed second --with-atspi-dir from configure. - Added gdm-tab-triggers-enter.patch, which fixes Novell bug [#334446]. @@ -384,7 +318,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i (#337428) - Updated gdm-xdm-sessions.patch to run again the /etc/X11/xdm scripts (#304399) -* Fri Nov 09 2007 hpj@suse.de +* Thu Nov 08 2007 hpj@suse.de - Pass the --with-atspi-dir= flag to configure so the at-spi-registryd is started correctly. Fixes Novell bug #337428. * Thu Oct 18 2007 maw@suse.de @@ -392,7 +326,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - Add abuild.patch. * Thu Oct 11 2007 sbrabec@suse.cz - Removed bogus dependency on mDNSResponder. -* Mon Sep 24 2007 hpj@suse.de +* Sun Sep 23 2007 hpj@suse.de - Added gdm-2.20.0-wait-for-restart.patch, which fixes Novell bug [#326281]. * Thu Sep 20 2007 banderso@suse.de @@ -486,7 +420,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - The greeter.dtd file has been updated. Now the default GDM themes validate with this dtd. (Dave Fincher) - Plus translation updates for a plethora of locales. -* Fri Aug 17 2007 hpj@suse.de +* Thu Aug 16 2007 hpj@suse.de - Fixed missing configuration variable definition in gdm-2.8.0.7-domain-entry.patch. * Fri Aug 10 2007 sbrabec@suse.cz @@ -502,7 +436,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i * Sat Aug 04 2007 maw@suse.de - Use %%fdupes - Uncomment out the rm in %%clean. -* Sat Aug 04 2007 hpj@suse.de +* Fri Aug 03 2007 hpj@suse.de - Update to version 2.19.5. - Fix up gdm-conf.patch. - Fix up gdm-2.19.3-reset-pam.patch. @@ -526,11 +460,11 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i * Tue Jul 24 2007 jpr@suse.de - Add xorg-x11-server-extras for Xnest/Xephyr so that the defaults are set correctly (not an installation dep) -* Fri Jul 20 2007 maw@suse.de +* Thu Jul 19 2007 maw@suse.de - Reenable gdm-conf.patch (#292837). * Tue Jul 17 2007 coolo@suse.de - fix pointer arithmetic -* Tue Jul 17 2007 mauro@suse.de +* Mon Jul 16 2007 mauro@suse.de - Update to version 2.19.3 - Clean up of the not applicable patches. - Bugfixes for #448547, #448548, #443557. @@ -574,15 +508,15 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i Fontenelle, Pema Geyleg, Priit Laes, Kjartan Maraas, Inaki Larranaga Murgoitio, Kostas Papadimas, Ignacio Casal Quinteiro, Hendrik Richter, Changwoo Ryu, Claudio Saavedra) -* Sat Mar 31 2007 maw@suse.de +* Fri Mar 30 2007 maw@suse.de - Update to version 2.18.0 - b.g.o 415513, 417350, 415181, 409801, 409693, 406226, and 407687. * Fri Mar 30 2007 aj@suse.de - Add pwdutils to BuildRequires. -* Thu Mar 22 2007 hpj@suse.de +* Wed Mar 21 2007 hpj@suse.de - Add gdm-2.17.7-vt-fallback.patch. This is a port of the fix for https://bugzilla.novell.com/show_bug.cgi?id=206804 -* Wed Mar 14 2007 maw@suse.de +* Tue Mar 13 2007 maw@suse.de - Update to version 2.17.7 - Removeupstreamed gdm-autobuild-warning.patch, gdm-bufferoverrun.patch @@ -590,10 +524,10 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i [#400698], #399486, #352263, #395790, #394421. * Fri Mar 02 2007 sbrabec@suse.cz - Do not own /usr/share/xsessions (#229172). -* Tue Feb 27 2007 hpj@suse.de +* Mon Feb 26 2007 hpj@suse.de - Added gdm-2.13.0.4-audit-login.patch, which fixes Novell bug [#234133] (GDM cannot log authentication attempts). -* Wed Feb 14 2007 hpj@suse.de +* Tue Feb 13 2007 hpj@suse.de - Add gdm-trunk-string-literal-cmp.patch. Fixes #233655. * Mon Feb 12 2007 sbrabec@suse.cz - Fixed reversed interpretation of @@ -640,7 +574,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i * Fri Oct 27 2006 jhargadon@suse.de - changed TryExec to be the same as Exec in gdmsetup.desktop to resolve bug #210943 -* Tue Oct 24 2006 jhargadon@suse.de +* Mon Oct 23 2006 jhargadon@suse.de - mkdir /var/log/gdm (#213737) * Thu Oct 12 2006 danw@suse.de - Remove some dead patches. Rename a few for consistency @@ -662,7 +596,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i * Tue Sep 26 2006 jhargadon@suse.de - removed am_devperm.so from gdm.pamd and gdm-autologin.pamd to resolve bug #206963 -* Thu Sep 21 2006 jhargadon@suse.de +* Wed Sep 20 2006 jhargadon@suse.de - modified SuSEconfig.gdm to reflect the name change of gdm.conf to custom.conf. bug #206904 * Thu Sep 14 2006 jhargadon@suse.de @@ -674,7 +608,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - 341619 - No longer save "Failsafe" sessions as user's default login * Mon Sep 04 2006 kukuk@suse.de - Add pam_loginuid.so to gdm.pamd and gdm-autologin.pamd -* Thu Aug 31 2006 jhargadon@suse.de +* Wed Aug 30 2006 jhargadon@suse.de - update to version 2.15.10 - Now gdmlogin centers cursor in the GUI to ensure that the login window always has focus @@ -756,21 +690,21 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - Per-display configuration is now supported. - Greeter themes now support real GTK+ button types, making gdmgreeter better support a11y and allow GTK themeable buttons. -* Sat Jun 10 2006 hpj@suse.de +* Fri Jun 09 2006 hpj@suse.de - Update domain entry patch to default to the currently joined Active Directory domain if there was no stored preference. Fixes Novell bug #167344. -* Thu Jun 01 2006 hpj@suse.de +* Wed May 31 2006 hpj@suse.de - Don't let any user configure GDM from the login screen if a theme with user list is in effect. Fixes Novell bug #180219. -* Thu Jun 01 2006 dreveman@suse.de +* Wed May 31 2006 dreveman@suse.de - Fix bg patch and change gdm.conf patch so we pass -br to X server for black root window. (bnc 179847) * Wed May 24 2006 sbrabec@suse.cz - Do not display Japanese string in terminal, which doesn't support it (#168736). - Disabled beep on start (#174786). -* Fri May 19 2006 hpj@suse.de +* Thu May 18 2006 hpj@suse.de - Made GDM use the more graphically intensive, but prettier, gdmgreeter for remote logins. Fixes Novell bug #176661. * Tue May 16 2006 sbrabec@suse.cz @@ -780,7 +714,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i * Fri May 12 2006 sbrabec@suse.cz - Store value of PERMISSION_SECURITY by SuSEconfig in gdm_sysconfig.conf (169639#c20). -* Tue May 09 2006 hpj@suse.de +* Mon May 08 2006 hpj@suse.de - Made GDM use the "gdm" group instead of shadow. Fixes Novell bug [#119651]. - Made use of the tab key work like pressing enter if there is no @@ -808,7 +742,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i service, bug #158786. * Sat Mar 11 2006 coolo@suse.de - fix the only-show-in-gnome patch to patch the .desktop.in -* Tue Mar 07 2006 federico@novell.com +* Mon Mar 06 2006 federico@novell.com - Fix installation of the earlygdm service; we were not calling fillup_and_insserv with "displaymanager" for the configuration filename. @@ -817,9 +751,9 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i in PLUS (148468#c17). * Tue Feb 28 2006 sbrabec@suse.cz - Use kdelibs3-doc in BuildRequires for meinproc (#153635#c14). -* Sat Feb 25 2006 hpj@suse.de +* Fri Feb 24 2006 hpj@suse.de - Add patch to fix tab keynav. -* Sat Feb 18 2006 sreeves@suse.de +* Fri Feb 17 2006 sreeves@suse.de - Update .desktop file (Name, GenericName, Comment, DocPath) * Fri Feb 17 2006 gekker@suse.de - Fix background color in GDM, it should be black @@ -845,10 +779,10 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - Added patch to require root auth to halt or reboot. * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires -* Thu Jan 19 2006 hpj@suse.de +* Wed Jan 18 2006 hpj@suse.de - Updated the domain logon patch with numerous new features and cosmetic fixes. -* Tue Jan 17 2006 hpj@suse.de +* Mon Jan 16 2006 hpj@suse.de - Fixed a bug in logon code that prevented domain logons from working. Updated domain logon patch. * Fri Jan 13 2006 schwab@suse.de @@ -868,37 +802,37 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - Patch from upstream b.g.o (#152906) * Mon Oct 17 2005 gekker@suse.de - Make gdm.conf %%config(noreplace) -* Fri Oct 14 2005 hpj@suse.de +* Thu Oct 13 2005 hpj@suse.de - Updated xauthority-across-hostname-changes patch to use XAUTHLOCALHOSTNAME environment variable. -* Fri Oct 14 2005 gekker@suse.de +* Thu Oct 13 2005 gekker@suse.de - Update to version 2.8.0.5 -* Wed Oct 05 2005 gekker@suse.de +* Tue Oct 04 2005 gekker@suse.de - Rediff patch for background colors * Tue Oct 04 2005 gekker@suse.de - Fix background colors to be consistent on startup * Tue Sep 20 2005 sbrabec@suse.cz - Removed references to build directory in installed .la files. -* Fri Sep 16 2005 gekker@suse.de +* Thu Sep 15 2005 gekker@suse.de - Make Industrial the default Gtk+ theme (114173) * Tue Sep 06 2005 sbrabec@suse.cz - Updated to version 2.8.0.4. -* Tue Aug 23 2005 gekker@suse.de +* Mon Aug 22 2005 gekker@suse.de - Update to version 2.8.0.3 - Remove upstreamed autologin patch - Now installs .desktop files in correct location no need to move -* Sat Aug 20 2005 hpj@suse.de +* Fri Aug 19 2005 hpj@suse.de - Make the default session option work on autologin; we now get GNOME. * Tue Aug 16 2005 sbrabec@suse.cz - Use gnome-screensaver instead of xscreensaver. -* Sat Aug 13 2005 hpj@suse.de +* Fri Aug 12 2005 hpj@suse.de - Made gdm-autologin.pam not require a password. * Fri Aug 12 2005 jpr@suse.de - require xorg-x11-xnest for the gdmflexiserver -n option -* Fri Aug 12 2005 gekker@suse.de +* Thu Aug 11 2005 gekker@suse.de - Update to version 2.8.0.2 - Make 64bit clean -* Sun Jul 31 2005 jpr@suse.de +* Sat Jul 30 2005 jpr@suse.de - turn on compatibility symlink for all products * Tue Jul 05 2005 gekker@suse.de - Update to version 2.8.0.1 @@ -932,7 +866,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i * Fri Feb 11 2005 sbrabec@suse.cz - Resource only /usr/share/xsessions for session desktop files. - Fixed tcp_wrappers support on bi-arch. -* Fri Feb 11 2005 gekker@suse.de +* Thu Feb 10 2005 gekker@suse.de - Update to version 2.6.0.7 * Wed Feb 09 2005 sbrabec@suse.cz - Cleaned-up configuration and patches. @@ -947,7 +881,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - add X-KDE-RootOnly to gdmsetup.desktop (#45807) * Mon Nov 15 2004 kukuk@suse.de - Use common-* PAM config files for gdm and gdm-autologin -* Wed Oct 27 2004 mmj@suse.de +* Tue Oct 26 2004 mmj@suse.de - Locale rename no to nb * Fri Oct 15 2004 sbrabec@suse.cz - Implemented sysconfig displaymanager support. @@ -956,7 +890,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i the industrial theme (#44330) * Wed Aug 25 2004 clahey@suse.de - Cache gdm help and show gdm in khelpcenter. -* Tue Aug 17 2004 ro@suse.de +* Mon Aug 16 2004 ro@suse.de - fixed specfile * Mon Aug 16 2004 shprasad@suse.de - Fixes bug #60020 @@ -970,10 +904,10 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i time of login. (In the spec file, the diff file, gdm-session-startkde.diff, is applied at the %%install section) -* Thu Jun 24 2004 dave@suse.de +* Wed Jun 23 2004 dave@suse.de - Added gdm-presession-kde-path.patch, adds /opt/kde3/bin to the gdm path -* Sat Jun 12 2004 clahey@suse.de +* Fri Jun 11 2004 clahey@suse.de - Added gdm-support-gdmctl.patch. * Wed Jun 02 2004 mibarra@suse.de - Fixed gdm.conf to use the correct group @@ -987,7 +921,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - honor xdm scripts (#37852) * Tue Mar 23 2004 sbrabec@suse.cz - Non-UTF-8 locales removed from language menu. -* Tue Mar 23 2004 hhetter@suse.de +* Mon Mar 22 2004 hhetter@suse.de - remove SuSEconfig.gdm; it's no longer needed to manage the available sessions for gdm, as it is now using desktop files to define it's sessions (#36267) @@ -1023,7 +957,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - updated to version 2.4.1.6 * Mon Jul 28 2003 kukuk@suse.de - Make sure /var/lib/gdm has correct permissions -* Fri Jul 25 2003 hhetter@suse.de +* Thu Jul 24 2003 hhetter@suse.de - move capplets to correct position - fix build * Wed Jul 16 2003 sbrabec@suse.cz @@ -1036,7 +970,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - Updated neededforbuild. - Use %%find_lang. - Prefix clash fix (capplets). -* Wed May 28 2003 ro@suse.de +* Tue May 27 2003 ro@suse.de - remove unpackaged files from buildroot * Mon May 26 2003 sbrabec@suse.cz - Re-enabled UTF-8 alternatives for all locales. @@ -1060,7 +994,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - updated to 2.4.1.3 [GNOME 2.2.0] * Fri Feb 07 2003 kukuk@suse.de - Use pam_unix2.so instead of pam_unix.so -* Thu Jan 16 2003 ro@suse.de +* Wed Jan 15 2003 ro@suse.de - use gtk2-devel-packages and libjpeg in neededforbuild * Tue Jan 07 2003 sbrabec@suse.cz - Update to version 2.4.1.0. @@ -1073,7 +1007,7 @@ sed -i s:DISPLAYMANAGER=/opt/gnome/sbin/gdm:DISPLAYMANAGER=/usr/sbin/gdm:g etc/i - Removed sox from neededforbuild. * Thu Nov 28 2002 hhetter@suse.de - updated to version 2.4.0.12 [GNOME 2.0.3] -* Tue Nov 12 2002 ro@suse.de +* Mon Nov 11 2002 ro@suse.de - changed neededforbuild to * Sun Nov 03 2002 mfabian@suse.de - Bug Id #21407: correct wrong spelling of UTF-8 locale names