File lightdm-xauthlocalhostname-support.patch of Package lightdm

Set XAUTHLOCALHOSTNAME to the hostname for local logins to avoid issues in the session in case the hostname changes

diff --git a/src/seat-xlocal.c b/src/seat-xlocal.c
--- a/src/seat-xlocal.c
+++ b/src/seat-xlocal.c
@@ -350,6 +350,7 @@ seat_xlocal_run_script (Seat *seat, Disp
         path = x_server_local_get_authority_file_path (x_server);
         process_set_env (script, "DISPLAY", x_server_get_address (X_SERVER (x_server)));
         process_set_env (script, "XAUTHORITY", path);
+        process_set_env (script, "XAUTHLOCALHOSTNAME", g_get_host_name ());
     }
 
     SEAT_CLASS (seat_xlocal_parent_class)->run_script (seat, display_server, script);
diff --git a/src/x-server-local.c b/src/x-server-local.c
--- a/src/x-server-local.c
+++ b/src/x-server-local.c
@@ -150,14 +150,15 @@ XServerLocal *
 x_server_local_new (void)
 {
     XServerLocal *self;
-    gchar hostname[1024], *number, *name;
+    const gchar *hostname;
+    gchar *number, *name;
     XAuthority *cookie;
 
     self = g_object_new (X_SERVER_LOCAL_TYPE, NULL);
 
     x_server_set_display_number (X_SERVER (self), x_server_local_get_unused_display_number ());
 
-    gethostname (hostname, 1024);
+    hostname = g_get_host_name ();
     number = g_strdup_printf ("%d", x_server_get_display_number (X_SERVER (self)));
     cookie = x_authority_new_cookie (XAUTH_FAMILY_LOCAL, (guint8*) hostname, strlen (hostname), number);
     x_server_set_authority (X_SERVER (self), cookie);
diff --git a/src/x-server.c b/src/x-server.c
--- a/src/x-server.c
+++ b/src/x-server.c
@@ -15,6 +15,7 @@
 
 #include "x-server.h"
 #include "configuration.h"
+#include "x-server-local.h"
 
 struct XServerPrivate
 {
@@ -169,6 +170,8 @@ x_server_connect_session (DisplayServer 
     else
         l_debug (session, "Not setting XDG_VTNR");
 
+    if (IS_X_SERVER_LOCAL (display_server))
+        session_set_env (session, "XAUTHLOCALHOSTNAME", g_get_host_name ());
     session_set_env (session, "DISPLAY", x_server_get_address (X_SERVER (display_server)));
     session_set_xdisplay (session, x_server_get_address (X_SERVER (display_server)));
     session_set_remote_host_name (session, x_server_get_hostname (X_SERVER (display_server)));
openSUSE Build Service is sponsored by