diff --git a/gdm-2.23.92-another-locale-fixup.patch b/gdm-2.23.92-another-locale-fixup.patch deleted file mode 100644 index 8b2d18a..0000000 --- a/gdm-2.23.92-another-locale-fixup.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- gdm/gui/simple-greeter/gdm-languages.c (revision 6468) -+++ gdm/gui/simple-greeter/gdm-languages.c (working copy) -@@ -216,6 +216,25 @@ construct_language_name (const char *lan - return name; - } - -+static void -+make_codeset_canonical_for_locale (const *name, -+ const char **codeset) -+{ -+ char *old_locale; -+ char *canonical_codeset; -+ -+ old_locale = setlocale (LC_CTYPE, name); -+ -+ if (old_locale == NULL) { -+ return; -+ } -+ -+ g_free (*codeset); -+ *codeset = g_strdup (nl_langinfo (CODESET)); -+ -+ setlocale (LC_CTYPE, old_locale); -+} -+ - char * - gdm_normalize_language_name (const char *name) - { -@@ -234,6 +253,10 @@ gdm_normalize_language_name (const char - &territory_code, - &codeset, &modifier); - -+ if (codeset != NULL) { -+ make_codeset_canonical_for_locale (name, &codeset); -+ } -+ - normalized_name = construct_language_name (language_code, - territory_code, - codeset, modifier); diff --git a/gdm-2.23.92-filter-dupes-from-lang-list.patch b/gdm-2.23.92-filter-dupes-from-lang-list.patch deleted file mode 100644 index f336d5d..0000000 --- a/gdm-2.23.92-filter-dupes-from-lang-list.patch +++ /dev/null @@ -1,138 +0,0 @@ -diff -up gdm-2.23.92/gui/simple-greeter/gdm-language-option-widget.c.filter-dupes-from-lang-list gdm-2.23.92/gui/simple-greeter/gdm-language-option-widget.c ---- gdm-2.23.92/gui/simple-greeter/gdm-language-option-widget.c.filter-dupes-from-lang-list 2008-08-26 15:04:00.000000000 -0400 -+++ gdm-2.23.92/gui/simple-greeter/gdm-language-option-widget.c 2008-09-17 11:07:51.000000000 -0400 -@@ -173,7 +173,7 @@ gdm_language_option_widget_class_init (G - g_type_class_add_private (klass, sizeof (GdmLanguageOptionWidgetPrivate)); - } - --static gboolean -+static char * - gdm_language_option_widget_lookup_item (GdmRecentOptionWidget *widget, - const char *locale, - char **name, -@@ -182,11 +182,15 @@ gdm_language_option_widget_lookup_item ( - char *language; - char *readable_language; - char *lang_tag; -+ char *normalized_locale; - -- language = gdm_get_language_from_name (locale, locale); -+ normalized_locale = gdm_normalize_language_name (locale); -+ -+ language = gdm_get_language_from_name (locale, normalized_locale); - - if (language == NULL) { -- return FALSE; -+ g_free (normalized_locale); -+ return NULL; - } - - readable_language = gdm_get_language_from_name (locale, NULL); -@@ -197,7 +201,7 @@ gdm_language_option_widget_lookup_item ( - g_free (language); - g_free (lang_tag); - -- return TRUE; -+ return normalized_locale; - } - - static void -@@ -294,7 +298,7 @@ gdm_language_option_widget_set_current_l - - if (normalized_language_name != NULL && - !gdm_option_widget_lookup_item (GDM_OPTION_WIDGET (widget), -- normalized_language_name, NULL, NULL, NULL)) { -+ &normalized_language_name, NULL, NULL, NULL)) { - gdm_recent_option_widget_add_item (GDM_RECENT_OPTION_WIDGET (widget), - normalized_language_name); - } -diff -up gdm-2.23.92/gui/simple-greeter/gdm-layout-option-widget.c.filter-dupes-from-lang-list gdm-2.23.92/gui/simple-greeter/gdm-layout-option-widget.c ---- gdm-2.23.92/gui/simple-greeter/gdm-layout-option-widget.c.filter-dupes-from-lang-list 2008-09-17 10:55:20.000000000 -0400 -+++ gdm-2.23.92/gui/simple-greeter/gdm-layout-option-widget.c 2008-09-17 11:08:07.000000000 -0400 -@@ -176,24 +176,24 @@ gdm_layout_option_widget_class_init (Gdm - g_type_class_add_private (klass, sizeof (GdmLayoutOptionWidgetPrivate)); - } - --static gboolean -+static char * - gdm_layout_option_widget_lookup_item (GdmRecentOptionWidget *widget, -- const char *id, -+ const char *key, - char **name, - char **comment) - { - char *layout; - -- layout = gdm_get_layout_from_name (id); -+ layout = gdm_get_layout_from_name (key); - - if (layout == NULL) { -- return FALSE; -+ return NULL; - } - - *name = layout; - *comment = NULL; - -- return TRUE; -+ return g_strdup (key); - } - - static void -diff -up gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.c.filter-dupes-from-lang-list gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.c ---- gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.c.filter-dupes-from-lang-list 2008-08-26 15:04:00.000000000 -0400 -+++ gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.c 2008-09-17 11:06:34.000000000 -0400 -@@ -159,13 +159,24 @@ gdm_recent_option_widget_sync_items_from - default_is_set = FALSE; - - for (tmp = list; tmp != NULL; tmp = tmp->next) { -- const char *id; -+ const char *key; -+ char *id; - char *name; - char *comment; - -- id = (char *) tmp->data; -+ key = (char *) tmp->data; -+ -+ id = widget->priv->lookup_item_func (widget, key, &name, &comment); -+ -+ if (id != NULL) { -+ gboolean item_exists; -+ -+ item_exists = gdm_option_widget_lookup_item (GDM_OPTION_WIDGET (widget), id, NULL, NULL, NULL); -+ -+ if (item_exists) { -+ continue; -+ } - -- if (widget->priv->lookup_item_func (widget, id, &name, &comment)) { - gdm_option_widget_add_item (GDM_OPTION_WIDGET (widget), - id, name, comment, - GDM_OPTION_WIDGET_POSITION_MIDDLE); -@@ -177,6 +188,7 @@ gdm_recent_option_widget_sync_items_from - - g_free (name); - g_free (comment); -+ g_free (id); - } - } - -diff -up gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.h.filter-dupes-from-lang-list gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.h ---- gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.h.filter-dupes-from-lang-list 2008-08-26 15:04:00.000000000 -0400 -+++ gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.h 2008-09-17 11:07:40.000000000 -0400 -@@ -48,10 +48,10 @@ typedef struct - GdmOptionWidgetClass parent_class; - } GdmRecentOptionWidgetClass; - --typedef gboolean (* GdmRecentOptionLookupItemFunc) (GdmRecentOptionWidget *widget, -- const char *id, -- char **name, -- char **comment); -+typedef char * (* GdmRecentOptionLookupItemFunc) (GdmRecentOptionWidget *widget, -+ const char *key, -+ char **name, -+ char **comment); - - - GType gdm_recent_option_widget_get_type (void); diff --git a/gdm-2.23.92-fix-crash.patch b/gdm-2.23.92-fix-crash.patch deleted file mode 100644 index fda4b07..0000000 --- a/gdm-2.23.92-fix-crash.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- gdm-2.23.92/gui/simple-greeter/gdm-option-widget.c 2008-08-26 15:03:59.000000000 -0400 -+++ foo/gui/simple-greeter/gdm-option-widget.c 2008-09-19 09:57:30.000000000 -0400 -@@ -148,7 +148,8 @@ - model = GTK_TREE_MODEL (widget->priv->list_store); - item_id = NULL; - -- if (widget->priv->active_row == NULL) { -+ if (widget->priv->active_row == NULL || -+ !gtk_tree_row_reference_valid (widget->priv->active_row)) { - return NULL; - } - diff --git a/gdm-2.24.0.tar.bz2 b/gdm-2.24.0.tar.bz2 deleted file mode 100644 index bf604bb..0000000 --- a/gdm-2.24.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f47553b89ff6ba5c03e53d82a64a63b97fcb2d751cbd4e1591c6499ac9a694f7 -size 2559374 diff --git a/gdm-2.25.2.tar.bz2 b/gdm-2.25.2.tar.bz2 new file mode 100644 index 0000000..3c1d509 --- /dev/null +++ b/gdm-2.25.2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2ee2c552282aa56b4e2c0797052b33a44b5d7bba6f203f44b2c9eaa17e1ba19 +size 2616227 diff --git a/gdm-accreditation-failed-log.patch b/gdm-accreditation-failed-log.patch new file mode 100644 index 0000000..6634676 --- /dev/null +++ b/gdm-accreditation-failed-log.patch @@ -0,0 +1,55 @@ +Index: gdm-2.24.0/daemon/gdm-session-direct.c +=================================================================== +--- gdm-2.24.0.orig/daemon/gdm-session-direct.c ++++ gdm-2.24.0/daemon/gdm-session-direct.c +@@ -442,6 +442,7 @@ gdm_session_direct_handle_accreditation_ + DBusError error; + const char *text; + ++ text = NULL; + dbus_error_init (&error); + if (! dbus_message_get_args (message, &error, + DBUS_TYPE_STRING, &text, +@@ -455,7 +456,7 @@ gdm_session_direct_handle_accreditation_ + + g_debug ("GdmSessionDirect: Emitting 'accreditation-failed' signal"); + +- _gdm_session_accreditation_failed (GDM_SESSION (session), NULL); ++ _gdm_session_accreditation_failed (GDM_SESSION (session), text); + + return DBUS_HANDLER_RESULT_HANDLED; + } +Index: gdm-2.24.0/daemon/gdm-simple-slave.c +=================================================================== +--- gdm-2.24.0.orig/daemon/gdm-simple-slave.c ++++ gdm-2.24.0/daemon/gdm-simple-slave.c +@@ -422,8 +422,15 @@ on_session_accreditation_failed (GdmSess + accreditation fails */ + if (! migrated) { + if (slave->priv->greeter_server != NULL) { ++ char *problem; ++ if (message) { ++ problem = g_strdup_printf (_("Unable to establish credentials: %s"), message); ++ } else { ++ problem = g_strdup (_("Unable to establish credentials")); ++ } + gdm_greeter_server_problem (slave->priv->greeter_server, +- _("Unable establish credentials")); ++ problem); ++ g_free (problem); + } + } + +Index: gdm-2.24.0/daemon/gdm-session-worker.c +=================================================================== +--- gdm-2.24.0.orig/daemon/gdm-session-worker.c ++++ gdm-2.24.0/daemon/gdm-session-worker.c +@@ -2414,7 +2414,7 @@ on_setup (GdmSessionWorker *worker, + worker->priv->hostname = g_strdup (hostname); + worker->priv->username = NULL; + +- g_debug ("GdmSessionWorker: queing setup: %s %s", service, console); ++ g_debug ("GdmSessionWorker: queuing setup: %s %s", service, console); + queue_state_change (worker); + } else { + g_warning ("Unable to get arguments: %s", error.message); diff --git a/gdm-autologin.patch b/gdm-autologin.patch deleted file mode 100644 index c6be725..0000000 --- a/gdm-autologin.patch +++ /dev/null @@ -1,748 +0,0 @@ -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-bnc468374-dbus-send-dest.patch b/gdm-bnc468374-dbus-send-dest.patch new file mode 100644 index 0000000..c2f74ee --- /dev/null +++ b/gdm-bnc468374-dbus-send-dest.patch @@ -0,0 +1,105 @@ +Index: gdm-2.24.0/data/gdm.conf.in +=================================================================== +--- gdm-2.24.0.orig/data/gdm.conf.in ++++ gdm-2.24.0/data/gdm.conf.in +@@ -7,52 +7,76 @@ + + + +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ + + + + +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ + + +- +- +- +- +- +- + +- + +- + + + + +- +- +- +- ++ ++ ++ ++ + + diff --git a/gdm-domain-logon.patch b/gdm-domain-logon.patch index 27d759e..0a527f9 100644 --- a/gdm-domain-logon.patch +++ b/gdm-domain-logon.patch @@ -1727,9 +1727,9 @@ index 50478c5..825f0c5 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" #include "gdm-session-option-widget.h" + #include "gdm-timer.h" +#include "gdm-domain-option-widget.h" #include "gdm-profile.h" @@ -1740,8 +1740,8 @@ index 50478c5..825f0c5 100644 GtkWidget *session_option_widget; + GtkWidget *domain_option_widget; - char *default_session_name; - char *default_language_name; + GdmTimer *animation_timer; + double progress; @@ -72,6 +74,7 @@ enum { LANGUAGE_SELECTED, LAYOUT_SELECTED, diff --git a/gdm-fix-icon-scale.patch b/gdm-fix-icon-scale.patch deleted file mode 100644 index 54fb44b..0000000 --- a/gdm-fix-icon-scale.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff -up gdm-2.24.0/gui/simple-greeter/gdm-user-chooser-widget.c.fix-icon-scale gdm-2.24.0/gui/simple-greeter/gdm-user-chooser-widget.c ---- gdm-2.24.0/gui/simple-greeter/gdm-user-chooser-widget.c.fix-icon-scale 2008-09-22 13:01:21.000000000 -0400 -+++ gdm-2.24.0/gui/simple-greeter/gdm-user-chooser-widget.c 2008-09-30 17:31:00.000000000 -0400 -@@ -51,7 +51,7 @@ enum { - - #define GDM_USER_CHOOSER_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_USER_CHOOSER_WIDGET, GdmUserChooserWidgetPrivate)) - --#define ICON_SIZE 96 -+#define MAX_ICON_SIZE 128 - - struct GdmUserChooserWidgetPrivate - { -@@ -83,6 +83,45 @@ static void gdm_user_chooser_widget_ - - G_DEFINE_TYPE (GdmUserChooserWidget, gdm_user_chooser_widget, GDM_TYPE_CHOOSER_WIDGET) - -+static int -+get_font_height_for_widget (GtkWidget *widget) -+{ -+ PangoFontMetrics *metrics; -+ PangoContext *context; -+ int ascent; -+ int descent; -+ int height; -+ -+ gtk_widget_ensure_style (widget); -+ context = gtk_widget_get_pango_context (widget); -+ metrics = pango_context_get_metrics (context, -+ widget->style->font_desc, -+ pango_context_get_language (context)); -+ -+ ascent = pango_font_metrics_get_ascent (metrics); -+ descent = pango_font_metrics_get_descent (metrics); -+ height = PANGO_PIXELS (ascent + descent); -+ pango_font_metrics_unref (metrics); -+ return height; -+} -+ -+static int -+get_icon_height_for_widget (GtkWidget *widget) -+{ -+ int font_height; -+ int height; -+ -+ font_height = get_font_height_for_widget (widget); -+ height = 3 * font_height; -+ if (height > MAX_ICON_SIZE) { -+ height = MAX_ICON_SIZE; -+ } -+ -+ g_debug ("GdmUserChooserWidget: font height %d; using icon size %d", font_height, height); -+ -+ return height; -+} -+ - static void - add_user_other (GdmUserChooserWidget *widget) - { -@@ -295,12 +334,14 @@ add_user (GdmUserChooserWidget *widget, - GdkPixbuf *pixbuf; - char *tooltip; - gboolean is_logged_in; -+ int size; - - if (!widget->priv->show_normal_users) { - return; - } - -- pixbuf = gdm_user_render_icon (user, ICON_SIZE); -+ size = get_icon_height_for_widget (widget); -+ pixbuf = gdm_user_render_icon (user, size); - if (pixbuf == NULL && widget->priv->stock_person_pixbuf != NULL) { - pixbuf = g_object_ref (widget->priv->stock_person_pixbuf); - } -@@ -537,10 +578,13 @@ static GdkPixbuf * - get_stock_person_pixbuf (GdmUserChooserWidget *widget) - { - GdkPixbuf *pixbuf; -+ int size; -+ -+ size = get_icon_height_for_widget (widget); - - pixbuf = gtk_icon_theme_load_icon (widget->priv->icon_theme, - DEFAULT_USER_ICON, -- ICON_SIZE, -+ size, - 0, - NULL); - -@@ -551,10 +595,13 @@ static GdkPixbuf * - get_logged_in_pixbuf (GdmUserChooserWidget *widget) - { - GdkPixbuf *pixbuf; -+ int size; -+ -+ size = get_icon_height_for_widget (widget); - - pixbuf = gtk_icon_theme_load_icon (widget->priv->icon_theme, - "emblem-default", -- ICON_SIZE / 3, -+ size / 3, - 0, - NULL); - - diff --git a/gdm-fix-locale-listing.patch b/gdm-fix-locale-listing.patch new file mode 100644 index 0000000..d1f8a95 --- /dev/null +++ b/gdm-fix-locale-listing.patch @@ -0,0 +1,22 @@ +Index: gdm-2.24.0/gui/simple-greeter/gdm-languages.c +=================================================================== +--- gdm-2.24.0.orig/gui/simple-greeter/gdm-languages.c ++++ gdm-2.24.0/gui/simple-greeter/gdm-languages.c +@@ -482,7 +482,7 @@ select_dirs (const struct dirent *dirent + struct stat st; + char *path; + +- path = g_build_filename (GNOMELOCALEDIR, dirent->d_name, NULL); ++ path = g_build_filename (LIBLOCALEDIR, dirent->d_name, NULL); + if (g_stat (path, &st) == 0) { + mode = st.st_mode; + } +@@ -502,7 +502,7 @@ collect_locales_from_directory (void) + int ndirents; + int cnt; + +- ndirents = scandir (GNOMELOCALEDIR, &dirents, select_dirs, alphasort); ++ ndirents = scandir (LIBLOCALEDIR, &dirents, select_dirs, alphasort); + + for (cnt = 0; cnt < ndirents; ++cnt) { + add_locale (dirents[cnt]->d_name); diff --git a/gdm-fix-pam-auditing.patch b/gdm-fix-pam-auditing.patch deleted file mode 100644 index 7f6b8f9..0000000 --- a/gdm-fix-pam-auditing.patch +++ /dev/null @@ -1,93 +0,0 @@ -Index: daemon/gdm-session-linux-auditor.c -=================================================================== ---- daemon/gdm-session-linux-auditor.c (revision 6589) -+++ daemon/gdm-session-linux-auditor.c (revision 6593) -@@ -45,8 +45,9 @@ static void gdm_session_linux_auditor_fi - G_DEFINE_TYPE (GdmSessionLinuxAuditor, gdm_session_linux_auditor, GDM_TYPE_SESSION_AUDITOR) - - static void --gdm_session_linux_auditor_report_login_attempt (GdmSessionAuditor *auditor, -- gboolean was_successful) -+log_user_message (GdmSessionAuditor *auditor, -+ gint type, -+ gint result) - { - GdmSessionLinuxAuditor *linux_auditor; - char buf[512]; -@@ -70,14 +71,14 @@ gdm_session_linux_auditor_report_login_a - - if (pw != NULL) { - g_snprintf (buf, sizeof (buf), "uid=%d", pw->pw_uid); -- audit_log_user_message (linux_auditor->priv->audit_fd, AUDIT_USER_LOGIN, -+ audit_log_user_message (linux_auditor->priv->audit_fd, type, - buf, hostname, NULL, display_device, -- was_successful != FALSE); -+ result); - } else { - g_snprintf (buf, sizeof (buf), "acct=%s", username); -- audit_log_user_message (linux_auditor->priv->audit_fd, AUDIT_USER_LOGIN, -+ audit_log_user_message (linux_auditor->priv->audit_fd, type, - buf, hostname, NULL, display_device, -- was_successful != FALSE); -+ result); - } - - g_free (username); -@@ -88,7 +89,7 @@ gdm_session_linux_auditor_report_login_a - static void - gdm_session_linux_auditor_report_login (GdmSessionAuditor *auditor) - { -- gdm_session_linux_auditor_report_login_attempt (auditor, TRUE); -+ log_user_message (auditor, AUDIT_USER_LOGIN, 1); - } - - static void -@@ -96,8 +97,13 @@ gdm_session_linux_auditor_report_login_f - int pam_error_code, - const char *pam_error_string) - { -+ log_user_message (auditor, AUDIT_USER_LOGIN, 0); -+} - -- gdm_session_linux_auditor_report_login_attempt (auditor, FALSE); -+static void -+gdm_session_linux_auditor_report_logout (GdmSessionAuditor *auditor) -+{ -+ log_user_message (auditor, AUDIT_USER_LOGOUT, 1); - } - - static void -@@ -113,6 +119,7 @@ gdm_session_linux_auditor_class_init (Gd - - auditor_class->report_login = gdm_session_linux_auditor_report_login; - auditor_class->report_login_failure = gdm_session_linux_auditor_report_login_failure; -+ auditor_class->report_logout = gdm_session_linux_auditor_report_logout; - - g_type_class_add_private (auditor_class, sizeof (GdmSessionLinuxAuditorPrivate)); - } -Index: daemon/gdm-session-worker.c -=================================================================== ---- daemon/gdm-session-worker.c (revision 6589) -+++ daemon/gdm-session-worker.c (revision 6593) -@@ -974,10 +974,6 @@ gdm_session_worker_uninitialize_pam (Gdm - if (worker->priv->pam_handle == NULL) - return; - -- if (worker->priv->state >= GDM_SESSION_WORKER_STATE_ACCREDITED) { -- pam_setcred (worker->priv->pam_handle, PAM_DELETE_CRED); -- } -- - if (worker->priv->state >= GDM_SESSION_WORKER_STATE_SESSION_OPENED) { - pam_close_session (worker->priv->pam_handle, 0); - gdm_session_auditor_report_logout (worker->priv->auditor); -@@ -987,6 +983,10 @@ gdm_session_worker_uninitialize_pam (Gdm - pam_strerror (worker->priv->pam_handle, status)); - } - -+ if (worker->priv->state >= GDM_SESSION_WORKER_STATE_ACCREDITED) { -+ pam_setcred (worker->priv->pam_handle, PAM_DELETE_CRED); -+ } -+ - pam_end (worker->priv->pam_handle, status); - worker->priv->pam_handle = NULL; - diff --git a/gdm-fix-xdmcp.patch b/gdm-fix-xdmcp.patch deleted file mode 100644 index 34fa537..0000000 --- a/gdm-fix-xdmcp.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -upr gdm-2.24.0-org/daemon/gdm-manager.c gdm-2.24.0/daemon/gdm-manager.c ---- gdm-2.24.0-org/daemon/gdm-manager.c 2008-07-29 11:40:42.000000000 +0900 -+++ gdm-2.24.0/daemon/gdm-manager.c 2008-11-19 02:11:55.000000000 +0900 -@@ -328,9 +328,7 @@ gdm_manager_constructor (GType - manager->priv->local_factory = gdm_local_display_factory_new (manager->priv->display_store); - - #ifdef HAVE_LIBXDMCP -- if (manager->priv->xdmcp_enabled) { -- manager->priv->xdmcp_factory = gdm_xdmcp_display_factory_new (manager->priv->display_store); -- } -+ manager->priv->xdmcp_factory = gdm_xdmcp_display_factory_new (manager->priv->display_store); - #endif - - return G_OBJECT (manager); -diff -upr gdm-2.24.0-org/daemon/gdm-xdmcp-display-factory.c gdm-2.24.0/daemon/gdm-xdmcp-display-factory.c ---- gdm-2.24.0-org/daemon/gdm-xdmcp-display-factory.c 2008-11-15 22:43:39.000000000 +0900 -+++ gdm-2.24.0/daemon/gdm-xdmcp-display-factory.c 2008-11-16 10:47:32.000000000 +0900 -@@ -2044,6 +2052,10 @@ gdm_xdmcp_display_create (GdmXdmcpDispla - store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory)); - gdm_display_store_add (store, display); - -+ if (! gdm_display_manage (display)) { -+ gdm_display_unmanage (display); -+ } -+ - factory->priv->num_pending_sessions++; - out: - diff --git a/gdm-hide-lonely-other.patch b/gdm-hide-lonely-other.patch new file mode 100644 index 0000000..b9f401d --- /dev/null +++ b/gdm-hide-lonely-other.patch @@ -0,0 +1,398 @@ +Index: gui/simple-greeter/gdm-user-chooser-widget.c +=================================================================== +--- gui/simple-greeter/gdm-user-chooser-widget.c (révision 6670) ++++ gui/simple-greeter/gdm-user-chooser-widget.c (copie de travail) +@@ -67,6 +67,8 @@ struct GdmUserChooserWidgetPrivate + guint show_user_auto : 1; + guint show_normal_users : 1; + ++ guint real_show_user_other : 1; ++ + guint load_idle_id; + }; + +@@ -83,6 +85,9 @@ static void gdm_user_chooser_widget_ + + G_DEFINE_TYPE (GdmUserChooserWidget, gdm_user_chooser_widget, GDM_TYPE_CHOOSER_WIDGET) + ++static void add_user_other (GdmUserChooserWidget *widget); ++static void remove_user_other (GdmUserChooserWidget *widget); ++ + static int + get_font_height_for_widget (GtkWidget *widget) + { +@@ -123,8 +128,31 @@ get_icon_height_for_widget (GtkWidget *w + } + + static void ++update_other_user_visibility (GdmUserChooserWidget *widget) ++{ ++ if (!widget->priv->show_user_other) { ++ if (widget->priv->real_show_user_other) { ++ remove_user_other (widget); ++ } ++ ++ return; ++ } ++ ++ if (gdm_chooser_widget_get_number_of_items (GDM_CHOOSER_WIDGET (widget)) == 1) { ++ /* we hide the Other user if it's the last one, and we show it ++ * if there's another user */ ++ if (widget->priv->real_show_user_other) { ++ remove_user_other (widget); ++ } else { ++ add_user_other (widget); ++ } ++ } ++} ++ ++static void + add_user_other (GdmUserChooserWidget *widget) + { ++ widget->priv->real_show_user_other = TRUE; + gdm_chooser_widget_add_item (GDM_CHOOSER_WIDGET (widget), + GDM_USER_CHOOSER_USER_OTHER, + NULL, +@@ -146,6 +174,7 @@ add_user_guest (GdmUserChooserWidget *wi + 0, + FALSE, + TRUE); ++ update_other_user_visibility (widget); + } + + static void +@@ -159,11 +188,13 @@ add_user_auto (GdmUserChooserWidget *wid + 0, + FALSE, + TRUE); ++ update_other_user_visibility (widget); + } + + static void + remove_user_other (GdmUserChooserWidget *widget) + { ++ widget->priv->real_show_user_other = FALSE; + gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget), + GDM_USER_CHOOSER_USER_OTHER); + } +@@ -173,6 +204,7 @@ remove_user_guest (GdmUserChooserWidget + { + gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget), + GDM_USER_CHOOSER_USER_GUEST); ++ update_other_user_visibility (widget); + } + + static void +@@ -180,6 +212,7 @@ remove_user_auto (GdmUserChooserWidget * + { + gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget), + GDM_USER_CHOOSER_USER_AUTO); ++ update_other_user_visibility (widget); + } + + void +@@ -190,11 +223,7 @@ gdm_user_chooser_widget_set_show_user_ot + + if (widget->priv->show_user_other != show_user) { + widget->priv->show_user_other = show_user; +- if (show_user) { +- add_user_other (widget); +- } else { +- remove_user_other (widget); +- } ++ update_other_user_visibility (widget); + } + } + +@@ -369,6 +398,8 @@ add_user (GdmUserChooserWidget *widget, + if (pixbuf != NULL) { + g_object_unref (pixbuf); + } ++ ++ update_other_user_visibility (widget); + } + + static void +@@ -400,6 +431,8 @@ on_user_removed (GdmUserManager *m + + gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget), + user_name); ++ ++ update_other_user_visibility (widget); + } + + static void +@@ -444,8 +477,6 @@ on_users_loaded (GdmUserManager *m + { + GSList *users; + +- widget->priv->loaded = TRUE; +- + g_debug ("GdmUserChooserWidget: Users loaded"); + + users = gdm_user_manager_list_users (manager); +@@ -454,7 +485,7 @@ on_users_loaded (GdmUserManager *m + users = g_slist_delete_link (users, users); + } + +- gtk_widget_grab_focus (GTK_WIDGET (widget)); ++ widget->priv->loaded = TRUE; + + gdm_chooser_widget_loaded (GDM_CHOOSER_WIDGET (widget)); + } +@@ -505,6 +536,7 @@ gdm_user_chooser_widget_constructor (GTy + n_construct_properties, + construct_properties)); + ++ widget->priv->real_show_user_other = FALSE; + widget->priv->show_normal_users = !is_user_list_disabled (widget); + + widget->priv->load_idle_id = g_idle_add ((GSourceFunc)load_users, widget); +Index: gui/simple-greeter/gdm-greeter-login-window.c +=================================================================== +--- gui/simple-greeter/gdm-greeter-login-window.c (révision 6670) ++++ gui/simple-greeter/gdm-greeter-login-window.c (copie de travail) +@@ -114,6 +114,7 @@ struct GdmGreeterLoginWindowPrivate + GtkWidget *auth_banner_label; + guint display_is_local : 1; + guint is_interactive : 1; ++ guint user_chooser_loaded : 1; + GConfClient *client; + + gboolean banner_message_enabled; +@@ -528,9 +529,13 @@ switch_mode (GdmGreeterLoginWindow *logi + GtkWidget *box; + gboolean show_restart_buttons; + gboolean show_suspend_button; ++ gboolean only_other_user; ++ gboolean show_buttons; + +- show_restart_buttons = get_show_restart_buttons (login_window); +- show_suspend_button = can_suspend (login_window); ++ only_other_user = (gdm_chooser_widget_get_number_of_items (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser)) == 0); ++ show_buttons = (number == MODE_SELECTION) || only_other_user; ++ show_restart_buttons = show_buttons && get_show_restart_buttons (login_window); ++ show_suspend_button = show_buttons && can_suspend (login_window); + + /* we want to run this even if we're supposed to + be in the mode already so that we reset everything +@@ -539,7 +544,14 @@ switch_mode (GdmGreeterLoginWindow *logi + + default_name = NULL; + +- remove_sensitize_power_buttons_timeout (login_window); ++ show_widget (login_window, "shutdown-button", ++ login_window->priv->display_is_local && show_restart_buttons); ++ show_widget (login_window, "restart-button", ++ login_window->priv->display_is_local && show_restart_buttons); ++ show_widget (login_window, "suspend-button", ++ login_window->priv->display_is_local && show_restart_buttons && show_suspend_button); ++ show_widget (login_window, "disconnect-button", ++ !login_window->priv->display_is_local && show_buttons); + + switch (number) { + case MODE_SELECTION: +@@ -547,15 +559,6 @@ switch_mode (GdmGreeterLoginWindow *logi + + show_widget (login_window, "cancel-button", FALSE); + +- show_widget (login_window, "shutdown-button", +- login_window->priv->display_is_local && show_restart_buttons); +- show_widget (login_window, "restart-button", +- login_window->priv->display_is_local && show_restart_buttons); +- show_widget (login_window, "suspend-button", +- login_window->priv->display_is_local && show_restart_buttons && show_suspend_button); +- show_widget (login_window, "disconnect-button", +- ! login_window->priv->display_is_local); +- + show_widget (login_window, "auth-input-box", FALSE); + + add_sensitize_power_buttons_timeout (login_window); +@@ -568,10 +571,12 @@ switch_mode (GdmGreeterLoginWindow *logi + break; + case MODE_AUTHENTICATION: + show_widget (login_window, "cancel-button", TRUE); +- show_widget (login_window, "shutdown-button", FALSE); +- show_widget (login_window, "restart-button", FALSE); +- show_widget (login_window, "suspend-button", FALSE); +- show_widget (login_window, "disconnect-button", FALSE); ++ ++ sensitize_widget (login_window, "shutdown-button", TRUE); ++ sensitize_widget (login_window, "restart-button", TRUE); ++ sensitize_widget (login_window, "suspend-button", TRUE); ++ sensitize_widget (login_window, "disconnect-button", TRUE); ++ + default_name = "log-in-button"; + break; + default: +@@ -665,10 +670,40 @@ delete_entry_text (GtkWidget *entry) + } + + static void ++select_user (GdmGreeterLoginWindow *login_window, ++ const char *user_name) ++{ ++ g_signal_emit (G_OBJECT (login_window), signals[USER_SELECTED], ++ 0, user_name); ++ ++ if (strcmp (user_name, GDM_USER_CHOOSER_USER_OTHER) == 0) { ++ g_signal_emit (login_window, signals[BEGIN_VERIFICATION], 0); ++ } else if (strcmp (user_name, GDM_USER_CHOOSER_USER_GUEST) == 0) { ++ /* FIXME: handle guest account stuff */ ++ } else if (strcmp (user_name, GDM_USER_CHOOSER_USER_AUTO) == 0) { ++ g_signal_emit (login_window, signals[BEGIN_AUTO_LOGIN], 0, ++ login_window->priv->timed_login_username); ++ ++ login_window->priv->timed_login_enabled = TRUE; ++ restart_timed_login_timeout (login_window); ++ ++ /* just wait for the user to select language and stuff */ ++ set_log_in_button_mode (login_window, LOGIN_BUTTON_TIMED_LOGIN); ++ set_message (login_window, _("Select language and click Log In")); ++ } else { ++ g_signal_emit (login_window, signals[BEGIN_VERIFICATION_FOR_USER], 0, user_name); ++ } ++ ++ switch_mode (login_window, MODE_AUTHENTICATION); ++} ++ ++ ++static void + reset_dialog (GdmGreeterLoginWindow *login_window) + { + GtkWidget *entry; + GtkWidget *label; ++ gboolean use_selection; + + g_debug ("GdmGreeterLoginWindow: Resetting dialog"); + set_busy (login_window); +@@ -703,12 +738,21 @@ reset_dialog (GdmGreeterLoginWindow *log + label = glade_xml_get_widget (GDM_GREETER_LOGIN_WINDOW (login_window)->priv->xml, "auth-prompt-label"); + gtk_label_set_text (GTK_LABEL (label), ""); + +- switch_mode (login_window, MODE_SELECTION); ++ use_selection = !login_window->priv->user_chooser_loaded || (gdm_chooser_widget_get_number_of_items (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser)) >= 1); ++ ++ if (use_selection) { ++ switch_mode (login_window, MODE_SELECTION); ++ } else { ++ select_user (login_window, GDM_USER_CHOOSER_USER_OTHER); ++ } + + set_sensitive (login_window, TRUE); + set_ready (login_window); + set_focus (GDM_GREETER_LOGIN_WINDOW (login_window)); +- gdm_chooser_widget_propagate_pending_key_events (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser)); ++ ++ if (use_selection) { ++ gdm_chooser_widget_propagate_pending_key_events (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser)); ++ } + } + + static void +@@ -1323,7 +1367,19 @@ static void + on_users_loaded (GdmUserChooserWidget *user_chooser, + GdmGreeterLoginWindow *login_window) + { +- gdm_chooser_widget_activate_if_one_item (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser)); ++ int number_users; ++ ++ login_window->priv->user_chooser_loaded = TRUE; ++ ++ number_users = gdm_chooser_widget_get_number_of_items (GDM_CHOOSER_WIDGET (user_chooser)); ++ ++ if (number_users == 1) { ++ gdm_chooser_widget_activate_if_one_item (GDM_CHOOSER_WIDGET (user_chooser)); ++ } else if (number_users == 0) { ++ select_user (login_window, GDM_USER_CHOOSER_USER_OTHER); ++ } ++ ++ set_focus (GDM_GREETER_LOGIN_WINDOW (login_window)); + } + + static void +@@ -1339,28 +1395,7 @@ on_user_chosen (GdmUserChooserWidget *u + return; + } + +- g_signal_emit (G_OBJECT (login_window), signals[USER_SELECTED], +- 0, user_name); +- +- if (strcmp (user_name, GDM_USER_CHOOSER_USER_OTHER) == 0) { +- g_signal_emit (login_window, signals[BEGIN_VERIFICATION], 0); +- } else if (strcmp (user_name, GDM_USER_CHOOSER_USER_GUEST) == 0) { +- /* FIXME: handle guest account stuff */ +- } else if (strcmp (user_name, GDM_USER_CHOOSER_USER_AUTO) == 0) { +- g_signal_emit (login_window, signals[BEGIN_AUTO_LOGIN], 0, +- login_window->priv->timed_login_username); +- +- login_window->priv->timed_login_enabled = TRUE; +- restart_timed_login_timeout (login_window); +- +- /* just wait for the user to select language and stuff */ +- set_log_in_button_mode (login_window, LOGIN_BUTTON_TIMED_LOGIN); +- set_message (login_window, _("Select language and click Log In")); +- } else { +- g_signal_emit (login_window, signals[BEGIN_VERIFICATION_FOR_USER], 0, user_name); +- } +- +- switch_mode (login_window, MODE_AUTHENTICATION); ++ select_user (login_window, user_name); + + g_free (user_name); + } +@@ -1914,6 +1949,7 @@ gdm_greeter_login_window_init (GdmGreete + + login_window->priv = GDM_GREETER_LOGIN_WINDOW_GET_PRIVATE (login_window); + ++ login_window->priv->user_chooser_loaded = FALSE; + login_window->priv->timed_login_enabled = FALSE; + + login_window->priv->dialog_mode = MODE_SELECTION; +Index: gui/simple-greeter/gdm-chooser-widget.c +=================================================================== +--- gui/simple-greeter/gdm-chooser-widget.c (révision 6670) ++++ gui/simple-greeter/gdm-chooser-widget.c (copie de travail) +@@ -593,6 +593,16 @@ update_separator_visibility (GdmChooserW + } + + static void ++update_chooser_visibility (GdmChooserWidget *widget) ++{ ++ if (gdm_chooser_widget_get_number_of_items (widget) > 0) { ++ gtk_widget_show (widget->priv->scrollable_widget); ++ } else { ++ gtk_widget_hide (widget->priv->scrollable_widget); ++ } ++} ++ ++static void + set_inactive_items_visible (GdmChooserWidget *widget, + gboolean should_show) + { +@@ -1771,7 +1781,6 @@ gdm_chooser_widget_init (GdmChooserWidge + add_frame (widget); + + widget->priv->scrollable_widget = gdm_scrollable_widget_new (); +- gtk_widget_show (widget->priv->scrollable_widget); + gtk_container_add (GTK_CONTAINER (widget->priv->frame_alignment), + widget->priv->scrollable_widget); + +@@ -2055,6 +2064,8 @@ gdm_chooser_widget_add_item (GdmChooserW + -1); + + move_cursor_to_top (widget); ++ ++ update_chooser_visibility (widget); + } + + void +@@ -2103,6 +2114,8 @@ gdm_chooser_widget_remove_item (GdmChoos + gtk_list_store_remove (widget->priv->list_store, &iter); + + move_cursor_to_top (widget); ++ ++ update_chooser_visibility (widget); + } + + gboolean diff --git a/gdm-login-window-size.patch b/gdm-login-window-size.patch new file mode 100644 index 0000000..88f3d11 --- /dev/null +++ b/gdm-login-window-size.patch @@ -0,0 +1,63 @@ +--- trunk/gui/simple-greeter/gdm-greeter-login-window.c 2008/11/18 22:18:29 6599 ++++ trunk/gui/simple-greeter/gdm-greeter-login-window.c 2009/01/14 22:59:37 6662 +@@ -543,7 +543,6 @@ + + switch (number) { + case MODE_SELECTION: +- gtk_widget_set_size_request (GTK_WIDGET (login_window), -1, -1); + set_log_in_button_mode (login_window, LOGIN_BUTTON_HIDDEN); + + show_widget (login_window, "cancel-button", FALSE); +@@ -568,9 +567,6 @@ + default_name = NULL; + break; + case MODE_AUTHENTICATION: +- gtk_widget_set_size_request (GTK_WIDGET (login_window), +- GTK_WIDGET (login_window)->allocation.width, +- -1); + show_widget (login_window, "cancel-button", TRUE); + show_widget (login_window, "shutdown-button", FALSE); + show_widget (login_window, "restart-button", FALSE); +@@ -1656,16 +1652,22 @@ + gdm_greeter_login_window_size_request (GtkWidget *widget, + GtkRequisition *requisition) + { +- int screen_w; +- int screen_h; +- GtkRequisition child_requisition; ++ int monitor; ++ GdkScreen *screen; ++ GtkRequisition child_requisition; ++ GdkRectangle area; + + if (GTK_WIDGET_CLASS (gdm_greeter_login_window_parent_class)->size_request) { + GTK_WIDGET_CLASS (gdm_greeter_login_window_parent_class)->size_request (widget, requisition); + } + +- screen_w = gdk_screen_get_width (gtk_widget_get_screen (widget)); +- screen_h = gdk_screen_get_height (gtk_widget_get_screen (widget)); ++ if (!GTK_WIDGET_REALIZED (widget)) { ++ return; ++ } ++ ++ screen = gtk_widget_get_screen (widget); ++ monitor = gdk_screen_get_monitor_at_window (screen, widget->window); ++ gdk_screen_get_monitor_geometry (screen, monitor, &area); + + gtk_widget_get_child_requisition (GTK_BIN (widget)->child, &child_requisition); + *requisition = child_requisition; +@@ -1676,8 +1678,12 @@ + /* Make width be at least 33% screen width + * and height be at most 80% of screen height + */ +- requisition->width = MAX (requisition->width, .33 * screen_w); +- requisition->height = MIN (requisition->height, .80 * screen_h); ++ requisition->width = MAX (requisition->width, .33 * area.width); ++ requisition->height = MIN (requisition->height, .80 * area.height); ++ ++ /* Don't ever shrink window width ++ */ ++ requisition->width = MAX (requisition->width, widget->allocation.width); + } + + static void diff --git a/gdm-propagate-env-to-jobs.patch b/gdm-propagate-env-to-jobs.patch new file mode 100644 index 0000000..524eeb3 --- /dev/null +++ b/gdm-propagate-env-to-jobs.patch @@ -0,0 +1,49 @@ +Index: gdm-2.24.0/daemon/gdm-session-worker-job.c +=================================================================== +--- gdm-2.24.0.orig/daemon/gdm-session-worker-job.c ++++ gdm-2.24.0/daemon/gdm-session-worker-job.c +@@ -119,10 +119,36 @@ listify_hash (const char *key, + GPtrArray *env) + { + char *str; ++ ++ if (value == NULL) ++ value = ""; ++ + str = g_strdup_printf ("%s=%s", key, value); + g_ptr_array_add (env, str); + } + ++static void ++copy_environment_to_hash (GHashTable *hash) ++{ ++ gchar **env_strv; ++ gint i; ++ ++ env_strv = g_listenv (); ++ ++ for (i = 0; env_strv [i]; i++) { ++ gchar *key = env_strv [i]; ++ const gchar *value; ++ ++ value = g_getenv (key); ++ if (!value) ++ continue; ++ ++ g_hash_table_insert (hash, g_strdup (key), g_strdup (value)); ++ } ++ ++ g_strfreev (env_strv); ++} ++ + static GPtrArray * + get_job_environment (GdmSessionWorkerJob *job) + { +@@ -133,6 +159,7 @@ get_job_environment (GdmSessionWorkerJob + + /* create a hash table of current environment, then update keys has necessary */ + hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); ++ copy_environment_to_hash (hash); + + g_hash_table_insert (hash, g_strdup ("GDM_SESSION_DBUS_ADDRESS"), g_strdup (job->priv->server_address)); + diff --git a/gdm-selecting-desktop-environment.patch b/gdm-selecting-desktop-environment.patch new file mode 100644 index 0000000..ede8749 --- /dev/null +++ b/gdm-selecting-desktop-environment.patch @@ -0,0 +1,36 @@ +diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c +index c1ac7cf..a5de412 100644 +--- a/daemon/gdm-session-worker.c ++++ b/daemon/gdm-session-worker.c +@@ -149,6 +149,9 @@ typedef int (* GdmSessionWorkerPamNewMessagesFunc) (int, + const struct pam_message **, + struct pam_response **, + gpointer); ++static void on_saved_session_name_read (GdmSessionWorker *worker); ++static void on_saved_language_name_read (GdmSessionWorker *worker); ++static void on_saved_layout_name_read (GdmSessionWorker *worker); + + G_DEFINE_TYPE (GdmSessionWorker, gdm_session_worker, G_TYPE_OBJECT) + +@@ -617,6 +620,21 @@ attempt_to_load_user_settings (GdmSessionWorker *worker, + passwd_entry->pw_dir, + NULL); + ++ /* These singal handlers should be disconnected after the loading, ++ * so that gdm_session_settings_set_* APIs don't cause the emitting ++ * of Saved*NameRead D-Bus signals any more. ++ */ ++ g_signal_handlers_disconnect_by_func (worker->priv->user_settings, ++ G_CALLBACK (on_saved_session_name_read), ++ worker); ++ ++ g_signal_handlers_disconnect_by_func (worker->priv->user_settings, ++ G_CALLBACK (on_saved_language_name_read), ++ worker); ++ ++ g_signal_handlers_disconnect_by_func (worker->priv->user_settings, ++ G_CALLBACK (on_saved_layout_name_read), ++ worker); + seteuid (old_uid); + setegid (old_gid); + } diff --git a/gdm-selinux.patch b/gdm-selinux.patch index efe5fc3..0aa2c2b 100644 --- a/gdm-selinux.patch +++ b/gdm-selinux.patch @@ -1,6 +1,6 @@ ---- configure -+++ configure -@@ -32703,7 +32703,7 @@ +--- configure.org 2008-12-29 09:24:05.000000000 +1100 ++++ configure 2008-12-29 09:24:19.000000000 +1100 +@@ -35527,7 +35527,7 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_SELINUX 1 _ACEOF @@ -8,15 +8,15 @@ + EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux" fi - # ---- configure.ac -+++ configure.ac -@@ -820,7 +820,7 @@ + +--- configure.ac.org 2008-12-29 09:25:17.000000000 +1100 ++++ configure.ac 2008-12-29 09:25:22.000000000 +1100 +@@ -873,7 +873,7 @@ if test "x$with_selinux" = "xyes" ; then AC_CHECK_LIB(selinux,setexeccon,/bin/true) AC_CHECK_LIB(selinux,is_selinux_enabled,/bin/true) - AC_DEFINE(HAVE_SELINUX) + AC_DEFINE(HAVE_SELINUX, 1, [Define if have selinux]) - EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux -lattr" + EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux" fi - # + dnl --------------------------------------------------------------------------- diff --git a/gdm-session-worker-check-states.patch b/gdm-session-worker-check-states.patch new file mode 100644 index 0000000..95f8240 --- /dev/null +++ b/gdm-session-worker-check-states.patch @@ -0,0 +1,28 @@ +Index: gdm-2.24.0/daemon/gdm-session-worker.c +=================================================================== +--- gdm-2.24.0.orig/daemon/gdm-session-worker.c ++++ gdm-2.24.0/daemon/gdm-session-worker.c +@@ -2395,7 +2395,10 @@ on_setup (GdmSessionWorker *worker, + const char *hostname; + dbus_bool_t res; + +- /* FIXME: return error if not in NONE state */ ++ if (worker->priv->state != GDM_SESSION_WORKER_STATE_NONE) { ++ g_debug ("GdmSessionWorker: ignoring spurious setup while in state %s", get_state_name (worker->priv->state)); ++ return; ++ } + + dbus_error_init (&error); + res = dbus_message_get_args (message, +@@ -2435,7 +2438,10 @@ on_setup_for_user (GdmSessionWorker *wor + const char *username; + dbus_bool_t res; + +- /* FIXME: return error if not in NONE state */ ++ if (worker->priv->state != GDM_SESSION_WORKER_STATE_NONE) { ++ g_debug ("GdmSessionWorker: ignoring spurious setup for user while in state %s", get_state_name (worker->priv->state)); ++ return; ++ } + + dbus_error_init (&error); + res = dbus_message_get_args (message, diff --git a/gdm-suse-xsession.patch b/gdm-suse-xsession.patch index 27785ee..175a172 100644 --- a/gdm-suse-xsession.patch +++ b/gdm-suse-xsession.patch @@ -16,16 +16,14 @@ Index: gdm-2.24.0/data/PostSession.in =================================================================== --- gdm-2.24.0.orig/data/PostSession.in +++ gdm-2.24.0/data/PostSession.in -@@ -1,5 +1,9 @@ +@@ -1,3 +1,7 @@ #!/bin/sh +if test -x /etc/X11/xdm/Xreset; then -+ exec /etc/X11/xdm/Xreset ++ exec /etc/X11/xdm/Xreset +fi + - PATH="@X_PATH@:$PATH:/bin:/usr/bin" - OLD_IFS=$IFS - + exit 0 Index: gdm-2.24.0/data/Xsession.in =================================================================== --- gdm-2.24.0.orig/data/Xsession.in diff --git a/gdm.changes b/gdm.changes index 03c6a9d..1601743 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,85 @@ +------------------------------------------------------------------- +Sat Jan 31 18:49:34 CET 2009 - vuntz@novell.com + +- Add gdm-fix-locale-listing.patch: correctly list all locales so + that they appear in the language chooser. Fix bnc#446446. + +------------------------------------------------------------------- +Sat Jan 31 15:08:24 CET 2009 - vuntz@novell.com + +- Add gdm-propagate-env-to-jobs.patch: forward the environment to + gdm-session-worker to have translated PAM messages. Fix + bnc#440860. + +------------------------------------------------------------------- +Sat Jan 31 14:52:14 CET 2009 - vuntz@novell.com + +- Drop unneeded BuildRequires: docbook_4 +- Remove check for old versions of openSUSE +- Don't pass non-existing --enable-secureremote flag to configure + +------------------------------------------------------------------- +Fri Jan 30 03:39:57 CET 2009 - vuntz@novell.com + +- Add gdm-session-worker-check-states.patch to fix bnc#470714. We + were handling late a setup signal, while we were already doing + something else. + +------------------------------------------------------------------- +Thu Jan 29 23:26:08 CET 2009 - vuntz@novell.com + +- Add gdm-accreditation-failed-log.patch to improve logging in the + case of accreditation failure. + +------------------------------------------------------------------- +Wed Jan 28 01:58:28 CET 2009 - vuntz@novell.com + +- Add gdm-login-window-size.patch to fix the login window size: the + width could be too small in various cases (eg, some pam + messages). Also needed for gdm-hide-lonely-other.patch. +- Add gdm-hide-lonely-other.patch to hide the Other item in the + user list in relevant cases, especially when we disable the user + list. Fix bnc#439894. + +------------------------------------------------------------------- +Tue Jan 27 02:17:53 CET 2009 - vuntz@novell.com + +- Manual merge with GNOME:Factory:Next. +- Drop gdm-fix-xdmcp.patch: fixed another way upstream. +- Add gdm-bnc468374-dbus-send-dest.patch to add send_destination in + the dbus policy. Fix bnc#468374. + +------------------------------------------------------------------- +Thu Jan 22 17:25:27 EST 2009 - mxwu@novell.com + +- Add gdm-selecting-desktop-environment.patch to select right + desktop environment (bnc#460691) + +------------------------------------------------------------------- +Mon Jan 12 15:25:27 EST 2009 - mauro@suse.de + +- Translations update. + +------------------------------------------------------------------- +Mon Dec 29 08:38:31 EST 2008 - mboman@suse.de + +- Update to version 2.25.2: + + Fix focus issues in applet + + Use text view instead of entry + + Add support for a real automatic login + + Redesign user switch applet + + Make XDMCP work again + + Add a bevel around the dialog + + Remove capslock warning label +- Remove gdm-2.23.92-another-locale-fixup.patch. Fixed upstream +- Remove gdm-2.23.92-filter-dupes-from-lang-list.patch. Fixed upstream +- Remove gdm-2.23.92-fix-crash.patch. Fixed upstream. +- Remove gdm-fix-icon-scale.patch. Fixed upstream +- Remove gdm-autologin.patch. Fixed upstream +- Remove gdm-fix-pam-auditing.patch. Fixed upstream +- Comment out gdm-greeter-greater-ui.patch. Patch does not apply + due to massive changes in glade file. Needs to be redone completly. + ------------------------------------------------------------------- Thu Dec 4 23:47:59 CST 2008 - hpj@novell.com diff --git a/gdm.spec b/gdm.spec index fdc0d1f..0def724 100644 --- a/gdm.spec +++ b/gdm.spec @@ -1,7 +1,7 @@ # -# spec file for package gdm (Version 2.24.0) +# spec file for package gdm (Version 2.25.2) # -# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,7 +21,6 @@ Name: gdm BuildRequires: PolicyKit-gnome-devel BuildRequires: check-devel -BuildRequires: docbook_4 BuildRequires: fdupes BuildRequires: gconf2-devel BuildRequires: gnome-common @@ -31,15 +30,9 @@ BuildRequires: gnome-patch-translation BuildRequires: intltool BuildRequires: iso-codes-devel BuildRequires: libglade2-devel -BuildRequires: libgnomeprintui-devel -BuildRequires: libgnomeui-devel -BuildRequires: libgnutls-devel -BuildRequires: librsvg-devel BuildRequires: libselinux-devel -BuildRequires: libwnck-devel BuildRequires: libxklavier-devel BuildRequires: pam-devel -BuildRequires: perl-XML-Parser BuildRequires: pwdutils BuildRequires: scrollkeeper BuildRequires: tcpd-devel @@ -50,14 +43,11 @@ BuildRequires: zenity PreReq: /usr/sbin/groupadd PreReq: /usr/sbin/useradd PreReq: /usr/sbin/usermod -%if %suse_version < 1010 -PreReq: %fillup_prereq -%endif PreReq: %insserv_prereq License: GPL v2 or later Group: System/GUI/GNOME -Version: 2.24.0 -Release: 15 +Version: 2.25.2 +Release: 1 Summary: The GNOME 2.x Display Manager Source: %{name}-%{version}.tar.bz2 Source1: gdm.pamd @@ -75,29 +65,31 @@ Patch6: gdm-desktop-session-env-pam.patch # PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts Patch7: gdm-suse-xsession.patch Patch8: gdm-domain-logon.patch -# PATCH-FIX-UPSTREAM gdm-2.23.92-another-locale-fixup.patch jpr@novell.com -- From upstream/Fedora, canonicalize LANG variable -Patch9: gdm-2.23.92-another-locale-fixup.patch -# PATCH-FIX-UPSTREAM gdm-2.23.92-filter-dupes-from-lang-list.patch jpr@novell.com -- From upstream/Fedora, don't show the same language multiple times -Patch10: gdm-2.23.92-filter-dupes-from-lang-list.patch -# PATCH-FIX-UPSTREAM gdm-2.23.92-fix-crash.patch jpr@novell.com -- From upstream/Fedora, don't crash in the option widgets -Patch11: gdm-2.23.92-fix-crash.patch -# PATCH-FIX-UPSTREAM gdm-fix-icon-scale.patch vuntz@novell.com -- From upstream/Fedora: don't have a huge size for icons in the greeter -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 -# PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch) +# PATCH-NEEDS-REBASE gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch) (was PATCH-FIX-UPSTREAM) Patch15: gdm-greeter-greater-ui.patch -# PATCH-FIX-UPSTREAM gdm-fix-xdmcp.patch bnc441396 bgo561396 hpj@novell.com -- Make XDMCP work, patch from upstream bugzilla. -Patch16: gdm-fix-xdmcp.patch -# PATCH-FIX-UPSTREAM gdm-fix-pam-auditing.patch bnc436852 bgo557794 hpj@novell.com -- Make PAM auditing work on logout. -Patch17: gdm-fix-pam-auditing.patch # PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations. Patch18: gdm-always-reflect-keyboard-layout.patch # PATCH-FIX-OPENSUSE gdm-save-panel-space-on-low-resolutions.patch bnc449815 hpj@novell.com -- Hide clock and/or selector labels on low resolutions. Patch19: gdm-save-panel-space-on-low-resolutions.patch +# PATCH-FIX-UPSTREAM gdm-selecting-desktop-environment.patch bnc460591 mxwu@novell.com -- Selecting the right desktop environment +Patch20: gdm-selecting-desktop-environment.patch +# PATCH-FIX-UPSTREAM gdm-login-window-size.patch vuntz@novell.com -- Patch taken from upstream svn to fix the login window size in some cases. Needed for gdm-hide-lonely-other.patch +Patch21: gdm-login-window-size.patch +# PATCH-FIX-UPSTREAM gdm-hide-lonely-other.patch bnc439894 bgo568323 vuntz@novell.com -- Hide Other in the user list when there's no user list +Patch22: gdm-hide-lonely-other.patch +# PATCH-FIX-UPSTREAM gdm-accreditation-failed-log.patch vuntz@novell.com -- Better logging for accreditation failed +Patch23: gdm-accreditation-failed-log.patch +# PATCH-FIX-UPSTREAM gdm-session-worker-check-states.patch bnc470714 vuntz@novell.com -- Make sure we have consistent states in gdm-session-worker +Patch24: gdm-session-worker-check-states.patch +# PATCH-FIX-UPSTREAM gdm-propagate-env-to-jobs.patch bnc440860 bgo568590 vuntz@novell.com -- Forward the environment to gdm-session-worker to have translated PAM messages +Patch25: gdm-propagate-env-to-jobs.patch +# PATCH-FIX-UPSTREAM gdm-fix-locale-listing.patch bnc446446 vuntz@novell.com -- Fix locale listing so that all locales are listed in the language chooser +Patch26: gdm-fix-locale-listing.patch Patch28: gdm-X_SERVER.patch +# PATCH-FIX-UPSTREAM gdm-bnc468374-dbus-send-dest.patch bnc468374 bgo564767 vuntz@novell.com -- Patch taken from upstream to fix the potential dbus security issue with send_interface +Patch29: gdm-bnc468374-dbus-send-dest.patch # PATCH-SUSE: enable SELinux Patch60: gdm-selinux.patch Url: http://www.gnome.org/ @@ -167,18 +159,19 @@ Authors: %patch6 -p1 %patch7 -p1 %patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 %patch13 -p1 -%patch14 -%patch15 -p1 -%patch16 -p1 -%patch17 -p0 +#%patch15 -p1 %patch18 -p1 %patch19 -p1 +%patch20 -p1 +%patch21 -p1 +%patch22 -p0 +%patch23 -p1 +%patch24 -p1 +%patch25 -p1 +%patch26 -p1 %patch28 +%patch29 -p1 %patch60 %build @@ -191,8 +184,7 @@ export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" --with-at-spi-registryd-directory=%{_prefix}/lib/at-spi \ --with-selinux \ --enable-ipv6\ - --disable-scrollkeeper\ - --enable-secureremote + --disable-scrollkeeper %__make %{?jobs:-j%jobs} %install @@ -286,7 +278,59 @@ fi %files lang -f %{name}.lang %changelog -* Thu Dec 04 2008 hpj@novell.com +* Sat Jan 31 2009 vuntz@novell.com +- Add gdm-fix-locale-listing.patch: correctly list all locales so + that they appear in the language chooser. Fix bnc#446446. +* Sat Jan 31 2009 vuntz@novell.com +- Add gdm-propagate-env-to-jobs.patch: forward the environment to + gdm-session-worker to have translated PAM messages. Fix + bnc#440860. +* Sat Jan 31 2009 vuntz@novell.com +- Drop unneeded BuildRequires: docbook_4 +- Remove check for old versions of openSUSE +- Don't pass non-existing --enable-secureremote flag to configure +* Fri Jan 30 2009 vuntz@novell.com +- Add gdm-session-worker-check-states.patch to fix bnc#470714. We + were handling late a setup signal, while we were already doing + something else. +* Thu Jan 29 2009 vuntz@novell.com +- Add gdm-accreditation-failed-log.patch to improve logging in the + case of accreditation failure. +* Wed Jan 28 2009 vuntz@novell.com +- Add gdm-login-window-size.patch to fix the login window size: the + width could be too small in various cases (eg, some pam + messages). Also needed for gdm-hide-lonely-other.patch. +- Add gdm-hide-lonely-other.patch to hide the Other item in the + user list in relevant cases, especially when we disable the user + list. Fix bnc#439894. +* Tue Jan 27 2009 vuntz@novell.com +- Manual merge with GNOME:Factory:Next. +- Drop gdm-fix-xdmcp.patch: fixed another way upstream. +- Add gdm-bnc468374-dbus-send-dest.patch to add send_destination in + the dbus policy. Fix bnc#468374. +* Thu Jan 22 2009 mxwu@novell.com +- Add gdm-selecting-desktop-environment.patch to select right + desktop environment (bnc#460691) +* Mon Jan 12 2009 mauro@suse.de +- Translations update. +* Mon Dec 29 2008 mboman@suse.de +- Update to version 2.25.2: + + Fix focus issues in applet + + Use text view instead of entry + + Add support for a real automatic login + + Redesign user switch applet + + Make XDMCP work again + + Add a bevel around the dialog + + Remove capslock warning label +- Remove gdm-2.23.92-another-locale-fixup.patch. Fixed upstream +- Remove gdm-2.23.92-filter-dupes-from-lang-list.patch. Fixed upstream +- Remove gdm-2.23.92-fix-crash.patch. Fixed upstream. +- Remove gdm-fix-icon-scale.patch. Fixed upstream +- Remove gdm-autologin.patch. Fixed upstream +- Remove gdm-fix-pam-auditing.patch. Fixed upstream +- Comment out gdm-greeter-greater-ui.patch. Patch does not apply + due to massive changes in glade file. Needs to be redone completly. +* Fri Dec 05 2008 hpj@novell.com - Update gdm-domain-logon.patch to omit undesirable domains (bnc#450143). * Wed Dec 03 2008 hpj@novell.com @@ -294,14 +338,14 @@ fi gdm-vt-allocation-hack.patch. The new patch doesn't hardcode gdm to VT7, but instead scans for a free VT starting with VT7 (bnc#434598). -* Sun Nov 30 2008 hpj@novell.com +* Mon Dec 01 2008 hpj@novell.com - Update gdm-sysconfig-settings.patch to translate the name of the configured system keymap into something libxklavier can understand (bnc#446958). -* Sun Nov 30 2008 hpj@novell.com +* Mon Dec 01 2008 hpj@novell.com - Update gdm-domain-logon.patch to make domain prefix logon work when entering user names manually (bnc#450146). -* Sat Nov 29 2008 hpj@novell.com +* Sun Nov 30 2008 hpj@novell.com - Add gdm-save-panel-space-on-low-resolutions.patch (bnc#449815). * Fri Nov 21 2008 hpj@novell.com - Add gdm-always-reflect-keyboard-layout.patch (bnc#438159). @@ -354,7 +398,7 @@ fi family to FamilyWild. * Mon Oct 06 2008 sbrabec@suse.cz - Conflict with other branding providers (FATE#304881). -* Thu Oct 02 2008 mboman@suse.de +* Fri Oct 03 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 @@ -533,7 +577,7 @@ fi displays. + Build/configure fixes for Solaris. + Translation updates. -* Tue Nov 13 2007 hpj@suse.de +* Wed Nov 14 2007 hpj@suse.de - Removed second --with-atspi-dir from configure. - Added gdm-tab-triggers-enter.patch, which fixes Novell bug [#334446]. @@ -542,7 +586,7 @@ fi (#337428) - Updated gdm-xdm-sessions.patch to run again the /etc/X11/xdm scripts (#304399) -* Thu Nov 08 2007 hpj@suse.de +* Fri Nov 09 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 @@ -550,7 +594,7 @@ fi - Add abuild.patch. * Thu Oct 11 2007 sbrabec@suse.cz - Removed bogus dependency on mDNSResponder. -* Sun Sep 23 2007 hpj@suse.de +* Mon Sep 24 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 @@ -606,7 +650,7 @@ fi * Wed Sep 05 2007 sbrabec@suse.cz - Apply DISPLAYMANAGER_PASSWORD_LESS_LOGIN only for standard login, not for autologin (#307566). -* Sun Sep 02 2007 hpj@suse.de +* Mon Sep 03 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). @@ -657,10 +701,10 @@ fi - Split off a -lang subpackag - Fix variable expansion in gdm-conf.patch (#255685) - Remove earlygdm, replaced by earlyxdm (#285813) -* Fri Aug 03 2007 maw@suse.de +* Sat Aug 04 2007 maw@suse.de - Use %%fdupes - Uncomment out the rm in %%clean. -* Fri Aug 03 2007 hpj@suse.de +* Sat Aug 04 2007 hpj@suse.de - Update to version 2.19.5. - Fix up gdm-conf.patch. - Fix up gdm-2.19.3-reset-pam.patch. @@ -740,7 +784,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 -* Tue Mar 13 2007 maw@suse.de +* Wed Mar 14 2007 maw@suse.de - Update to version 2.17.7 - Removeupstreamed gdm-autobuild-warning.patch, gdm-bufferoverrun.patch @@ -748,10 +792,10 @@ fi [#400698], #399486, #352263, #395790, #394421. * Fri Mar 02 2007 sbrabec@suse.cz - Do not own /usr/share/xsessions (#229172). -* Mon Feb 26 2007 hpj@suse.de +* Tue Feb 27 2007 hpj@suse.de - Added gdm-2.13.0.4-audit-login.patch, which fixes Novell bug [#234133] (GDM cannot log authentication attempts). -* Tue Feb 13 2007 hpj@suse.de +* Wed Feb 14 2007 hpj@suse.de - Add gdm-trunk-string-literal-cmp.patch. Fixes #233655. * Mon Feb 12 2007 sbrabec@suse.cz - Fixed reversed interpretation of @@ -918,7 +962,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. -* Wed May 31 2006 hpj@suse.de +* Thu Jun 01 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 @@ -928,7 +972,7 @@ fi - Do not display Japanese string in terminal, which doesn't support it (#168736). - Disabled beep on start (#174786). -* Thu May 18 2006 hpj@suse.de +* Fri May 19 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 @@ -938,7 +982,7 @@ fi * Fri May 12 2006 sbrabec@suse.cz - Store value of PERMISSION_SECURITY by SuSEconfig in gdm_sysconfig.conf (169639#c20). -* Mon May 08 2006 hpj@suse.de +* Tue May 09 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 @@ -966,7 +1010,7 @@ fi service, bug #158786. * Sat Mar 11 2006 coolo@suse.de - fix the only-show-in-gnome patch to patch the .desktop.in -* Mon Mar 06 2006 federico@novell.com +* Tue Mar 07 2006 federico@novell.com - Fix installation of the earlygdm service; we were not calling fillup_and_insserv with "displaymanager" for the configuration filename. @@ -975,7 +1019,7 @@ fi in PLUS (148468#c17). * Tue Feb 28 2006 sbrabec@suse.cz - Use kdelibs3-doc in BuildRequires for meinproc (#153635#c14). -* Fri Feb 24 2006 hpj@suse.de +* Sat Feb 25 2006 hpj@suse.de - Add patch to fix tab keynav. * Fri Feb 17 2006 sreeves@suse.de - Update .desktop file (Name, GenericName, Comment, DocPath) @@ -1003,10 +1047,10 @@ fi - Added patch to require root auth to halt or reboot. * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires -* Wed Jan 18 2006 hpj@suse.de +* Thu Jan 19 2006 hpj@suse.de - Updated the domain logon patch with numerous new features and cosmetic fixes. -* Mon Jan 16 2006 hpj@suse.de +* Tue Jan 17 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 @@ -1026,7 +1070,7 @@ fi - Patch from upstream b.g.o (#152906) * Mon Oct 17 2005 gekker@suse.de - Make gdm.conf %%config(noreplace) -* Thu Oct 13 2005 hpj@suse.de +* Fri Oct 14 2005 hpj@suse.de - Updated xauthority-across-hostname-changes patch to use XAUTHLOCALHOSTNAME environment variable. * Thu Oct 13 2005 gekker@suse.de @@ -1045,7 +1089,7 @@ fi - Update to version 2.8.0.3 - Remove upstreamed autologin patch - Now installs .desktop files in correct location no need to move -* Fri Aug 19 2005 hpj@suse.de +* Sat Aug 20 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. @@ -1056,7 +1100,7 @@ fi * Thu Aug 11 2005 gekker@suse.de - Update to version 2.8.0.2 - Make 64bit clean -* Sat Jul 30 2005 jpr@suse.de +* Sun Jul 31 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 @@ -1116,13 +1160,13 @@ fi - Cache gdm help and show gdm in khelpcenter. * Mon Aug 16 2004 ro@suse.de - fixed specfile -* Sun Aug 15 2004 shprasad@suse.de +* Mon Aug 16 2004 shprasad@suse.de - Fixes bug #60020 Invalid username/passwd input doen't bring the password dialog for timed login user. * Fri Jul 30 2004 ro@suse.de - fix spec file, list gdm-session-startkde.diff as patch -* Thu Jul 29 2004 shprasad@suse.de +* Fri Jul 30 2004 shprasad@suse.de - Fixes bug #60867. Shows the 'KDE' option when the user clicks on 'Session' at the time of login. @@ -1181,7 +1225,7 @@ fi - updated to version 2.4.1.6 * Mon Jul 28 2003 kukuk@suse.de - Make sure /var/lib/gdm has correct permissions -* Thu Jul 24 2003 hhetter@suse.de +* Fri Jul 25 2003 hhetter@suse.de - move capplets to correct position - fix build * Wed Jul 16 2003 sbrabec@suse.cz @@ -1218,7 +1262,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 -* Wed Jan 15 2003 ro@suse.de +* Thu Jan 16 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.