diff --git a/gdm-autologin.patch b/gdm-autologin.patch new file mode 100644 index 0000000..c6be725 --- /dev/null +++ b/gdm-autologin.patch @@ -0,0 +1,748 @@ +2008-10-23 William Jon McCann + + * daemon/gdm-display.c (gdm_display_real_get_timed_login_details), + (gdm_display_get_timed_login_details), (gdm_display_real_unmanage), + (gdm_display_class_init): + * daemon/gdm-display.h: + * daemon/gdm-display.xml: + * daemon/gdm-simple-slave.c (greeter_reset_timeout), + (on_session_setup_failed), (on_session_authentication_failed), + (on_session_authorized), (on_session_authorization_failed), + (stop_greeter), (start_session_timeout), (on_session_accredited), + (on_session_accreditation_failed), (on_session_info), + (on_session_opened), (on_session_selected_user_changed), + (on_default_language_name_changed), + (on_default_layout_name_changed), + (on_default_session_name_changed), (start_greeter), + (idle_connect_to_display), (gdm_simple_slave_stop): + * daemon/gdm-slave.c (gdm_slave_get_timed_login_details): + * daemon/gdm-slave.h: + * daemon/gdm-static-display.c (gdm_static_display_unmanage), + (gdm_static_display_get_timed_login_details), + (gdm_static_display_class_init), (gdm_static_display_init): + * daemon/gdm-transient-display.c + (gdm_transient_display_get_timed_login_details), + (gdm_transient_display_class_init): + * daemon/gdm-xdmcp-display.c + (gdm_xdmcp_display_get_timed_login_details), + (gdm_xdmcp_display_class_init): + Add support for a real automatic login. Make + automatic and timed login only work the first time a display + is managed. Also prevent automatic and timed login + from working on transient and xdmcp displays. + + 2008-10-22 William Jon McCann + + * gui/user-switch-applet/gdm-entry-menu-item.c +Index: daemon/gdm-xdmcp-display.c +=================================================================== +--- daemon/gdm-xdmcp-display.c (revision 6581) ++++ daemon/gdm-xdmcp-display.c (revision 6582) +@@ -182,6 +182,17 @@ + } + + static void ++gdm_xdmcp_display_get_timed_login_details (GdmDisplay *display, ++ gboolean *enabledp, ++ char **usernamep, ++ int *delayp) ++{ ++ *enabledp = FALSE; ++ *usernamep = g_strdup (""); ++ *delayp = 0; ++} ++ ++static void + gdm_xdmcp_display_class_init (GdmXdmcpDisplayClass *klass) + { + GObjectClass *object_class = G_OBJECT_CLASS (klass); +@@ -196,6 +207,7 @@ + display_class->remove_user_authorization = gdm_xdmcp_display_remove_user_authorization; + display_class->manage = gdm_xdmcp_display_manage; + display_class->unmanage = gdm_xdmcp_display_unmanage; ++ display_class->get_timed_login_details = gdm_xdmcp_display_get_timed_login_details; + + g_type_class_add_private (klass, sizeof (GdmXdmcpDisplayPrivate)); + +Index: daemon/gdm-display.xml +=================================================================== +--- daemon/gdm-display.xml (revision 6581) ++++ daemon/gdm-display.xml (revision 6582) +@@ -35,5 +35,10 @@ + + + ++ ++ ++ ++ ++ + + +Index: daemon/gdm-slave.c +=================================================================== +--- daemon/gdm-slave.c (revision 6581) ++++ daemon/gdm-slave.c (revision 6582) +@@ -701,6 +701,60 @@ + return res; + } + ++gboolean ++gdm_slave_get_timed_login_details (GdmSlave *slave, ++ gboolean *enabledp, ++ char **usernamep, ++ int *delayp) ++{ ++ GError *error; ++ gboolean res; ++ gboolean enabled; ++ char *username; ++ int delay; ++ ++ username = NULL; ++ enabled = FALSE; ++ delay = 0; ++ ++ g_debug ("GdmSlave: Requesting timed login details"); ++ ++ error = NULL; ++ res = dbus_g_proxy_call (slave->priv->display_proxy, ++ "GetTimedLoginDetails", ++ &error, ++ G_TYPE_INVALID, ++ G_TYPE_BOOLEAN, &enabled, ++ G_TYPE_STRING, &username, ++ G_TYPE_INT, &delay, ++ G_TYPE_INVALID); ++ ++ if (! res) { ++ if (error != NULL) { ++ g_warning ("Failed to get timed login details: %s", error->message); ++ g_error_free (error); ++ } else { ++ g_warning ("Failed to get timed login details"); ++ } ++ } else { ++ g_debug ("GdmSlave: Got timed login details: %d %s %d", enabled, username, delay); ++ } ++ ++ if (usernamep != NULL) { ++ *usernamep = username; ++ } else { ++ g_free (username); ++ } ++ if (enabledp != NULL) { ++ *enabledp = enabled; ++ } ++ if (delayp != NULL) { ++ *delayp = delay; ++ } ++ ++ return res; ++} ++ + static gboolean + _get_uid_and_gid_for_user (const char *username, + uid_t *uid, +Index: daemon/gdm-slave.h +=================================================================== +--- daemon/gdm-slave.h (revision 6581) ++++ daemon/gdm-slave.h (revision 6582) +@@ -60,6 +60,11 @@ + char * gdm_slave_get_primary_session_id_for_user (GdmSlave *slave, + const char *username); + ++gboolean gdm_slave_get_timed_login_details (GdmSlave *slave, ++ gboolean *enabled, ++ char **username, ++ int *delay); ++ + gboolean gdm_slave_add_user_authorization (GdmSlave *slave, + const char *username, + char **filename); +Index: daemon/gdm-display.c +=================================================================== +--- daemon/gdm-display.c (revision 6581) ++++ daemon/gdm-display.c (revision 6582) +@@ -37,6 +37,9 @@ + #include "gdm-display-glue.h" + #include "gdm-display-access-file.h" + ++#include "gdm-settings-direct.h" ++#include "gdm-settings-keys.h" ++ + #include "gdm-slave-proxy.h" + + static guint32 display_serial = 1; +@@ -299,6 +302,90 @@ + return ret; + } + ++static void ++gdm_display_real_get_timed_login_details (GdmDisplay *display, ++ gboolean *enabledp, ++ char **usernamep, ++ int *delayp) ++{ ++ gboolean res; ++ gboolean enabled; ++ int delay; ++ char *username; ++ ++ enabled = FALSE; ++ username = NULL; ++ delay = 0; ++ ++ res = gdm_settings_direct_get_boolean (GDM_KEY_AUTO_LOGIN_ENABLE, &enabled); ++ if (enabled) { ++ res = gdm_settings_direct_get_string (GDM_KEY_AUTO_LOGIN_USER, &username); ++ } ++ ++ if (enabled && username != NULL && username[0] != '\0') { ++ goto out; ++ } ++ ++ g_free (username); ++ username = NULL; ++ enabled = FALSE; ++ ++ res = gdm_settings_direct_get_boolean (GDM_KEY_TIMED_LOGIN_ENABLE, &enabled); ++ if (! enabled) { ++ goto out; ++ } ++ ++ res = gdm_settings_direct_get_string (GDM_KEY_TIMED_LOGIN_USER, &username); ++ if (username == NULL || username[0] == '\0') { ++ enabled = FALSE; ++ g_free (username); ++ username = NULL; ++ /* FIXME: check if a valid username? */ ++ goto out; ++ } ++ ++ delay = 0; ++ res = gdm_settings_direct_get_int (GDM_KEY_TIMED_LOGIN_DELAY, &delay); ++ ++ if (delay <= 0) { ++ /* we don't allow the timed login to have a zero delay */ ++ delay = 10; ++ } ++ ++ out: ++ if (enabledp != NULL) { ++ *enabledp = enabled; ++ } ++ if (usernamep != NULL) { ++ *usernamep = username; ++ } else { ++ g_free (username); ++ } ++ if (delayp != NULL) { ++ *delayp = delay; ++ } ++} ++ ++gboolean ++gdm_display_get_timed_login_details (GdmDisplay *display, ++ gboolean *enabled, ++ char **username, ++ int *delay, ++ GError **error) ++{ ++ g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE); ++ ++ GDM_DISPLAY_GET_CLASS (display)->get_timed_login_details (display, enabled, username, delay); ++ ++ g_debug ("GdmSlave: Got timed login details for display %s: %d '%s' %d", ++ display->priv->x11_display_name, ++ *enabled, ++ *username, ++ *delay); ++ ++ return TRUE; ++} ++ + static gboolean + gdm_display_real_remove_user_authorization (GdmDisplay *display, + const char *username, +@@ -579,7 +666,7 @@ + } + + elapsed = g_timer_elapsed (display->priv->slave_timer, NULL); +- if (elapsed < 10) { ++ if (elapsed < 3) { + g_warning ("GdmDisplay: display lasted %lf seconds", elapsed); + _gdm_display_set_status (display, GDM_DISPLAY_FAILED); + } else { +@@ -897,6 +984,7 @@ + klass->add_user_authorization = gdm_display_real_add_user_authorization; + klass->remove_user_authorization = gdm_display_real_remove_user_authorization; + klass->set_slave_bus_name = gdm_display_real_set_slave_bus_name; ++ klass->get_timed_login_details = gdm_display_real_get_timed_login_details; + klass->manage = gdm_display_real_manage; + klass->finish = gdm_display_real_finish; + klass->unmanage = gdm_display_real_unmanage; +Index: daemon/gdm-transient-display.c +=================================================================== +--- daemon/gdm-transient-display.c (revision 6581) ++++ daemon/gdm-transient-display.c (revision 6582) +@@ -145,6 +145,17 @@ + } + + static void ++gdm_transient_display_get_timed_login_details (GdmDisplay *display, ++ gboolean *enabledp, ++ char **usernamep, ++ int *delayp) ++{ ++ *enabledp = FALSE; ++ *usernamep = g_strdup (""); ++ *delayp = 0; ++} ++ ++static void + gdm_transient_display_class_init (GdmTransientDisplayClass *klass) + { + GObjectClass *object_class = G_OBJECT_CLASS (klass); +@@ -160,6 +171,7 @@ + display_class->manage = gdm_transient_display_manage; + display_class->finish = gdm_transient_display_finish; + display_class->unmanage = gdm_transient_display_unmanage; ++ display_class->get_timed_login_details = gdm_transient_display_get_timed_login_details; + + g_type_class_add_private (klass, sizeof (GdmTransientDisplayPrivate)); + +Index: daemon/gdm-display.h +=================================================================== +--- daemon/gdm-display.h (revision 6581) ++++ daemon/gdm-display.h (revision 6582) +@@ -68,6 +68,10 @@ + gboolean (*manage) (GdmDisplay *display); + gboolean (*finish) (GdmDisplay *display); + gboolean (*unmanage) (GdmDisplay *display); ++ void (*get_timed_login_details) (GdmDisplay *display, ++ gboolean *enabled, ++ char **username, ++ int *delay); + } GdmDisplayClass; + + typedef enum +@@ -110,6 +114,11 @@ + gboolean gdm_display_is_local (GdmDisplay *display, + gboolean *local, + GError **error); ++gboolean gdm_display_get_timed_login_details (GdmDisplay *display, ++ gboolean *enabled, ++ char **username, ++ int *delay, ++ GError **error); + + /* exported but protected */ + gboolean gdm_display_get_x11_cookie (GdmDisplay *display, +Index: daemon/gdm-static-display.c +=================================================================== +--- daemon/gdm-static-display.c (revision 6581) ++++ daemon/gdm-static-display.c (revision 6582) +@@ -45,7 +45,7 @@ + + struct GdmStaticDisplayPrivate + { +- gpointer dummy; ++ gboolean enable_timed_login; + }; + + enum { +@@ -121,6 +121,9 @@ + { + g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE); + ++ /* Only allow timed/automatic login once */ ++ GDM_STATIC_DISPLAY (display)->priv->enable_timed_login = FALSE; ++ + GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->unmanage (display); + + return TRUE; +@@ -153,6 +156,21 @@ + } + + static void ++gdm_static_display_get_timed_login_details (GdmDisplay *display, ++ gboolean *enabledp, ++ char **usernamep, ++ int *delayp) ++{ ++ if (GDM_STATIC_DISPLAY (display)->priv->enable_timed_login) { ++ GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->get_timed_login_details (display, enabledp, usernamep, delayp); ++ } else { ++ *enabledp = FALSE; ++ *usernamep = g_strdup (""); ++ *delayp = 0; ++ } ++} ++ ++static void + gdm_static_display_class_init (GdmStaticDisplayClass *klass) + { + GObjectClass *object_class = G_OBJECT_CLASS (klass); +@@ -168,6 +186,7 @@ + display_class->manage = gdm_static_display_manage; + display_class->finish = gdm_static_display_finish; + display_class->unmanage = gdm_static_display_unmanage; ++ display_class->get_timed_login_details = gdm_static_display_get_timed_login_details; + + g_type_class_add_private (klass, sizeof (GdmStaticDisplayPrivate)); + +@@ -179,6 +198,8 @@ + { + + static_display->priv = GDM_STATIC_DISPLAY_GET_PRIVATE (static_display); ++ ++ static_display->priv->enable_timed_login = TRUE; + } + + static void +Index: daemon/gdm-simple-slave.c +=================================================================== +--- daemon/gdm-simple-slave.c (revision 6581) ++++ daemon/gdm-simple-slave.c (revision 6582) +@@ -74,9 +74,10 @@ + guint connection_attempts; + + GdmServer *server; ++ GdmSessionDirect *session; ++ + GdmGreeterServer *greeter_server; + GdmGreeterSession *greeter; +- GdmSessionDirect *session; + + guint start_session_when_ready : 1; + guint waiting_to_start_session : 1; +@@ -93,6 +94,7 @@ + G_DEFINE_TYPE (GdmSimpleSlave, gdm_simple_slave, GDM_TYPE_SLAVE) + + static void create_new_session (GdmSimpleSlave *slave); ++static void start_greeter (GdmSimpleSlave *slave); + + static void + on_session_started (GdmSession *session, +@@ -176,8 +178,14 @@ + greeter_reset_timeout (GdmSimpleSlave *slave) + { + g_debug ("GdmSimpleSlave: resetting greeter"); +- gdm_greeter_server_reset (slave->priv->greeter_server); +- reset_session (slave); ++ ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_reset (slave->priv->greeter_server); ++ reset_session (slave); ++ } else { ++ start_greeter (slave); ++ create_new_session (slave); ++ } + slave->priv->greeter_reset_id = 0; + return FALSE; + } +@@ -204,7 +212,10 @@ + const char *message, + GdmSimpleSlave *slave) + { +- gdm_greeter_server_problem (slave->priv->greeter_server, _("Unable to initialize login system")); ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_problem (slave->priv->greeter_server, ++ _("Unable to initialize login system")); ++ } + + destroy_session (slave); + queue_greeter_reset (slave); +@@ -237,7 +248,10 @@ + const char *message, + GdmSimpleSlave *slave) + { +- gdm_greeter_server_problem (slave->priv->greeter_server, _("Unable to authenticate user")); ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_problem (slave->priv->greeter_server, ++ _("Unable to authenticate user")); ++ } + destroy_session (slave); + queue_greeter_reset (slave); + } +@@ -274,8 +288,13 @@ + on_session_authorized (GdmSession *session, + GdmSimpleSlave *slave) + { +- gdm_greeter_server_user_authorized (slave->priv->greeter_server); +- gdm_simple_slave_accredit_when_ready (slave); ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_user_authorized (slave->priv->greeter_server); ++ gdm_simple_slave_accredit_when_ready (slave); ++ } else { ++ slave->priv->start_session_when_ready = TRUE; ++ gdm_simple_slave_accredit_when_ready (slave); ++ } + } + + static void +@@ -283,7 +302,10 @@ + const char *message, + GdmSimpleSlave *slave) + { +- gdm_greeter_server_problem (slave->priv->greeter_server, _("Unable to authorize user")); ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_problem (slave->priv->greeter_server, ++ _("Unable to authorize user")); ++ } + + destroy_session (slave); + queue_greeter_reset (slave); +@@ -306,7 +328,26 @@ + return res; + } + ++static void ++stop_greeter (GdmSimpleSlave *slave) ++{ ++ g_debug ("GdmSimpleSlave: Stopping greeter"); + ++ if (slave->priv->greeter == NULL) { ++ g_debug ("GdmSimpleSlave: No greeter running"); ++ return; ++ } ++ ++ /* Run the PostLogin script. gdmslave suspends until script has terminated */ ++ gdm_slave_run_script (GDM_SLAVE (slave), GDMCONFDIR "/PostLogin", GDM_USERNAME); ++ ++ gdm_welcome_session_stop (GDM_WELCOME_SESSION (slave->priv->greeter)); ++ gdm_greeter_server_stop (slave->priv->greeter_server); ++ ++ g_object_unref (slave->priv->greeter); ++ slave->priv->greeter = NULL; ++} ++ + static gboolean + start_session_timeout (GdmSimpleSlave *slave) + { +@@ -330,8 +371,7 @@ + goto out; + } + +- gdm_welcome_session_stop (GDM_WELCOME_SESSION (slave->priv->greeter)); +- gdm_greeter_server_stop (slave->priv->greeter_server); ++ stop_greeter (slave); + + auth_file = NULL; + add_user_authorization (slave, &auth_file); +@@ -365,9 +405,6 @@ + GdmSimpleSlave *slave) + { + queue_start_session (slave); +- +- /* Run the PostLogin script. gdmslave suspends until script has terminated */ +- gdm_slave_run_script (GDM_SLAVE (slave), GDMCONFDIR "/PostLogin", GDM_USERNAME); + } + + static void +@@ -384,7 +421,10 @@ + /* If we switched to another session we don't care if + accreditation fails */ + if (! migrated) { +- gdm_greeter_server_problem (slave->priv->greeter_server, _("Unable establish credentials")); ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_problem (slave->priv->greeter_server, ++ _("Unable establish credentials")); ++ } + } + + /* We don't stop the slave here after migrating because +@@ -402,7 +442,9 @@ + GdmSimpleSlave *slave) + { + g_debug ("GdmSimpleSlave: Info: %s", text); +- gdm_greeter_server_info (slave->priv->greeter_server, text); ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_info (slave->priv->greeter_server, text); ++ } + } + + static void +@@ -433,64 +475,39 @@ + gdm_greeter_server_secret_info_query (slave->priv->greeter_server, text); + } + +-static gboolean +-get_timed_login_details (GdmSimpleSlave *slave, +- char **username, +- int *delay) +-{ +- gboolean enabled; +- gboolean res; +- +- enabled = FALSE; +- res = gdm_settings_client_get_boolean (GDM_KEY_AUTO_LOGIN_ENABLE, &enabled); +- if (enabled) { +- +- *username = NULL; +- res = gdm_settings_client_get_string (GDM_KEY_AUTO_LOGIN_USER, username); +- } +- +- if (enabled && *username != NULL) +- { +- *delay = 0; +- return TRUE; +- } +- +- *username = NULL; +- enabled = FALSE; +- res = gdm_settings_client_get_boolean (GDM_KEY_TIMED_LOGIN_ENABLE, &enabled); +- if (! enabled) { +- return FALSE; +- } +- +- res = gdm_settings_client_get_string (GDM_KEY_TIMED_LOGIN_USER, username); +- +- if (username == NULL) { +- return FALSE; +- } +- +- res = gdm_settings_client_get_int (GDM_KEY_TIMED_LOGIN_DELAY, delay); +- +- return TRUE; +-} +- + static void + on_session_opened (GdmSession *session, + GdmSimpleSlave *slave) + { + gboolean res; ++ gboolean enabled; + char *username; + int delay; + + g_debug ("GdmSimpleSlave: session opened"); +- res = gdm_greeter_server_ready (slave->priv->greeter_server); +- if (! res) { +- g_warning ("Unable to send ready"); ++ if (slave->priv->greeter_server != NULL) { ++ res = gdm_greeter_server_ready (slave->priv->greeter_server); ++ if (! res) { ++ g_warning ("Unable to send ready"); ++ } + } + +- if (get_timed_login_details (slave, &username, &delay)) { ++ enabled = FALSE; ++ gdm_slave_get_timed_login_details (GDM_SLAVE (slave), &enabled, &username, &delay); ++ if (! enabled) { ++ return; ++ } ++ ++ if (slave->priv->greeter_server != NULL) { + gdm_greeter_server_request_timed_login (slave->priv->greeter_server, username, delay); +- g_free (username); ++ } else { ++ g_debug ("GdmSimpleSlave: begin auto login for user '%s'", username); ++ gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), ++ "gdm-autologin", ++ username); + } ++ ++ g_free (username); + } + + static void +@@ -500,7 +517,9 @@ + { + g_debug ("GdmSimpleSlave: Selected user changed: %s", text); + +- gdm_greeter_server_selected_user_changed (slave->priv->greeter_server, text); ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_selected_user_changed (slave->priv->greeter_server, text); ++ } + } + + static void +@@ -510,7 +529,9 @@ + { + g_debug ("GdmSimpleSlave: Default language name changed: %s", text); + +- gdm_greeter_server_default_language_name_changed (slave->priv->greeter_server, text); ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_default_language_name_changed (slave->priv->greeter_server, text); ++ } + } + + static void +@@ -520,7 +541,9 @@ + { + g_debug ("GdmSimpleSlave: Default layout name changed: %s", text); + +- gdm_greeter_server_default_layout_name_changed (slave->priv->greeter_server, text); ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_default_layout_name_changed (slave->priv->greeter_server, text); ++ } + } + + static void +@@ -530,7 +553,9 @@ + { + g_debug ("GdmSimpleSlave: Default session name changed: %s", text); + +- gdm_greeter_server_default_session_name_changed (slave->priv->greeter_server, text); ++ if (slave->priv->greeter_server != NULL) { ++ gdm_greeter_server_default_session_name_changed (slave->priv->greeter_server, text); ++ } + } + + static void +@@ -828,7 +853,7 @@ + } + + static void +-run_greeter (GdmSimpleSlave *slave) ++start_greeter (GdmSimpleSlave *slave) + { + gboolean display_is_local; + char *display_id; +@@ -871,8 +896,6 @@ + /* Run the init script. gdmslave suspends until script has terminated */ + gdm_slave_run_script (GDM_SLAVE (slave), GDMCONFDIR "/Init", GDM_USERNAME); + +- create_new_session (slave); +- + slave->priv->greeter_server = gdm_greeter_server_new (display_id); + g_signal_connect (slave->priv->greeter_server, + "begin-auto-login", +@@ -971,10 +994,22 @@ + + res = gdm_slave_connect_to_x11_display (GDM_SLAVE (slave)); + if (res) { ++ gboolean enabled; ++ int delay; ++ + /* FIXME: handle wait-for-go */ + + setup_server (slave); +- run_greeter (slave); ++ ++ delay = 0; ++ enabled = FALSE; ++ gdm_slave_get_timed_login_details (GDM_SLAVE (slave), &enabled, NULL, &delay); ++ if (! enabled || delay > 0) { ++ start_greeter (slave); ++ create_new_session (slave); ++ } else { ++ reset_session (slave); ++ } + } else { + if (slave->priv->connection_attempts >= MAX_CONNECT_ATTEMPTS) { + g_warning ("Unable to connect to display after %d tries - bailing out", slave->priv->connection_attempts); +@@ -1099,9 +1134,7 @@ + GDM_SLAVE_CLASS (gdm_simple_slave_parent_class)->stop (slave); + + if (GDM_SIMPLE_SLAVE (slave)->priv->greeter != NULL) { +- gdm_welcome_session_stop (GDM_WELCOME_SESSION (GDM_SIMPLE_SLAVE (slave)->priv->greeter)); +- g_object_unref (GDM_SIMPLE_SLAVE (slave)->priv->greeter); +- GDM_SIMPLE_SLAVE (slave)->priv->greeter = NULL; ++ stop_greeter (GDM_SIMPLE_SLAVE (slave)); + } + + if (GDM_SIMPLE_SLAVE (slave)->priv->session != NULL) { diff --git a/gdm-domain-logon.patch b/gdm-domain-logon.patch index 3eb7355..e499c1b 100644 --- a/gdm-domain-logon.patch +++ b/gdm-domain-logon.patch @@ -1,7 +1,48 @@ -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.c gdm-2.24.0-post/gui/simple-greeter/gdm-chooser-widget.c ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.c 2008-09-22 12:01:21.000000000 -0500 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-chooser-widget.c 2008-11-01 21:45:12.000000000 -0600 -@@ -2105,6 +2105,20 @@ gdm_chooser_widget_remove_item (GdmChoos +diff --git a/gui/simple-greeter/Makefile.am b/gui/simple-greeter/Makefile.am +index bba7a4a..d652961 100644 +--- a/gui/simple-greeter/Makefile.am ++++ b/gui/simple-greeter/Makefile.am +@@ -136,6 +136,14 @@ test_greeter_panel_SOURCES = \ + gdm-sessions.c \ + gdm-session-option-widget.h \ + gdm-session-option-widget.c \ ++ gdm-domain-chooser-dialog.h \ ++ gdm-domain-chooser-dialog.c \ ++ gdm-domain-chooser-widget.h \ ++ gdm-domain-chooser-widget.c \ ++ gdm-domain-option-widget.h \ ++ gdm-domain-option-widget.c \ ++ gdm-domain-provider.h \ ++ gdm-domain-provider.c \ + $(NULL) + + test_greeter_panel_LDADD = \ +@@ -313,12 +321,20 @@ gdm_simple_greeter_SOURCES = \ + gdm-language-chooser-dialog.c \ + gdm-language-option-widget.h \ + gdm-language-option-widget.c \ ++ gdm-domain-chooser-dialog.h \ ++ gdm-domain-chooser-dialog.c \ ++ gdm-domain-chooser-widget.h \ ++ gdm-domain-chooser-widget.c \ ++ gdm-domain-option-widget.h \ ++ gdm-domain-option-widget.c \ + gdm-sessions.h \ + gdm-sessions.c \ + gdm-session-option-widget.h \ + gdm-session-option-widget.c \ + gdm-user-chooser-widget.h \ + gdm-user-chooser-widget.c \ ++ gdm-domain-provider.h \ ++ gdm-domain-provider.c \ + $(NULL) + + gdm_simple_greeter_LDADD = \ +diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c +index f0298c6..4894eee 100644 +--- a/gui/simple-greeter/gdm-chooser-widget.c ++++ b/gui/simple-greeter/gdm-chooser-widget.c +@@ -2105,6 +2105,20 @@ gdm_chooser_widget_remove_item (GdmChooserWidget *widget, move_cursor_to_top (widget); } @@ -22,10 +63,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.c gdm-2.24.0-pos gboolean gdm_chooser_widget_lookup_item (GdmChooserWidget *widget, const char *id, -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.h gdm-2.24.0-post/gui/simple-greeter/gdm-chooser-widget.h ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.h 2008-09-22 12:01:21.000000000 -0500 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-chooser-widget.h 2008-11-01 21:45:12.000000000 -0600 -@@ -96,6 +96,8 @@ void gdm_chooser_widget_update_i +diff --git a/gui/simple-greeter/gdm-chooser-widget.h b/gui/simple-greeter/gdm-chooser-widget.h +index b73d1bb..b70016c 100644 +--- a/gui/simple-greeter/gdm-chooser-widget.h ++++ b/gui/simple-greeter/gdm-chooser-widget.h +@@ -96,6 +96,8 @@ void gdm_chooser_widget_update_item (GdmChooserWidget * void gdm_chooser_widget_remove_item (GdmChooserWidget *widget, const char *id); @@ -34,9 +76,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.h gdm-2.24.0-pos gboolean gdm_chooser_widget_lookup_item (GdmChooserWidget *widget, const char *id, GdkPixbuf **image, -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.c gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-dialog.c ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.c 1969-12-31 18:00:00.000000000 -0600 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-dialog.c 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-domain-chooser-dialog.c b/gui/simple-greeter/gdm-domain-chooser-dialog.c +new file mode 100644 +index 0000000..f577b65 +--- /dev/null ++++ b/gui/simple-greeter/gdm-domain-chooser-dialog.c @@ -0,0 +1,207 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -245,9 +289,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.c gdm-2.2 + + return GTK_WIDGET (object); +} -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.h gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-dialog.h ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.h 1969-12-31 18:00:00.000000000 -0600 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-dialog.h 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-domain-chooser-dialog.h b/gui/simple-greeter/gdm-domain-chooser-dialog.h +new file mode 100644 +index 0000000..f11f183 +--- /dev/null ++++ b/gui/simple-greeter/gdm-domain-chooser-dialog.h @@ -0,0 +1,60 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -309,9 +355,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.h gdm-2.2 +G_END_DECLS + +#endif /* __GDM_DOMAIN_CHOOSER_DIALOG_H */ -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.c gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-widget.c ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.c 1969-12-31 18:00:00.000000000 -0600 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-widget.c 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-domain-chooser-widget.c b/gui/simple-greeter/gdm-domain-chooser-widget.c +new file mode 100644 +index 0000000..1d8b113 +--- /dev/null ++++ b/gui/simple-greeter/gdm-domain-chooser-widget.c @@ -0,0 +1,237 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -550,9 +598,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.c gdm-2.2 + + return GTK_WIDGET (object); +} -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.h gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-widget.h ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.h 1969-12-31 18:00:00.000000000 -0600 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-widget.h 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-domain-chooser-widget.h b/gui/simple-greeter/gdm-domain-chooser-widget.h +new file mode 100644 +index 0000000..4ba9d18 +--- /dev/null ++++ b/gui/simple-greeter/gdm-domain-chooser-widget.h @@ -0,0 +1,59 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -613,9 +663,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.h gdm-2.2 +G_END_DECLS + +#endif /* __GDM_DOMAIN_CHOOSER_WIDGET_H */ -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.c gdm-2.24.0-post/gui/simple-greeter/gdm-domain-option-widget.c ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.c 1969-12-31 18:00:00.000000000 -0600 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-option-widget.c 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-domain-option-widget.c b/gui/simple-greeter/gdm-domain-option-widget.c +new file mode 100644 +index 0000000..93eb5f5 +--- /dev/null ++++ b/gui/simple-greeter/gdm-domain-option-widget.c @@ -0,0 +1,379 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -996,9 +1048,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.c gdm-2.24 + + gdm_option_widget_set_active_item (GDM_OPTION_WIDGET (widget), domain_name); +} -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.h gdm-2.24.0-post/gui/simple-greeter/gdm-domain-option-widget.h ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.h 1969-12-31 18:00:00.000000000 -0600 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-option-widget.h 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-domain-option-widget.h b/gui/simple-greeter/gdm-domain-option-widget.h +new file mode 100644 +index 0000000..4913ede +--- /dev/null ++++ b/gui/simple-greeter/gdm-domain-option-widget.h @@ -0,0 +1,59 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1059,9 +1113,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.h gdm-2.24 + const char *domain_name); + +#endif /* __GDM_DOMAIN_OPTION_WIDGET_H */ -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.c gdm-2.24.0-post/gui/simple-greeter/gdm-domain-provider.c ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.c 1969-12-31 18:00:00.000000000 -0600 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-provider.c 2008-11-01 22:10:58.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-domain-provider.c b/gui/simple-greeter/gdm-domain-provider.c +new file mode 100644 +index 0000000..2bd9189 +--- /dev/null ++++ b/gui/simple-greeter/gdm-domain-provider.c @@ -0,0 +1,478 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1541,9 +1597,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.c gdm-2.24.0-po + + return priv->domains; +} -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.h gdm-2.24.0-post/gui/simple-greeter/gdm-domain-provider.h ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.h 1969-12-31 18:00:00.000000000 -0600 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-provider.h 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-domain-provider.h b/gui/simple-greeter/gdm-domain-provider.h +new file mode 100644 +index 0000000..6a318ff +--- /dev/null ++++ b/gui/simple-greeter/gdm-domain-provider.h @@ -0,0 +1,61 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1606,9 +1664,10 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.h gdm-2.24.0-po +G_END_DECLS + +#endif /* __GDM_DOMAIN_PROVIDER_H */ -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-panel.c ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c 2008-08-20 23:31:47.000000000 -0500 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-panel.c 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-greeter-panel.c b/gui/simple-greeter/gdm-greeter-panel.c +index 50478c5..e557ba9 100644 +--- a/gui/simple-greeter/gdm-greeter-panel.c ++++ b/gui/simple-greeter/gdm-greeter-panel.c @@ -40,6 +40,7 @@ #include "gdm-language-option-widget.h" #include "gdm-layout-option-widget.h" @@ -1633,7 +1692,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post NUMBER_OF_SIGNALS }; -@@ -451,6 +454,17 @@ gdm_greeter_panel_class_init (GdmGreeter +@@ -451,6 +454,17 @@ gdm_greeter_panel_class_init (GdmGreeterPanelClass *klass) G_TYPE_NONE, 1, G_TYPE_STRING); @@ -1651,7 +1710,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post g_object_class_install_property (object_class, PROP_MONITOR, g_param_spec_int ("monitor", -@@ -521,6 +535,24 @@ on_session_activated (GdmSessionOptionWi +@@ -521,6 +535,24 @@ on_session_activated (GdmSessionOptionWidget *widget, } static void @@ -1676,7 +1735,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post gdm_greeter_panel_init (GdmGreeterPanel *panel) { NaTray *tray; -@@ -581,6 +613,12 @@ gdm_greeter_panel_init (GdmGreeterPanel +@@ -581,6 +613,12 @@ gdm_greeter_panel_init (GdmGreeterPanel *panel) G_CALLBACK (on_session_activated), panel); gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), panel->priv->session_option_widget, FALSE, FALSE, 6); @@ -1689,15 +1748,15 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post spacer = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), spacer, TRUE, TRUE, 6); gtk_widget_show (spacer); -@@ -643,6 +681,7 @@ gdm_greeter_panel_show_user_options (Gdm +@@ -643,6 +681,7 @@ gdm_greeter_panel_show_user_options (GdmGreeterPanel *panel) gtk_widget_show (panel->priv->session_option_widget); gtk_widget_show (panel->priv->language_option_widget); gtk_widget_show (panel->priv->layout_option_widget); -+ gtk_widget_hide (panel->priv->domain_option_widget); ++ gtk_widget_show (panel->priv->domain_option_widget); } void -@@ -651,6 +690,7 @@ gdm_greeter_panel_hide_user_options (Gdm +@@ -651,6 +690,7 @@ gdm_greeter_panel_hide_user_options (GdmGreeterPanel *panel) gtk_widget_hide (panel->priv->session_option_widget); gtk_widget_hide (panel->priv->language_option_widget); gtk_widget_hide (panel->priv->layout_option_widget); @@ -1705,7 +1764,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post g_debug ("GdmGreeterPanel: activating default layout"); gdm_layout_activate (NULL); -@@ -730,3 +770,20 @@ gdm_greeter_panel_set_default_session_na +@@ -730,3 +770,20 @@ gdm_greeter_panel_set_default_session_name (GdmGreeterPanel *panel, gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->session_option_widget), session_name); } @@ -1726,9 +1785,10 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post + gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->domain_option_widget), + domain_name); +} -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.h gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-panel.h ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.h 2008-08-20 23:31:47.000000000 -0500 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-panel.h 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-greeter-panel.h b/gui/simple-greeter/gdm-greeter-panel.h +index 07cca3f..5d2e2b2 100644 +--- a/gui/simple-greeter/gdm-greeter-panel.h ++++ b/gui/simple-greeter/gdm-greeter-panel.h @@ -53,6 +53,9 @@ typedef struct void (* session_selected) (GdmGreeterPanel *panel, @@ -1739,7 +1799,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.h gdm-2.24.0-post } GdmGreeterPanelClass; GType gdm_greeter_panel_get_type (void); -@@ -70,6 +73,8 @@ void gdm_greeter_panel +@@ -70,6 +73,8 @@ void gdm_greeter_panel_set_default_layout_name (GdmGree const char *layout_name); void gdm_greeter_panel_set_default_session_name (GdmGreeterPanel *panel, const char *session_name); @@ -1748,9 +1808,10 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.h gdm-2.24.0-post G_END_DECLS #endif /* __GDM_GREETER_PANEL_H */ -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-session.c ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c 2008-08-20 23:31:47.000000000 -0500 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-session.c 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-greeter-session.c b/gui/simple-greeter/gdm-greeter-session.c +index 83375b2..50c0e33 100644 +--- a/gui/simple-greeter/gdm-greeter-session.c ++++ b/gui/simple-greeter/gdm-greeter-session.c @@ -38,6 +38,8 @@ #include "gdm-greeter-panel.h" #include "gdm-greeter-login-window.h" @@ -1770,7 +1831,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po }; enum { -@@ -62,6 +67,33 @@ G_DEFINE_TYPE (GdmGreeterSession, gdm_gr +@@ -62,6 +67,33 @@ G_DEFINE_TYPE (GdmGreeterSession, gdm_greeter_session, G_TYPE_OBJECT) static gpointer session_object = NULL; @@ -1804,7 +1865,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po static void on_info (GdmGreeterClient *client, const char *text, -@@ -198,8 +230,14 @@ on_begin_verification_for_user (GdmGreet +@@ -198,8 +230,14 @@ on_begin_verification_for_user (GdmGreeterLoginWindow *login_window, const char *username, GdmGreeterSession *session) { @@ -1820,7 +1881,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po } static void -@@ -236,13 +274,46 @@ on_select_layout (GdmGreeterSession +@@ -236,13 +274,46 @@ on_select_layout (GdmGreeterSession *session, } static void @@ -1868,7 +1929,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po } static void -@@ -300,6 +371,11 @@ toggle_panel (GdmGreeterSession *session +@@ -300,6 +371,11 @@ toggle_panel (GdmGreeterSession *session, G_CALLBACK (on_select_session), session); @@ -1880,7 +1941,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po gtk_widget_show (session->priv->panel); } else { gtk_widget_destroy (session->priv->panel); -@@ -563,6 +639,9 @@ gdm_greeter_session_finalize (GObject *o +@@ -563,6 +639,9 @@ gdm_greeter_session_finalize (GObject *object) g_return_if_fail (greeter_session->priv != NULL); @@ -1890,9 +1951,10 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po G_OBJECT_CLASS (gdm_greeter_session_parent_class)->finalize (object); } -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-simple-greeter.schemas.in gdm-2.24.0-post/gui/simple-greeter/gdm-simple-greeter.schemas.in ---- gdm-2.24.0-pre/gui/simple-greeter/gdm-simple-greeter.schemas.in 2008-08-20 23:31:47.000000000 -0500 -+++ gdm-2.24.0-post/gui/simple-greeter/gdm-simple-greeter.schemas.in 2008-11-01 21:45:12.000000000 -0600 +diff --git a/gui/simple-greeter/gdm-simple-greeter.schemas.in b/gui/simple-greeter/gdm-simple-greeter.schemas.in +index 55b441f..450cb22 100644 +--- a/gui/simple-greeter/gdm-simple-greeter.schemas.in ++++ b/gui/simple-greeter/gdm-simple-greeter.schemas.in @@ -92,6 +92,18 @@ @@ -1912,42 +1974,3 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-simple-greeter.schemas.in gdm-2 /schemas/apps/gdm/simple-greeter/wm_use_compiz /apps/gdm/simple-greeter/wm_use_compiz gdm-simple-greeter -diff -uprN gdm-2.24.0-pre/gui/simple-greeter/Makefile.am gdm-2.24.0-post/gui/simple-greeter/Makefile.am ---- gdm-2.24.0-pre/gui/simple-greeter/Makefile.am 2008-09-22 12:01:21.000000000 -0500 -+++ gdm-2.24.0-post/gui/simple-greeter/Makefile.am 2008-11-01 21:45:12.000000000 -0600 -@@ -136,6 +136,14 @@ test_greeter_panel_SOURCES = \ - gdm-sessions.c \ - gdm-session-option-widget.h \ - gdm-session-option-widget.c \ -+ gdm-domain-chooser-dialog.h \ -+ gdm-domain-chooser-dialog.c \ -+ gdm-domain-chooser-widget.h \ -+ gdm-domain-chooser-widget.c \ -+ gdm-domain-option-widget.h \ -+ gdm-domain-option-widget.c \ -+ gdm-domain-provider.h \ -+ gdm-domain-provider.c \ - $(NULL) - - test_greeter_panel_LDADD = \ -@@ -313,12 +321,20 @@ gdm_simple_greeter_SOURCES = \ - gdm-language-chooser-dialog.c \ - gdm-language-option-widget.h \ - gdm-language-option-widget.c \ -+ gdm-domain-chooser-dialog.h \ -+ gdm-domain-chooser-dialog.c \ -+ gdm-domain-chooser-widget.h \ -+ gdm-domain-chooser-widget.c \ -+ gdm-domain-option-widget.h \ -+ gdm-domain-option-widget.c \ - gdm-sessions.h \ - gdm-sessions.c \ - gdm-session-option-widget.h \ - gdm-session-option-widget.c \ - gdm-user-chooser-widget.h \ - gdm-user-chooser-widget.c \ -+ gdm-domain-provider.h \ -+ gdm-domain-provider.c \ - $(NULL) - - gdm_simple_greeter_LDADD = \ diff --git a/gdm.changes b/gdm.changes index e07b934..4f6a096 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Sun Nov 9 13:47:59 EST 2008 - jpr@novell.com + +- Add gdm-autologin.patch so the greeter is not created for + autologin and improve startup time (bnc#436524) +- Update gdm-domain-login.patch so the domain box is present + even if the user list is not (bnc#431339) + ------------------------------------------------------------------- Fri Nov 7 14:02:20 CET 2008 - vuntz@novell.com diff --git a/gdm.spec b/gdm.spec index 5bf9ae0..f68cf00 100644 --- a/gdm.spec +++ b/gdm.spec @@ -57,7 +57,7 @@ PreReq: %insserv_prereq License: GPL v2 or later Group: System/GUI/GNOME Version: 2.24.0 -Release: 7 +Release: 8 Summary: The GNOME 2.x Display Manager Source: %{name}-%{version}.tar.bz2 Source1: gdm.pamd @@ -85,6 +85,8 @@ Patch11: gdm-2.23.92-fix-crash.patch Patch12: gdm-fix-icon-scale.patch # PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager Patch13: gdm-sysconfig-settings.patch +# PATCH-FIX-UPSTREAM gdm-autologin.patch bnc436524 mmeeks@novell.com -- From upstream don't create the greeter when autologging it to save startup time +Patch14: gdm-autologin.patch Patch28: gdm-X_SERVER.patch # PATCH-SUSE: enable SELinux Patch60: gdm-selinux.patch @@ -160,6 +162,7 @@ Authors: %patch11 -p1 %patch12 -p1 %patch13 -p1 +%patch14 %patch28 %patch60 @@ -268,6 +271,11 @@ fi %files lang -f %{name}.lang %changelog +* Sun Nov 09 2008 jpr@novell.com +- Add gdm-autologin.patch so the greeter is not created for + autologin and improve startup time (bnc#436524) +- Update gdm-domain-login.patch so the domain box is present + even if the user list is not (bnc#431339) * Fri Nov 07 2008 vuntz@novell.com - Merge hpj's submission: Add gdm-sysconfig-settings.patch, which fixes bnc#432360. @@ -301,7 +309,7 @@ fi family to FamilyWild. * Mon Oct 06 2008 sbrabec@suse.cz - Conflict with other branding providers (FATE#304881). -* Fri Oct 03 2008 mboman@suse.de +* Thu Oct 02 2008 mboman@suse.de - Update to version 2.24.0: + Allow the build to succeed without a gdm user + Use Bourne shell syntax in Xsession.solaris @@ -480,7 +488,7 @@ fi 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]. @@ -489,7 +497,7 @@ fi (#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 @@ -497,7 +505,7 @@ fi - 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 @@ -553,7 +561,7 @@ fi * Wed Sep 05 2007 sbrabec@suse.cz - Apply DISPLAYMANAGER_PASSWORD_LESS_LOGIN only for standard login, not for autologin (#307566). -* Mon Sep 03 2007 hpj@suse.de +* Sun Sep 02 2007 hpj@suse.de - Add gdm-2.19.7-pam-hide-password.patch, which fixes an upstream bug where the user's password was being shown on screen (part of BNC #302282). @@ -607,7 +615,7 @@ fi * 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. @@ -687,7 +695,7 @@ fi * 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 @@ -695,10 +703,10 @@ fi [#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 @@ -865,7 +873,7 @@ fi - 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. * Wed May 31 2006 dreveman@suse.de @@ -875,7 +883,7 @@ fi - 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 @@ -885,7 +893,7 @@ fi * 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 @@ -913,7 +921,7 @@ fi 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. @@ -922,7 +930,7 @@ fi 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. * Fri Feb 17 2006 sreeves@suse.de - Update .desktop file (Name, GenericName, Comment, DocPath) @@ -950,10 +958,10 @@ fi - 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 @@ -973,7 +981,7 @@ fi - 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. * Thu Oct 13 2005 gekker@suse.de @@ -992,7 +1000,7 @@ fi - 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. @@ -1003,7 +1011,7 @@ fi * 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 @@ -1069,7 +1077,7 @@ fi for timed login user. * Fri Jul 30 2004 ro@suse.de - fix spec file, list gdm-session-startkde.diff as patch -* Fri Jul 30 2004 shprasad@suse.de +* Thu Jul 29 2004 shprasad@suse.de - Fixes bug #60867. Shows the 'KDE' option when the user clicks on 'Session' at the time of login. @@ -1128,7 +1136,7 @@ fi - 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 @@ -1165,7 +1173,7 @@ fi - 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.