SHA256
1
0
forked from pool/gdm

Accepting request 149143 from home:vuntz:branches:GNOME:Factory

Update gdm-xauthlocalhostname.patch

OBS-URL: https://build.opensuse.org/request/show/149143
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=228
This commit is contained in:
Dominique Leuenberger 2013-01-18 20:04:32 +00:00 committed by Git OBS Bridge
parent fe14bbb0f2
commit d69dbed043
3 changed files with 79 additions and 32 deletions

View File

@ -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

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
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

View File

@ -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