From 3bff0ec79a49d24901ea36362872713cbe4ac40f Mon Sep 17 00:00:00 2001 From: Jane Rachinger Date: Fri, 10 Oct 2025 16:40:20 +0200 Subject: [PATCH] systemd/gdm: upgrade to 49.0.1 This notably disabled support for x11 backends. Let's see what breaks. This also adds sysuser config for creating the gdm-greeter user (see gdm@088c7c2). Co-authored-by: Clayton Craft Part-of: --- ...e-bin-touch-instead-of-usr-bin-touch.patch | 63 ------------------- extra-repos/systemd/gdm/APKBUILD | 30 +++------ extra-repos/systemd/gdm/Xsession | 2 - extra-repos/systemd/gdm/disable-userdb.patch | 13 ++++ extra-repos/systemd/gdm/gcc15.patch | 52 --------------- extra-repos/systemd/gdm/gdm.post-deinstall | 1 + extra-repos/systemd/gdm/gdm.pre-install | 5 +- extra-repos/systemd/gdm/gdm.sysusers | 2 + 8 files changed, 28 insertions(+), 140 deletions(-) delete mode 100644 extra-repos/systemd/gdm/0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch delete mode 100644 extra-repos/systemd/gdm/Xsession create mode 100644 extra-repos/systemd/gdm/disable-userdb.patch delete mode 100644 extra-repos/systemd/gdm/gcc15.patch diff --git a/extra-repos/systemd/gdm/0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch b/extra-repos/systemd/gdm/0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch deleted file mode 100644 index 64a895b46..000000000 --- a/extra-repos/systemd/gdm/0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch +++ /dev/null @@ -1,63 +0,0 @@ -TODO: remove me when usr-bin-merge happened ---- -From a12b01f4f71d7ca1ed528ea11f99520c10b0d93c Mon Sep 17 00:00:00 2001 -From: Newbyte -Date: Tue, 14 Mar 2023 19:37:17 +0100 -Subject: [PATCH 1/2] DOWNSTREAM: use /bin/touch and /bin/rm instead of /usr/bin/touch and /ust/bin/rm - -as that's the path here in Alpine. ---- - data/61-gdm.rules.in | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/data/61-gdm.rules.in b/data/61-gdm.rules.in -index a4f841bdf..481c5b4dd 100644 ---- a/data/61-gdm.rules.in -+++ b/data/61-gdm.rules.in -@@ -2,13 +2,13 @@ - ACTION!="bind", ACTION!="add", GOTO="gdm_pci_device_end" - - # cirrus --ATTR{vendor}=="0x1013", ATTR{device}=="0x00b8", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" -+ATTR{vendor}=="0x1013", ATTR{device}=="0x00b8", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" - # virtio --ATTR{vendor}=="0x1af4", ATTR{device}=="0x1050", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" -+ATTR{vendor}=="0x1af4", ATTR{device}=="0x1050", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" - # qxl --ATTR{vendor}=="0x1b36", ATTR{device}=="0x0100", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" -+ATTR{vendor}=="0x1b36", ATTR{device}=="0x0100", RUN+="/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" - # vga --ATTR{vendor}=="0x1234", ATTR{device}=="0x1111", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" -+ATTR{vendor}=="0x1234", ATTR{device}=="0x1111", RUN+="/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" - - # disable Wayland on Hi1710 chipsets - ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", GOTO="gdm_disable_wayland" -@@ -21,7 +21,7 @@ - SUBSYSTEM!="drm", GOTO="gdm_hardware_gpu_end" - DRIVERS=="simple-framebuffer", GOTO="gdm_hardware_gpu_end" - IMPORT{parent}="GDM_MACHINE_HAS_VIRTUAL_GPU" --ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hardware-gpu" -+ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}!="1", RUN+="/bin/touch /run/udev/gdm-machine-has-hardware-gpu" - LABEL="gdm_hardware_gpu_end" - - # The vendor nvidia driver has multiple modules that need to be loaded before GDM can make an -@@ -30,7 +30,7 @@ - KERNEL!="nvidia", GOTO="gdm_nvidia_end" - SUBSYSTEM!="module", GOTO="gdm_nvidia_end" - ACTION!="add", GOTO="gdm_nvidia_end" --RUN+="/usr/bin/touch /run/udev/gdm-machine-has-vendor-nvidia-driver" -+RUN+="/bin/touch /run/udev/gdm-machine-has-vendor-nvidia-driver" - - # Import nvidia kernel parameters - IMPORT{program}="/bin/sh -c \"sed -e 's/: /=/g' -e 's/\([^[:upper:]]\)\([[:upper:]]\)/\1_\2/g' -e 's/[[:lower:]]/\U&/g' -e 's/^/NVIDIA_/' /proc/driver/nvidia/params\"" -@@ -59,8 +59,8 @@ - SUBSYSTEM!="drm", GOTO="gdm_hybrid_graphics_check_end" - ACTION!="add", GOTO="gdm_hybrid_graphics_check_end" - IMPORT{program}="/bin/sh -c \"echo GDM_NUMBER_OF_GRAPHICS_CARDS=`ls -1d /sys/class/drm/card[0-9] | wc -l`\"" --ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}=="1", RUN+="/usr/bin/rm -f /run/udev/gdm-machine-has-hybrid-graphics" --ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hybrid-graphics" -+ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}=="1", RUN+="/bin/rm -f /run/udev/gdm-machine-has-hybrid-graphics" -+ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}!="1", RUN+="/bin/touch /run/udev/gdm-machine-has-hybrid-graphics" - LABEL="gdm_hybrid_graphics_check_end" - - # Disable wayland in situation where we're in a guest with a virtual gpu and host passthrough gpu diff --git a/extra-repos/systemd/gdm/APKBUILD b/extra-repos/systemd/gdm/APKBUILD index 9fdb2db87..836ef0727 100644 --- a/extra-repos/systemd/gdm/APKBUILD +++ b/extra-repos/systemd/gdm/APKBUILD @@ -1,9 +1,9 @@ -# Forked from Alpine for systemd support +# Forked from Alpine for systemd support and dropping x11 pkgname=gdm -pkgver=99948.0 -_pkgver=48.0 -pkgrel=5 +pkgver=99949.0.1 +_pkgver=49.0.1 +pkgrel=0 pkgdesc="GNOME display manager" url="https://wiki.gnome.org/Projects/GDM" # blocked by gnome-shell @@ -42,10 +42,8 @@ makedepends=" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $pkgname-systemd" options="!check" # Causes circular dep with gnome-shell source="https://download.gnome.org/sources/gdm/${_pkgver%%.*}/gdm-$_pkgver.tar.xz - 0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch 0003-DOWNSTREAM-pam-rename-common-to-base.patch - Xsession - gcc15.patch + disable-userdb.patch gdm.sysusers " install="gdm.pre-install gdm.post-deinstall" @@ -61,6 +59,7 @@ build() { -Dlibaudit=disabled \ -Dsystemdsystemunitdir=/usr/lib/systemd/system \ -Dsystemduserunitdir=/usr/lib/systemd/user \ + -Dx11-support=false \ . output meson compile -C output } @@ -68,15 +67,6 @@ build() { package() { DESTDIR="$pkgdir" meson install --no-rebuild -C output -# install -Dm644 /dev/stdin usr/lib/sysusers.d/gdm.conf <= 257') ++ have_userdb = false + + # Our range is documented at https://systemd.io/UIDS-GIDS/ + greeter_uid_min = systemd_dep.get_variable('greeter_uid_min', default_value: '60578') diff --git a/extra-repos/systemd/gdm/gcc15.patch b/extra-repos/systemd/gdm/gcc15.patch deleted file mode 100644 index c73a0dc54..000000000 --- a/extra-repos/systemd/gdm/gcc15.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 2fbc2ac50b9f143eb594e5f77a8051222ffbd2c9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -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 - diff --git a/extra-repos/systemd/gdm/gdm.post-deinstall b/extra-repos/systemd/gdm/gdm.post-deinstall index 87df60f84..c53f07be2 100644 --- a/extra-repos/systemd/gdm/gdm.post-deinstall +++ b/extra-repos/systemd/gdm/gdm.post-deinstall @@ -1,6 +1,7 @@ #!/bin/sh deluser gdm 2>/dev/null +deluser gdm-greeter 2>/dev/null delgroup gdm 2>/dev/null exit 0 diff --git a/extra-repos/systemd/gdm/gdm.pre-install b/extra-repos/systemd/gdm/gdm.pre-install index dc411fa25..9993969f0 100644 --- a/extra-repos/systemd/gdm/gdm.pre-install +++ b/extra-repos/systemd/gdm/gdm.pre-install @@ -1,6 +1,7 @@ #!/bin/sh -addgroup -S -g 32 gdm 2>/dev/null -adduser -S -D -H -h /var/lib/gdm -s /sbin/nologin -G gdm -g gdm -u 32 gdm 2>/dev/null +addgroup -S gdm 2>/dev/null +adduser -S -D -H -h /var/lib/gdm -s /sbin/nologin -G gdm -g gdm gdm 2>/dev/null +adduser -S -D -H -h /var/lib/gdm-greeter -s /sbin/nologin -G gdm -g gdm gdm-greeter 2>/dev/null exit 0 diff --git a/extra-repos/systemd/gdm/gdm.sysusers b/extra-repos/systemd/gdm/gdm.sysusers index 78a16304a..a8b7af2e1 100644 --- a/extra-repos/systemd/gdm/gdm.sysusers +++ b/extra-repos/systemd/gdm/gdm.sysusers @@ -1 +1,3 @@ u gdm 42 "GNOME Display Manager" /var/lib/gdm +u gdm-greeter 43 "GNOME Display Manager" /var/lib/gdm-greeter +m gdm-greeter gdm