diff --git a/gdm-fingerprint.pamd b/gdm-fingerprint.pamd index 9d0b095..4b3f2da 100644 --- a/gdm-fingerprint.pamd +++ b/gdm-fingerprint.pamd @@ -1,7 +1,6 @@ # Sample PAM file for doing fingerprint authentication. # Distros should replace this with what makes sense for them. auth required pam_env.so -auth required pam_fprintd.so auth sufficient pam_succeed_if.so uid >= 500 quiet auth required pam_deny.so diff --git a/gdm-xauthlocalhostname.patch b/gdm-xauthlocalhostname.patch index 9ae5a97..1e5d78c 100644 --- a/gdm-xauthlocalhostname.patch +++ b/gdm-xauthlocalhostname.patch @@ -1,76 +1,114 @@ -Index: gdm-3.5.91/daemon/gdm-display-access-file.c +Index: gdm-3.7.3.1/daemon/gdm-display-access-file.c =================================================================== ---- gdm-3.5.91.orig/daemon/gdm-display-access-file.c -+++ gdm-3.5.91/daemon/gdm-display-access-file.c -@@ -440,11 +440,15 @@ _get_auth_info_for_display (GdmDisplayAc +--- gdm-3.7.3.1.orig/daemon/gdm-display-access-file.c ++++ gdm-3.7.3.1/daemon/gdm-display-access-file.c +@@ -443,13 +443,10 @@ _get_auth_info_for_display (GdmDisplayAc + gdm_display_is_local (display, &is_local, NULL); + if (is_local) { - char localhost[HOST_NAME_MAX + 1] = ""; +- char localhost[HOST_NAME_MAX + 1] = ""; *family = FamilyLocal; -+#if 0 - if (gethostname (localhost, HOST_NAME_MAX) == 0) { - *address = g_strdup (localhost); - } else { -+#endif - *address = g_strdup ("localhost"); -+#if 0 - } -+#endif +- if (gethostname (localhost, HOST_NAME_MAX) == 0) { +- *address = g_strdup (localhost); +- } else { +- *address = g_strdup ("localhost"); +- } ++ /* using the new function we create in the patch, to detect ++ * changes here, in the original code */ ++ *address = gdm_gethostname (); } else { *family = FamilyWild; gdm_display_get_remote_hostname (display, address, NULL); -Index: gdm-3.5.91/daemon/gdm-launch-environment.c +Index: gdm-3.7.3.1/daemon/gdm-launch-environment.c =================================================================== ---- gdm-3.5.91.orig/daemon/gdm-launch-environment.c -+++ gdm-3.5.91/daemon/gdm-launch-environment.c -@@ -306,6 +306,11 @@ build_launch_environment (GdmLaunchEnvir +--- gdm-3.7.3.1.orig/daemon/gdm-launch-environment.c ++++ gdm-3.7.3.1/daemon/gdm-launch-environment.c +@@ -284,6 +284,11 @@ build_launch_environment (GdmLaunchEnvir g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id)); } + if (launch_environment->priv->x11_display_is_local) { + g_hash_table_remove (hash, "XAUTHLOCALHOSTNAME"); -+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), g_strdup ("localhost")); ++ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ()); + } + g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (g_getenv ("PATH"))); g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true")); -Index: gdm-3.5.91/daemon/gdm-session.c +Index: gdm-3.7.3.1/daemon/gdm-session.c =================================================================== ---- gdm-3.5.91.orig/daemon/gdm-session.c -+++ gdm-3.5.91/daemon/gdm-session.c -@@ -2297,6 +2297,12 @@ setup_session_environment (GdmSession *s +--- gdm-3.7.3.1.orig/daemon/gdm-session.c ++++ gdm-3.7.3.1/daemon/gdm-session.c +@@ -2374,6 +2374,14 @@ setup_session_environment (GdmSession *s self->priv->user_x11_authority_file); } + if (self->priv->display_is_local) { ++ char *hostname = gdm_gethostname (); + gdm_session_set_environment_variable (self, + "XAUTHLOCALHOSTNAME", -+ "localhost"); ++ hostname); ++ g_free (hostname); + } + if (g_getenv ("WINDOWPATH") != NULL) { gdm_session_set_environment_variable (self, "WINDOWPATH", -Index: gdm-3.5.91/daemon/gdm-slave.c +Index: gdm-3.7.3.1/daemon/gdm-slave.c =================================================================== ---- gdm-3.5.91.orig/daemon/gdm-slave.c -+++ gdm-3.5.91/daemon/gdm-slave.c +--- gdm-3.7.3.1.orig/daemon/gdm-slave.c ++++ gdm-3.7.3.1/daemon/gdm-slave.c @@ -255,6 +255,10 @@ get_script_environment (GdmSlave *slav g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (slave->priv->display_hostname)); } + if (slave->priv->display_is_local) { -+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), g_strdup ("localhost")); ++ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ()); + } + /* Runs as root */ g_hash_table_insert (hash, g_strdup ("XAUTHORITY"), g_strdup (slave->priv->display_x11_authority_file)); g_hash_table_insert (hash, g_strdup ("DISPLAY"), g_strdup (slave->priv->display_name)); -@@ -652,6 +656,7 @@ gdm_slave_connect_to_x11_display (GdmSla +@@ -644,6 +648,11 @@ gdm_slave_connect_to_x11_display (GdmSla g_setenv ("DISPLAY", slave->priv->display_name, TRUE); g_setenv ("XAUTHORITY", slave->priv->display_x11_authority_file, TRUE); -+ g_setenv ("XAUTHLOCALHOSTNAME", "localhost", TRUE); ++ do { ++ char *hostname = gdm_gethostname (); ++ g_setenv ("XAUTHLOCALHOSTNAME", hostname, TRUE); ++ g_free (hostname); ++ } while (0); sigemptyset (&mask); sigaddset (&mask, SIGCHLD); +Index: gdm-3.7.3.1/common/gdm-common.c +=================================================================== +--- gdm-3.7.3.1.orig/common/gdm-common.c ++++ gdm-3.7.3.1/common/gdm-common.c +@@ -509,3 +509,14 @@ gdm_generate_random_bytes (gsize size + close (fd); + return bytes; + } ++ ++char * ++gdm_gethostname (void) ++{ ++ char localhost[HOST_NAME_MAX + 1] = ""; ++ if (gethostname (localhost, HOST_NAME_MAX) == 0) { ++ return g_strdup (localhost); ++ } else { ++ return g_strdup ("localhost"); ++ } ++} +Index: gdm-3.7.3.1/common/gdm-common.h +=================================================================== +--- gdm-3.7.3.1.orig/common/gdm-common.h ++++ gdm-3.7.3.1/common/gdm-common.h +@@ -58,6 +58,7 @@ gboolean gdm_string_hex_decode + int insert_at); + char *gdm_generate_random_bytes (gsize size, + GError **error); ++char *gdm_gethostname (void); + + G_END_DECLS + diff --git a/gdm.changes b/gdm.changes index 8175d4b..7d73124 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Fri Jan 18 22:59:34 UTC 2013 - rbrownccb@opensuse.org + +- Removed fprint from gdm-fingerprint.pamd to fix YaST config. + +------------------------------------------------------------------- +Thu Jan 17 17:58:37 UTC 2013 - vuntz@opensuse.org + +- Update gdm-xauthlocalhostname.patch: instead of always putting + localhost in the Xauthority entry, we correctly set the + XAUTHLOCALHOSTNAME environment variable to the current hostname. + This matches what we're supposed to do as per comment 24 of + bnc#538064. + ------------------------------------------------------------------- Fri Nov 16 20:11:43 UTC 2012 - dimstar@opensuse.org diff --git a/gdm.spec b/gdm.spec index a8508dd..ba5a730 100644 --- a/gdm.spec +++ b/gdm.spec @@ -1,7 +1,7 @@ # # spec file for package gdm # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 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 @@ -60,7 +60,7 @@ Patch15: gdm-greeter-greater-ui.patch Patch18: gdm-always-reflect-keyboard-layout.patch # PATCH-FIX-OPENSUSE gdm-default-wm.patch vuntz@novell.com -- Use sysconfig to know to which desktop to use by default Patch34: gdm-default-wm.patch -# PATCH-FIX-OPENSUSE gdm-xauthlocalhostname.patch bgo555464 vuntz@novell.com -- Set XAUTHLOCALHOSTNAME to localhost for local logins to avoid issues in the session in case the hostname changes +# PATCH-FIX-OPENSUSE gdm-xauthlocalhostname.patch bnc#538064 vuntz@novell.com -- Set XAUTHLOCALHOSTNAME to current hostname when we authenticate, for local logins, to avoid issues in the session in case the hostname changes later one. See comment 24 in the bug. Patch35: gdm-xauthlocalhostname.patch # PATCH-FIX-UPSTREAM gdm-look-at-runlevel.patch bnc540482 bgo599180 vuntz@opensuse.org -- Look at the current runlevel before managing the display again, so we don't do this when shutting down or rebooting Patch40: gdm-look-at-runlevel.patch