19 Commits

Author SHA256 Message Date
dc0c1c625b Accepting request 1320147 from GNOME:Factory
OBS-URL: https://build.opensuse.org/request/show/1320147
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=294
2025-11-27 14:19:15 +00:00
164857ba38 - Update to version 49.2:
+ Fixed bug that prevented X11 fallback whenever autologin fails
  + Updated translations.

- Drop /usr/bin/dbus-run-session (Build)Requires: no longer needed
  since version 49.0.

OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=611
2025-11-26 10:42:03 +00:00
9b4f23bd87 Accepting request 1316438 from GNOME:Factory
OBS-URL: https://build.opensuse.org/request/show/1316438
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=293
2025-11-11 18:18:28 +00:00
67171b65aa - Require displaymanager-sysconfig: we configure most aspects of
the display managers in openSUSE via sysconfig and have patches
  on gdm to support this. displaymanager-sysconfig brings the
  skeleton configuration files to be discovered (e.g allows yast to
  configure autologin)

OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=609
2025-11-07 13:19:40 +00:00
1251506952 Accepting request 1311114 from GNOME:Factory
OBS-URL: https://build.opensuse.org/request/show/1311114
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=292
2025-10-14 16:06:45 +00:00
7af9ec13c7 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=607 2025-10-13 12:45:32 +00:00
586f3dc67f Accepting request 1307728 from GNOME:Factory
OBS-URL: https://build.opensuse.org/request/show/1307728
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=291
2025-09-29 14:31:42 +00:00
6e20dc9604 - Require gdm-xdm-integration when xdm is installed: otherwise we
end up with a non-functional setup of xdm.

- Drop gdm-plymouth-quit-wait.patch: Fixed by commit d2c0213b.

OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=605
2025-09-29 10:31:50 +00:00
cd3f3435c4 Accepting request 1306974 from home:dimstar:Factory
- Suggest gdm-systemd in openSUSE too, just as we do on SLE. We
  should be ready for that switch in Tumbleweed (not yet migrating
  existing users from xdm to gdm native; this only affects new
  installations)

OBS-URL: https://build.opensuse.org/request/show/1306974
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=604
2025-09-26 05:19:49 +00:00
d17456ea1d Accepting request 1306955 from GNOME:Factory
- Add gdm-service-keytable.patch: set KEYMAP to XkbLayout for GNOME
  when using gdm-systemd instead of xdm (bsc#1248831, bsc#1250366). (forwarded request 1306710 from dimstar)

OBS-URL: https://build.opensuse.org/request/show/1306955
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=290
2025-09-25 16:43:55 +00:00
a561f83e71 Accepting request 1306710 from GNOME:Next
- Add gdm-service-keytable.patch: set KEYMAP to XkbLayout for GNOME
  when using gdm-systemd instead of xdm (bsc#1248831, bsc#1250366).

OBS-URL: https://build.opensuse.org/request/show/1306710
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=602
2025-09-24 14:12:50 +00:00
f2e1d31c0e Accepting request 1305517 from GNOME:Factory
- Update to version 49.0.1:
  + 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. (forwarded request 1305256 from iznogood)

OBS-URL: https://build.opensuse.org/request/show/1305517
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=289
2025-09-24 13:22:08 +00:00
7cb19a7690 - Update to version 49.0.1:
+ 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
2025-09-17 15:55:07 +00:00
792e5741ac Accepting request 1304073 from GNOME:Factory
- Create /run/gdm in case it would not exist yet; this could
  potentially happen on offline upgrades.

OBS-URL: https://build.opensuse.org/request/show/1304073
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=288
2025-09-12 19:09:08 +00:00
eed04b43f2 - Create /run/gdm in case it would not exist yet; this could
potentially happen on offline upgrades.

OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=598
2025-09-11 10:58:12 +00:00
6f0c2503f8 Accepting request 1302195 from GNOME:Factory
- Move migration marker from /var/tmp to /run/gdm (boo#1249017).

- Fix syntax error in gdm's %pre script.

OBS-URL: https://build.opensuse.org/request/show/1302195
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdm?expand=0&rev=287
2025-09-01 15:17:06 +00:00
6809b4d3bc OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=596 2025-09-01 11:34:31 +00:00
5d76a241c4 - Move migration marker from /var/tmp to /run/gdm (boo#1249017).
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=595
2025-09-01 11:03:04 +00:00
f41ed4921d - Fix syntax error in gdm's %pre script.
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=594
2025-08-29 10:19:18 +00:00
15 changed files with 309 additions and 214 deletions

View File

@@ -3,7 +3,7 @@
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://gitlab.gnome.org/GNOME/gdm.git</param>
<param name="revision">48.0</param>
<param name="revision">49.2</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param>

Binary file not shown.

3
gdm-49.2.obscpio Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:baa31ae6d8dba1f6e69e45271715f7c5ec016492d3702ab5ce6ffaf089930ff8
size 8766477

View File

@@ -1,42 +0,0 @@
From bf711cfd86536971404974a48c4db7298bda0e06 Mon Sep 17 00:00:00 2001
From: Alynx Zhou <alynx.zhou@gmail.com>
Date: Tue, 1 Apr 2025 11:18:05 +0800
Subject: [PATCH] gdm-config: Add missing "/" when building dconf paths
Closes #978
---
meson.build | 2 +-
utils/gdm-config.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index eaa93a652..63be01011 100644
--- a/meson.build
+++ b/meson.build
@@ -222,7 +222,7 @@ endif
# dconf paths, we should fix dconf.pc to provide us more real data though
if dconf_dep.found()
dconf_prefix = dconf_dep.get_variable(pkgconfig: 'prefix')
- dconf_sysconfig = (dconf_prefix == '/usr') ? '/etc' : dconf_prefix + '/etc/'
+ dconf_sysconfig = (dconf_prefix == '/usr') ? '/etc' : dconf_prefix + '/etc'
dconf_datadir = dconf_prefix / 'share'
else
dconf_sysconfig = gdm_prefix / get_option('sysconfdir')
diff --git a/utils/gdm-config.c b/utils/gdm-config.c
index 70d5d4de9..82051a1b1 100644
--- a/utils/gdm-config.c
+++ b/utils/gdm-config.c
@@ -34,8 +34,8 @@
#include "gdm-common.h"
-#define DCONF_SYSCONFIG_PROFILES_PATH DCONF_SYSCONFIG "dconf/profile"
-#define DCONF_SYSCONFIG_DB_PATH DCONF_SYSCONFIG "dconf/db"
+#define DCONF_SYSCONFIG_PROFILES_PATH DCONF_SYSCONFIG "/dconf/profile"
+#define DCONF_SYSCONFIG_DB_PATH DCONF_SYSCONFIG "/dconf/db"
#define DCONF_SYSTEM_DB_PREFIX "system-db:"
#define DCONF_SYSTEM_DB_DEFAULT_NAME "gdm_auth_config"
--
GitLab

View File

@@ -1,8 +1,8 @@
Index: gdm-46.2/daemon/gdm-display.c
Index: gdm-49.beta/daemon/gdm-display.c
===================================================================
--- gdm-46.2.orig/daemon/gdm-display.c
+++ gdm-46.2/daemon/gdm-display.c
@@ -1538,12 +1538,12 @@ can_create_environment (const char *sess
--- gdm-49.beta.orig/daemon/gdm-display.c
+++ gdm-49.beta/daemon/gdm-display.c
@@ -1554,12 +1554,12 @@ can_create_environment (const char *sess
return session_exists;
}
@@ -18,7 +18,7 @@ Index: gdm-46.2/daemon/gdm-display.c
return TRUE;
return FALSE;
@@ -1625,7 +1625,7 @@ wants_initial_setup (GdmDisplay *self)
@@ -1641,7 +1641,7 @@ wants_initial_setup (GdmDisplay *self)
priv = gdm_display_get_instance_private (self);
@@ -27,20 +27,20 @@ Index: gdm-46.2/daemon/gdm-display.c
return FALSE;
}
Index: gdm-46.2/daemon/gdm-manager.c
Index: gdm-49.beta/daemon/gdm-manager.c
===================================================================
--- gdm-46.2.orig/daemon/gdm-manager.c
+++ gdm-46.2/daemon/gdm-manager.c
--- gdm-49.beta.orig/daemon/gdm-manager.c
+++ gdm-49.beta/daemon/gdm-manager.c
@@ -62,7 +62,7 @@
#define GDM_MANAGER_PATH GDM_DBUS_PATH "/Manager"
#define GDM_MANAGER_DISPLAYS_PATH GDM_DBUS_PATH "/Displays"
#define INITIAL_SETUP_USERNAME "gnome-initial-setup"
-#define ALREADY_RAN_INITIAL_SETUP_ON_THIS_BOOT GDM_RUN_DIR "/gdm.ran-initial-setup"
+#define BLOCK_INITIAL_SETUP LOCALSTATEDIR "/lib/gdm/block-initial-setup"
#define INITIAL_SETUP_EXPORT_DIR GDM_RUN_DIR "/gnome-initial-setup"
typedef struct
{
@@ -1847,6 +1847,7 @@ on_start_user_session (StartUserSessionO
@@ -1837,6 +1837,7 @@ on_start_user_session (StartUserSessionO
gboolean fail_if_already_switched = TRUE;
GdmDisplay *display;
const char *session_id;
@@ -48,7 +48,7 @@ Index: gdm-46.2/daemon/gdm-manager.c
g_debug ("GdmManager: start or jump to session");
@@ -1889,22 +1890,21 @@ on_start_user_session (StartUserSessionO
@@ -1879,22 +1880,21 @@ on_start_user_session (StartUserSessionO
"doing-initial-setup", &doing_initial_setup,
NULL);
@@ -81,11 +81,11 @@ Index: gdm-46.2/daemon/gdm-manager.c
} else {
g_debug ("GdmManager: session has its display server, reusing our server for another login screen");
}
Index: gdm-46.2/daemon/meson.build
Index: gdm-49.beta/daemon/meson.build
===================================================================
--- gdm-46.2.orig/daemon/meson.build
+++ gdm-46.2/daemon/meson.build
@@ -227,6 +227,7 @@ endif
--- gdm-49.beta.orig/daemon/meson.build
+++ gdm-49.beta/daemon/meson.build
@@ -235,6 +235,7 @@ endif
gdm_daemon = executable('gdm',
[ gdm_daemon_sources, gdm_daemon_gen_sources ],

View File

@@ -1,13 +0,0 @@
diff --git a/data/meson.build b/data/meson.build
index de8edd6..7a24d30 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -158,7 +158,7 @@ service_config.set('sbindir', gdm_prefix / get_option('sbindir'))
service_config.set('GDM_INITIAL_VT', get_option('initial-vt'))
service_config.set('LANG_CONFIG_FILE', lang_config_file)
if plymouth_dep.found()
- service_config.set('PLYMOUTH_QUIT_SERVICE', 'plymouth-quit.service')
+ service_config.set('PLYMOUTH_QUIT_SERVICE', 'plymouth-quit.service plymouth-quit-wait.service')
else
service_config.set('PLYMOUTH_QUIT_SERVICE', '')
endif

View File

@@ -1,10 +0,0 @@
--- a/data/meson.build
+++ b/data/meson.build
@@ -77,7 +77,6 @@ gdm_gnome_session_required_components =
'org.gnome.SettingsDaemon.Sharing',
'org.gnome.SettingsDaemon.Smartcard',
'org.gnome.SettingsDaemon.Sound',
- 'org.gnome.SettingsDaemon.Wacom',
]
gdm_gnome_user_session_wanted_components = gdm_gnome_session_required_components

View File

@@ -0,0 +1,12 @@
Index: gdm-48.0/data/gdm.service.in
===================================================================
--- gdm-48.0.orig/data/gdm.service.in
+++ gdm-48.0/data/gdm.service.in
@@ -20,6 +20,7 @@ After=rc-local.service plymouth-start.se
OnFailure=plymouth-quit.service
[Service]
+ExecStartPre=-/usr/libexec/gdm/keytable
ExecStart=${sbindir}/gdm
KillMode=mixed
Restart=always

View File

@@ -1,52 +0,0 @@
From a5f9f274c9c902519336a489cfed0548206d2bca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Mon, 27 Jan 2025 14:01:23 +0100
Subject: [PATCH] gdm-settings-utils: rename variable to fix build with gcc 15
In GNU23 C++, bool is a keyword. Rename the variable to avoid syntax error.
---
common/gdm-settings-utils.c | 8 ++++----
common/gdm-settings-utils.h | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/common/gdm-settings-utils.c b/common/gdm-settings-utils.c
index 636be3a9e..da4c7aefb 100644
--- a/common/gdm-settings-utils.c
+++ b/common/gdm-settings-utils.c
@@ -287,16 +287,16 @@ gdm_settings_parse_boolean_as_value (gboolean boolval)
/* adapted from GKeyFile */
gboolean
gdm_settings_parse_value_as_boolean (const char *value,
- gboolean *bool)
+ gboolean *boolval)
{
g_return_val_if_fail (value != NULL, FALSE);
- g_return_val_if_fail (bool != NULL, FALSE);
+ g_return_val_if_fail (boolval != NULL, FALSE);
if (g_ascii_strcasecmp (value, "true") == 0 || strcmp (value, "1") == 0) {
- *bool = TRUE;
+ *boolval = TRUE;
return TRUE;
} else if (g_ascii_strcasecmp (value, "false") == 0 || strcmp (value, "0") == 0) {
- *bool = FALSE;
+ *boolval = FALSE;
return TRUE;
} else {
return FALSE;
diff --git a/common/gdm-settings-utils.h b/common/gdm-settings-utils.h
index 4f2362ce7..734d625c7 100644
--- a/common/gdm-settings-utils.h
+++ b/common/gdm-settings-utils.h
@@ -44,7 +44,7 @@ gboolean gdm_settings_parse_schemas (const char *fil
GSList **list);
gboolean gdm_settings_parse_value_as_boolean (const char *value,
- gboolean *bool);
+ gboolean *boolval);
gboolean gdm_settings_parse_value_as_integer (const char *value,
int *intval);
gboolean gdm_settings_parse_value_as_double (const char *value,
--
GitLab

View File

@@ -1,7 +1,7 @@
Index: gdm-46.0/common/gdm-settings-system-backend.c
Index: gdm-49.rc/common/gdm-settings-system-backend.c
===================================================================
--- /dev/null
+++ gdm-46.0/common/gdm-settings-system-backend.c
+++ gdm-49.rc/common/gdm-settings-system-backend.c
@@ -0,0 +1,372 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -375,10 +375,10 @@ Index: gdm-46.0/common/gdm-settings-system-backend.c
+
+ return GDM_SETTINGS_BACKEND (object);
+}
Index: gdm-46.0/common/gdm-settings-system-backend.h
Index: gdm-49.rc/common/gdm-settings-system-backend.h
===================================================================
--- /dev/null
+++ gdm-46.0/common/gdm-settings-system-backend.h
+++ gdm-49.rc/common/gdm-settings-system-backend.h
@@ -0,0 +1,56 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -436,10 +436,10 @@ Index: gdm-46.0/common/gdm-settings-system-backend.h
+G_END_DECLS
+
+#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */
Index: gdm-46.0/common/gdm-settings.c
Index: gdm-49.rc/common/gdm-settings.c
===================================================================
--- gdm-46.0.orig/common/gdm-settings.c
+++ gdm-46.0/common/gdm-settings.c
--- gdm-49.rc.orig/common/gdm-settings.c
+++ gdm-49.rc/common/gdm-settings.c
@@ -38,6 +38,7 @@
#include "gdm-settings.h"
@@ -459,10 +459,10 @@ Index: gdm-46.0/common/gdm-settings.c
backend = gdm_settings_desktop_backend_new (GDM_RUNTIME_CONF);
if (backend)
settings->backends = g_list_prepend (settings->backends, backend);
Index: gdm-46.0/common/gdm-sysconfig.c
Index: gdm-49.rc/common/gdm-sysconfig.c
===================================================================
--- /dev/null
+++ gdm-46.0/common/gdm-sysconfig.c
+++ gdm-49.rc/common/gdm-sysconfig.c
@@ -0,0 +1,509 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -973,10 +973,10 @@ Index: gdm-46.0/common/gdm-sysconfig.c
+ g_strfreev (lines);
+ return result;
+}
Index: gdm-46.0/common/gdm-sysconfig.h
Index: gdm-49.rc/common/gdm-sysconfig.h
===================================================================
--- /dev/null
+++ gdm-46.0/common/gdm-sysconfig.h
+++ gdm-49.rc/common/gdm-sysconfig.h
@@ -0,0 +1,43 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -1021,10 +1021,10 @@ Index: gdm-46.0/common/gdm-sysconfig.h
+G_END_DECLS
+
+#endif /* __GDM_SYSCONFIG_H */
Index: gdm-46.0/data/gdm.conf-custom.in
Index: gdm-49.rc/data/gdm.conf-custom.in
===================================================================
--- gdm-46.0.orig/data/gdm.conf-custom.in
+++ gdm-46.0/data/gdm.conf-custom.in
--- gdm-49.rc.orig/data/gdm.conf-custom.in
+++ gdm-49.rc/data/gdm.conf-custom.in
@@ -1,4 +1,7 @@
# GDM configuration storage
+#
@@ -1033,11 +1033,11 @@ Index: gdm-46.0/data/gdm.conf-custom.in
[daemon]
# Uncomment the line below to force the login screen to use Xorg
Index: gdm-46.0/common/meson.build
Index: gdm-49.rc/common/meson.build
===================================================================
--- gdm-46.0.orig/common/meson.build
+++ gdm-46.0/common/meson.build
@@ -5,9 +5,11 @@ libgdmcommon_src = files(
--- gdm-49.rc.orig/common/meson.build
+++ gdm-49.rc/common/meson.build
@@ -6,9 +6,11 @@ libgdmcommon_src = files(
'gdm-profile.c',
'gdm-settings-backend.c',
'gdm-settings-desktop-backend.c',

View File

@@ -1,8 +1,8 @@
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,
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));
@@ -11,7 +11,7 @@ index 4f56a05..019971a 100644
}
/* Runs as root */
@@ -1120,3 +1122,14 @@ gdm_load_env_d (GdmLoadEnvVarFunc load_env_func,
@@ -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);
}
@@ -26,11 +26,11 @@ index 4f56a05..019971a 100644
+ 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,
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);
@@ -38,11 +38,11 @@ index cffefe1..b769021 100644
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,
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
*/
@@ -59,12 +59,12 @@ index 291c163..9a4ed4a 100644
} 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));
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) {
@@ -75,11 +75,11 @@ index bea2f93..18f8f5a 100644
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)
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 *
}
}

View File

@@ -1,3 +1,151 @@
-------------------------------------------------------------------
Tue Nov 25 08:30:24 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 49.2:
+ Fixed bug that prevented X11 fallback whenever autologin fails
+ Updated translations.
-------------------------------------------------------------------
Fri Nov 14 11:16:25 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Drop /usr/bin/dbus-run-session (Build)Requires: no longer needed
since version 49.0.
-------------------------------------------------------------------
Fri Nov 7 08:43:38 UTC 2025 - Dominique Leuenberger <dleuenberger@suse.com>
- Require displaymanager-sysconfig: we configure most aspects of
the display managers in openSUSE via sysconfig and have patches
on gdm to support this. displaymanager-sysconfig brings the
skeleton configuration files to be discovered (e.g allows yast to
configure autologin)
-------------------------------------------------------------------
Sat Oct 11 04:15:52 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 49.1:
+ Hotfixed a bug that leaves gnome-shell in a locked up state
+ Fixed implementation of userdb, so we don't list our users when
asked about UID 0 (root)
+ Switched safety check that avoids accidentally deleting / and
/home from an assertion to an error, so the check always runs
even in production builds
+ Fixed bug where gnome-initial-setup's configuration (i.e. input
methods) failed to migrate to the final user session
+ Fixed bug where GDM assumed that Wayland is unavailable if
Xwayland wasn't installed on the system
+ Updated translations.
-------------------------------------------------------------------
Mon Sep 29 10:14:14 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Require gdm-xdm-integration when xdm is installed: otherwise we
end up with a non-functional setup of xdm.
-------------------------------------------------------------------
Thu Sep 25 06:40:13 UTC 2025 - Xiaoguang Wang <xiaoguang.wang@suse.com>
- Drop gdm-plymouth-quit-wait.patch: Fixed by commit d2c0213b.
-------------------------------------------------------------------
Wed Sep 24 15:22:46 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Suggest gdm-systemd in openSUSE too, just as we do on SLE. We
should be ready for that switch in Tumbleweed (not yet migrating
existing users from xdm to gdm native; this only affects new
installations)
-------------------------------------------------------------------
Tue Sep 23 08:52:11 UTC 2025 - Yifan Jiang <yfjiang@suse.com>
- Add gdm-service-keytable.patch: set KEYMAP to XkbLayout for GNOME
when using gdm-systemd instead of xdm (bsc#1248831, bsc#1250366).
-------------------------------------------------------------------
Tue Sep 16 18:57:42 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 49.0.1:
+ Follow-up for permissions issue fix, making the fix work in
more environments
-------------------------------------------------------------------
Tue Sep 16 06:14:03 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- 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
-------------------------------------------------------------------
Thu Sep 11 10:57:19 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Create /run/gdm in case it would not exist yet; this could
potentially happen on offline upgrades.
-------------------------------------------------------------------
Mon Sep 1 11:02:31 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Move migration marker from /var/tmp to /run/gdm (boo#1249017).
-------------------------------------------------------------------
Mon Sep 1 09:48:51 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- 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.
+ Worked around a regression introduced by the switch to dynamic
users, where the login screen no longer persists any settings
-------------------------------------------------------------------
Fri Aug 29 10:21:24 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 49.beta:
+ Switch to using dynamic users for greeter sessions. This
enables systemd-based session management on the greeter,
removes GDM's dependency on dbus-daemon, and frees us to drop
gnome-session's builtin service manager.
+ Adapt to changes in gnome-session 49, which dropped the builtin
service manager code and now exclusively relies on systemd for
session startup. This means that GDM now depends on
gnome-session 49.
- Changes from version 49.alpha.1:
+ Drop dependency on Wacom g-s-d plugin
+ Drop leftover udev rules
+ Fix warning when building without libxdmcp support
+ Add polkit rules to allow access to smartcards
- Changes from version 49.alpha.0:
+ meson: Change x11-support default value to false
+ Disable Xorg session by default
+ udev: Drop disable_wayland overrides
+ Fix build with gcc 15
+ Updated translations
- Drop upstream merged patches gdm-fix-wrong-path-gdm-config.patch
and gdm-settings-utils_rename-variable.patch
- Drop gdm-s390-not-require-g-s-d_wacom.patch: no longer applicable
-------------------------------------------------------------------
Fri Aug 29 10:18:55 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Fix syntax error in gdm's %pre script.
-------------------------------------------------------------------
Tue Aug 6 06:55:48 UTC 2025 - Xiaoguang Wang <xiaoguang.wang@suse.com>

View File

@@ -1,4 +1,4 @@
name: gdm
version: 48.0
mtime: 1742227635
commit: 2397f037d9075a6f98f43c6c2cbaacf923e82b6b
version: 49.2
mtime: 1764030180
commit: 3f0572128a1178f21041d80d4b388c13069a678e

View File

@@ -27,7 +27,7 @@
%endif
Name: gdm
Version: 48.0
Version: 49.2
Release: 0
Summary: The GNOME Display Manager
License: GPL-2.0-or-later
@@ -57,9 +57,7 @@ Source14: gdm-fingerprint-sle.pamd
Source15: gdm-smartcard-sle.pamd
# Configuration for pulseaudio
Source20: default.pa
# WARNING: do not remove/significantly change patch0 without updating the relevant patch in accountsservice too
# PATCH-FIX-OPENSUSE gdm-s390-not-require-g-s-d_wacom.patch bsc#1129412 yfjiang@suse.com -- Remove the runtime requirement of g-s-d Wacom plugin
Patch0: gdm-s390-not-require-g-s-d_wacom.patch
Source21: keytable.in
# PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 bsc#919723 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager; note that accountsservice has a similar patch (accountsservice-sysconfig.patch)
Patch1: gdm-sysconfig-settings.patch
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
@@ -70,18 +68,13 @@ Patch4: gdm-xauthlocalhostname.patch
Patch5: gdm-switch-to-tty1.patch
# PATCH-FIX-OPENSUSE gdm-initial-setup-hardening.patch boo#1140851, glgo#GNOME/gnome-initial-setup#76 fezhang@suse.com -- Prevent gnome-initial-setup running if any regular user has perviously logged into the system
Patch6: gdm-initial-setup-hardening.patch
# PATCH-FIX-UPSTREAM gdm-settings-utils_rename-variable.patch -- Rename variable to fix build with gcc 15
Patch7: gdm-settings-utils_rename-variable.patch
# PATCH-FIX-UPSTREAM gdm-fix-wrong-path-gdm-config.patch bsc#1232669, glgo#GNOME/gdm!282 alynx.zhou@suse.com -- Add missing slash when gdm-config building dconf database path
Patch8: gdm-fix-wrong-path-gdm-config.patch
# PATCH-FIX-UPSTREAM gdm-plymouth-quit-wait.patch bsc#1243439 xwang@suse.com -- Disable plymouth-quit-wait.service
Patch9: gdm-plymouth-quit-wait.patch
# PATCH-FIX-OPENSUSE gdm-service-keytable.patch bsc#1248831 bsc#1250366 yfjiang@suse.com -- set KEYMAP to XkbLayout for GNOME
Patch10: gdm-service-keytable.patch
### NOTE: Keep please SLE-only patches at bottom (starting on 1000).
# PATCH-FIX-SLE gdm-disable-gnome-initial-setup.patch bnc#1067976 qzhao@suse.com -- Disable gnome-initial-setup runs before gdm, g-i-s will only serve for CJK people to choose the input-method after login.
Patch1000: gdm-disable-gnome-initial-setup.patch
BuildRequires: /usr/bin/dbus-run-session
BuildRequires: check-devel
# dconf and gnome-session-core are needed for directory ownership
BuildRequires: dconf
@@ -119,8 +112,8 @@ BuildRequires: pkgconfig(xdmcp)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xrandr)
Requires: %{_bindir}/dbus-run-session
Requires: %{name}-branding = %{version}
Requires: displaymanager-sysconfig
Requires: gdmflexiserver
Requires: gnome-session-core
Requires: gnome-settings-daemon
@@ -128,11 +121,9 @@ Requires: gnome-shell
# xdm package ships systemd display-manager service and other common scripts
# between display managers (bsc#1084655)
Requires: (gdm-xdm-integration or gdm-systemd)
%if !0%{?is_opensuse}
Suggests: gdm-systemd
%else
Suggests: gdm-xdm-integration
%endif
# whenever xdm is installed, we need to be sure to integrate into it
Requires: (gdm-xdm-integration if xdm)
Requires(post): dconf
Requires(pre): group(video)
Recommends: iso-codes
@@ -254,10 +245,6 @@ running display manager.
### NON-SLE patches start from 0 to 999
%autopatch -p1 -m 1 -M 999
%ifarch s390 s390x
%patch -P 0 -p1
%endif
### SLE and Leap only patches start at 1000
%if !0%{?is_opensuse} || 0%{?suse_version} <= 1600
## Use this when there's no need to skip patches.
@@ -274,7 +261,7 @@ running display manager.
-Dipv6=true \
-Dpam-mod-dir=%{_pam_moduledir} \
-Ddbus-sys=%{_datadir}/dbus-1/system.d \
-Ddistro=generic \
-Ddistro=generic \
-Dplymouth=enabled \
-Drun-dir=/run/gdm \
%if %{enable_split_authentication}
@@ -355,6 +342,8 @@ install -m 644 %{SOURCE11} %{buildroot}%{_sysusersdir}/gdm.conf
install -D -m 644 %{SOURCE20} %{buildroot}%{_prefix}/share/factory/var/lib/gdm/.pulse/default.pa
%endif
install -m 755 %{SOURCE21} %{buildroot}%{_libexecdir}/gdm/keytable
%find_lang %{name} %{?no_lang_C}
%fdupes -s %{buildroot}%{_datadir}/help
@@ -363,9 +352,10 @@ install -D -m 644 %{SOURCE20} %{buildroot}%{_prefix}/share/factory/var/lib/gdm/.
%pre -f gdm.pre
if [ $1 -gt 1 ]; then
if [ "$(systemctl is-enabled display-manager-legacy)" = "enabled" -a -x /usr/sbin/update-alternatives]; then
if [ "$(systemctl is-enabled display-manager-legacy)" = "enabled" -a -x /usr/sbin/update-alternatives ]; then
if [ "$(update-alternatives --query default-displaymanager | awk '/Value:/ {print $2}')" = "/usr/lib/X11/displaymanagers/gdm" ]; then
touch /var/tmp/migrate_to_gdm
mkdir -p /run/gdm
touch /run/gdm/migrate_to_gdm
fi
fi
fi
@@ -405,11 +395,11 @@ if [ "$(systemctl is-enabled display-manager-legacy)" = "enabled" ]; then
# display-manager is currently 'legacy mode' - if migration has already occured
# the above command would return 'disabled'
if [ -x /usr/sbin/update-alternatives ]; then
if [ "$(update-alternatives --query default-displaymanager | awk '/Value:/ {print $2}')" = "/usr/lib/X11/displaymanagers/gdm" ] || [ -f /var/tmp/migrate_to_gdm ]; then
if [ "$(update-alternatives --query default-displaymanager | awk '/Value:/ {print $2}')" = "/usr/lib/X11/displaymanagers/gdm" ] || [ -f /run/gdm/migrate_to_gdm ]; then
# the display-manager started by xdm is currently gdm - let's switch to the native service
# this only force-enables gdm whenever xdm was enabled AND it was uses as wrapper to start gdm
systemctl enable --force gdm.service
unlink /var/tmp/migrate_to_gdm
unlink /run/gdm/migrate_to_gdm || :
fi
fi
fi
@@ -456,16 +446,13 @@ fi
%_config_norepl %{_pam_vendordir}/gdm-password
%_config_norepl %{_pam_vendordir}/gdm-launch-environment
%{_datadir}/dbus-1/system.d/gdm.conf
%if 0%{?is_opensuse}
%{_udevrulesdir}/61-gdm.rules
%endif
%{_datadir}/polkit-1/rules.d/20-gdm.rules
%{_tmpfilesdir}/gdm.conf
%{_sysusersdir}/gdm.conf
%dir %{_prefix}/lib/systemd/logind.conf.d
%{_prefix}/lib/systemd/logind.conf.d/reserveVT.conf
%dir %{_userunitdir}/gnome-session@gnome-login.target.d
%{_userunitdir}/gnome-session@gnome-login.target.d/session.conf
%{_userunitdir}/gnome-session@gnome-login.target.d/gnome-login.session.conf
%files xdm-integration
# /etc/xinit.d/xdm integration
@@ -495,6 +482,7 @@ fi
%files systemd
%{_unitdir}/gdm.service
%{_libexecdir}/gdm/keytable
%files -n gdmflexiserver
%{_bindir}/gdmflexiserver

64
keytable.in Normal file
View File

@@ -0,0 +1,64 @@
#! /bin/bash
if [ $UID -ne 0 ]; then
echo "You need to be root to run this program"
exit 0
fi
vconsole_conf_file=/etc/vconsole.conf
previous_x11conf_file=/etc/X11/xorg.conf.d/90-keytable.conf
systemd_x11conf_file=/etc/X11/xorg.conf.d/00-keyboard.conf
keyboard_map_systemd=/usr/share/systemd/kbd-model-map
function setkeyboard {
echo "Command: localectl set-keymap $1 $2"
# xorg.conf.d snippet is only written if a valid snippet is already
# available, so create an us sample if neccessary
if [ ! -f $systemd_x11conf_file ]; then
localectl set-x11-keymap us
fi
# check systemd mapping
NEWKEYMAP=$(echo "$1" | sed "s/ $//" )
opts=$(grep -P "^$NEWKEYMAP\t" "$keyboard_map_systemd" | sed -re "s/[^\t]*//" -e "s/[\t]+/ /g" )
if [ -z "$opts" ]; then
echo "W: Cannot find mapping for $NEWKEYMAP in $keyboard_map_systemd"
echo "W: This will result in an 'us' X keyboard layout as default"
else
echo "I: Using systemd $keyboard_map_systemd mapping"
fi
localectl set-keymap $1 $2
if [ -f $systemd_x11conf_file ]; then
if [ -f $previous_x11conf_file ]; then
if [ $systemd_x11conf_file -nt $previous_x11conf_file ]; then
rm -f $previous_x11conf_file
fi
fi
exit 0
else
echo "$systemd_x11conf_file has not been created!"
fi
}
if [ -f $vconsole_conf_file ]; then
echo "$vconsole_conf_file available"
. $vconsole_conf_file
if [ ! -z $KEYMAP ]; then
if [ -z $XKBLAYOUT ]; then
echo "KEYMAP: $KEYMAP"
setkeyboard $KEYMAP $KEYMAP_TOGGLE
else
echo "XKBLAYOUT: $XKBLAYOUT"
echo "XKBLAYOUT is already set. Better don't touch X11 keyboard configuration."
exit 0
fi
else
echo "KEYMAP not set"
fi
else
echo "$vconsole_conf_file not available"
fi
echo "Keyboard layout could not be set"
exit 1