forked from pool/gdm
+ Don't require Xwayland if wayland-only + Fix pam_syslog detection + Fix Solaris build + Fix udev rules for disabling wayland + Add 'banner-message-path' and '-source' settings - Rebase gdm-xauthlocalhostname.patch. - Add migration code from 'xdm' display-manager wrapper to native gdm systemd service. OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=561
97 lines
4.0 KiB
Diff
97 lines
4.0 KiB
Diff
diff --git a/common/gdm-common.c b/common/gdm-common.c
|
|
index 4f56a05..019971a 100644
|
|
--- a/common/gdm-common.c
|
|
+++ b/common/gdm-common.c
|
|
@@ -655,6 +655,8 @@ gdm_get_script_environment (const char *username,
|
|
|
|
if (display_hostname) {
|
|
g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (display_hostname));
|
|
+ } else {
|
|
+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ());
|
|
}
|
|
|
|
/* Runs as root */
|
|
@@ -1120,3 +1122,14 @@ gdm_load_env_d (GdmLoadEnvVarFunc load_env_func,
|
|
gdm_load_env_dir (dir, load_env_func, expand_func, user_data);
|
|
g_object_unref (dir);
|
|
}
|
|
+
|
|
+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");
|
|
+ }
|
|
+}
|
|
diff --git a/common/gdm-common.h b/common/gdm-common.h
|
|
index cffefe1..b769021 100644
|
|
--- a/common/gdm-common.h
|
|
+++ b/common/gdm-common.h
|
|
@@ -70,6 +70,7 @@ char *gdm_generate_random_bytes (gsize size,
|
|
|
|
gboolean gdm_get_login_window_session_id (const char *seat_id,
|
|
char **session_id);
|
|
+char *gdm_gethostname (void);
|
|
|
|
gboolean gdm_goto_login_session (GCancellable *cancellable,
|
|
GError **error);
|
|
diff --git a/daemon/gdm-display-access-file.c b/daemon/gdm-display-access-file.c
|
|
index 291c163..9a4ed4a 100644
|
|
--- a/daemon/gdm-display-access-file.c
|
|
+++ b/daemon/gdm-display-access-file.c
|
|
@@ -432,13 +432,10 @@ _get_auth_info_for_display (GdmDisplayAccessFile *file,
|
|
*
|
|
* https://bugs.freedesktop.org/show_bug.cgi?id=43425
|
|
*/
|
|
- char localhost[_POSIX_HOST_NAME_MAX + 1] = "";
|
|
*family = FamilyLocal;
|
|
- if (gethostname (localhost, _POSIX_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);
|
|
diff --git a/daemon/gdm-launch-environment.c b/daemon/gdm-launch-environment.c
|
|
index bea2f93..18f8f5a 100644
|
|
--- a/daemon/gdm-launch-environment.c
|
|
+++ b/daemon/gdm-launch-environment.c
|
|
@@ -221,6 +221,11 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment,
|
|
g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id));
|
|
}
|
|
|
|
+ if (launch_environment->x11_display_is_local) {
|
|
+ g_hash_table_remove (hash, "XAUTHLOCALHOSTNAME");
|
|
+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ());
|
|
+ }
|
|
+
|
|
g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true"));
|
|
|
|
/* Now populate XDG_DATA_DIRS from env.d if we're running initial setup; this allows
|
|
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
|
|
index 33dee76..e5a228e 100644
|
|
--- a/daemon/gdm-session.c
|
|
+++ b/daemon/gdm-session.c
|
|
@@ -2956,6 +2956,14 @@ set_up_session_environment (GdmSession *self)
|
|
}
|
|
}
|
|
|
|
+ if (self->display_is_local) {
|
|
+ char *hostname = gdm_gethostname ();
|
|
+ gdm_session_set_environment_variable (self,
|
|
+ "XAUTHLOCALHOSTNAME",
|
|
+ hostname);
|
|
+ g_free (hostname);
|
|
+ }
|
|
+
|
|
if (g_getenv ("WINDOWPATH") != NULL) {
|
|
gdm_session_set_environment_variable (self,
|
|
"WINDOWPATH",
|