gdm: 48.0 → 49.rc

https://gitlab.gnome.org/GNOME/gdm/-/compare/48.0...49.rc

Co-authored-by: Bobby Rong <rjl931189261@126.com>
Changelog-Reviewed-By: Jan Tojnar <jtojnar@gmail.com>
This commit is contained in:
Jan Tojnar
2025-11-03 10:50:04 +01:00
co-authored by Bobby Rong
parent 7a24e8bdb6
commit 23a2bfcf8a
3 changed files with 77 additions and 36 deletions
@@ -183,10 +183,44 @@ in
name = "gdm";
uid = config.ids.uids.gdm;
group = "gdm";
home = "/run/gdm";
description = "GDM user";
};
users.users.gdm-greeter = {
isSystemUser = true;
uid = 60578;
group = "gdm";
home = "/run/gdm";
};
users.users.gdm-greeter-1 = {
isSystemUser = true;
uid = 60579;
group = "gdm";
home = "/run/gdm-1";
};
users.users.gdm-greeter-2 = {
isSystemUser = true;
uid = 60580;
group = "gdm";
home = "/run/gdm-2";
};
users.users.gdm-greeter-3 = {
isSystemUser = true;
uid = 60581;
group = "gdm";
home = "/run/gdm-3";
};
users.users.gdm-greeter-4 = {
isSystemUser = true;
uid = 60582;
group = "gdm";
home = "/run/gdm-4";
};
users.groups.gdm.gid = config.ids.gids.gdm;
# GDM needs different xserverArgs, presumable because using wayland by default.
@@ -348,15 +382,15 @@ in
# GDM LFS PAM modules, adapted somehow to NixOS
security.pam.services = {
gdm-launch-environment.text = ''
auth required pam_succeed_if.so audit quiet_success user = gdm
auth required pam_succeed_if.so audit quiet_success user ingroup gdm
auth optional pam_permit.so
account required pam_succeed_if.so audit quiet_success user = gdm
account required pam_succeed_if.so audit quiet_success user ingroup gdm
account sufficient pam_unix.so
password required pam_deny.so
session required pam_succeed_if.so audit quiet_success user = gdm
session required pam_succeed_if.so audit quiet_success user ingroup gdm
session required pam_env.so conffile=/etc/pam/environment readenv=0
session optional ${config.systemd.package}/lib/security/pam_systemd.so
session optional pam_keyinit.so force revoke
+33 -30
View File
@@ -1,7 +1,8 @@
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
index 513b9733d..0c1c8007f 100644
--- a/daemon/gdm-local-display-factory.c
+++ b/daemon/gdm-local-display-factory.c
@@ -245,9 +245,9 @@ struct GdmDisplayServerConfiguration {
@@ -269,10 +269,10 @@ struct GdmDisplayServerConfiguration {
const char *session_type;
} display_server_configuration[] = {
#ifdef ENABLE_WAYLAND_SUPPORT
@@ -15,10 +16,10 @@ diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-facto
{ NULL, NULL, NULL },
};
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index fc5aef6ac..c61e0046b 100644
index 9568e963f..b1bc8800a 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -151,7 +151,7 @@ plymouth_is_running (void)
@@ -154,7 +154,7 @@ plymouth_is_running (void)
GError *error;
error = NULL;
@@ -27,7 +28,7 @@ index fc5aef6ac..c61e0046b 100644
NULL, NULL, &status, &error);
if (! res) {
g_debug ("Could not ping plymouth: %s", error->message);
@@ -169,7 +169,7 @@ plymouth_prepare_for_transition (void)
@@ -172,7 +172,7 @@ plymouth_prepare_for_transition (void)
GError *error;
error = NULL;
@@ -36,7 +37,7 @@ index fc5aef6ac..c61e0046b 100644
NULL, NULL, NULL, &error);
if (! res) {
g_warning ("Could not deactivate plymouth: %s", error->message);
@@ -184,7 +184,7 @@ plymouth_quit_with_transition (void)
@@ -187,7 +187,7 @@ plymouth_quit_with_transition (void)
GError *error;
error = NULL;
@@ -45,7 +46,7 @@ index fc5aef6ac..c61e0046b 100644
if (! res) {
g_warning ("Could not quit plymouth: %s", error->message);
g_error_free (error);
@@ -200,7 +200,7 @@ plymouth_quit_without_transition (void)
@@ -203,7 +203,7 @@ plymouth_quit_without_transition (void)
GError *error;
error = NULL;
@@ -54,30 +55,32 @@ index fc5aef6ac..c61e0046b 100644
if (! res) {
g_warning ("Could not quit plymouth: %s", error->message);
g_error_free (error);
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index a4c4b2dcf..67416b204 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -3193,16 +3193,16 @@ gdm_session_start_session (GdmSession *self,
*/
if (run_launcher) {
if (is_x11) {
- program = g_strdup_printf (LIBEXECDIR "/gdm-x-session %s\"dbus-run-session -- %s\"",
+ program = g_strdup_printf (LIBEXECDIR "/gdm-x-session %s\"@dbus@/bin/dbus-run-session --dbus-daemon=@dbus@/bin/dbus-daemon -- %s\"",
register_session ? "--register-session " : "",
self->selected_program);
} else {
- program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session %s\"dbus-run-session -- %s\"",
+ program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session %s\"@dbus@/bin/dbus-run-session --dbus-daemon=@dbus@/bin/dbus-daemon -- %s\"",
register_session ? "--register-session " : "",
self->selected_program);
}
} else {
- program = g_strdup_printf ("dbus-run-session -- %s",
+ program = g_strdup_printf ("@dbus@/bin/dbus-run-session --dbus-daemon=@dbus@/bin/dbus-daemon -- %s",
self->selected_program);
}
}
diff --git a/daemon/gdm-wayland-session.c b/daemon/gdm-wayland-session.c
index d0404d2c1..e916c2723 100644
--- a/daemon/gdm-wayland-session.c
+++ b/daemon/gdm-wayland-session.c
@@ -136,7 +136,7 @@ spawn_bus (State *state,
bus_address_fd_string = g_strdup_printf ("%d", BUS_ADDRESS_FILENO);
- g_ptr_array_add (arguments, "dbus-daemon");
+ g_ptr_array_add (arguments, "@dbus@/bin/dbus-daemon");
g_ptr_array_add (arguments, "--print-address");
g_ptr_array_add (arguments, bus_address_fd_string);
diff --git a/daemon/gdm-x-session.c b/daemon/gdm-x-session.c
index a998d1555..4fe50a2d0 100644
--- a/daemon/gdm-x-session.c
+++ b/daemon/gdm-x-session.c
@@ -463,7 +463,7 @@ spawn_bus (State *state,
bus_address_fd_string = g_strdup_printf ("%d", BUS_ADDRESS_FILENO);
- g_ptr_array_add (arguments, "dbus-daemon");
+ g_ptr_array_add (arguments, "@dbus@/bin/dbus-daemon");
g_ptr_array_add (arguments, "--print-address");
g_ptr_array_add (arguments, bus_address_fd_string);
diff --git a/data/gdm.service.in b/data/gdm.service.in
index 17e8a8de8..afc709778 100644
--- a/data/gdm.service.in
+6 -2
View File
@@ -44,7 +44,7 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "gdm";
version = "48.0";
version = "49.rc";
outputs = [
"out"
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "mirror://gnome/sources/gdm/${lib.versions.major finalAttrs.version}/gdm-${finalAttrs.version}.tar.xz";
hash = "sha256-G8Btr/CT7HteN+y0+S5do0dKGxugdu25FR7pZ9HDCt8=";
hash = "sha256-vQdduV2RbiXRhk/n0RSY8YpSiiMYDU4jotXwukRgyBY=";
};
mesonFlags = [
@@ -145,6 +145,10 @@ stdenv.mkDerivation (finalAttrs: {
# installed (mostly just because .passthru.tests can make use of it).
substituteInPlace meson.build \
--replace-fail "dconf_prefix = dconf_dep.get_variable(pkgconfig: 'prefix')" "dconf_prefix = gdm_prefix"
# Disable userdb dynamic users for now
substituteInPlace meson.build \
--replace-fail 'have_userdb = libsystemd_dep' 'have_userdb = false #'
'';
doInstallCheck = true;