+ Follow-up for permissions issue fix, making the fix work in
more environments
- Update to version 49.0:
+ Fix build failures when built without plymouth support
+ Fix permissions issue on the GDM work dir (/var/lib/gdm) that
broke settings persistence
+ Updated translations
- Update to version 49.rc:
+ Fixed a bug in PAM config files, introduced by transition to
dynamic users
+ Added logic to retry preferred display server (usually Wayland)
before falling back (usually to X11)
+ Fixed a bug where Plymouth keeps running if no display is
plugged into the system. This would prevent bootup from
completing and would prevent the user from logging in on a
serial console
+ Fixed GDM's session file loading logic to search directories in
correct precedence order
+ Fix simpledrm device detection to match the kernel's new device
naming scheme
+ Re-enabled X11 support by default. We found it difficult to
cleanly separate GDM's ability to launch modern X11 sessions
(which we intended to keep enabled in GNOME 49) from the rest
of GDM's X11 integration (which we intended to disable but
leave intact for GNOME 49). We still plan to remove GDM's full
X11 integration in a future version, and leave only the ability
to launch modern X11 sessions.
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=600
97 lines
4.0 KiB
Diff
97 lines
4.0 KiB
Diff
Index: gdm-49.rc/common/gdm-common.c
|
|
===================================================================
|
|
--- gdm-49.rc.orig/common/gdm-common.c
|
|
+++ gdm-49.rc/common/gdm-common.c
|
|
@@ -691,6 +691,8 @@ gdm_get_script_environment (const char *
|
|
|
|
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 */
|
|
@@ -1156,3 +1158,14 @@ gdm_load_env_d (GdmLoadEnvVarFunc load_e
|
|
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");
|
|
+ }
|
|
+}
|
|
Index: gdm-49.rc/common/gdm-common.h
|
|
===================================================================
|
|
--- gdm-49.rc.orig/common/gdm-common.h
|
|
+++ gdm-49.rc/common/gdm-common.h
|
|
@@ -77,6 +77,7 @@ char *gdm_generate_random_bytes
|
|
|
|
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);
|
|
Index: gdm-49.rc/daemon/gdm-display-access-file.c
|
|
===================================================================
|
|
--- gdm-49.rc.orig/daemon/gdm-display-access-file.c
|
|
+++ gdm-49.rc/daemon/gdm-display-access-file.c
|
|
@@ -432,13 +432,10 @@ _get_auth_info_for_display (GdmDisplayAc
|
|
*
|
|
* 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);
|
|
Index: gdm-49.rc/daemon/gdm-launch-environment.c
|
|
===================================================================
|
|
--- gdm-49.rc.orig/daemon/gdm-launch-environment.c
|
|
+++ gdm-49.rc/daemon/gdm-launch-environment.c
|
|
@@ -325,6 +325,11 @@ build_launch_environment (GdmLaunchEnvir
|
|
}
|
|
}
|
|
|
|
+ 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
|
|
Index: gdm-49.rc/daemon/gdm-session.c
|
|
===================================================================
|
|
--- gdm-49.rc.orig/daemon/gdm-session.c
|
|
+++ gdm-49.rc/daemon/gdm-session.c
|
|
@@ -2955,6 +2955,14 @@ set_up_session_environment (GdmSession *
|
|
}
|
|
}
|
|
|
|
+ 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",
|