Archived
1
0
Fork 0

services: gdm: Use ‘make-forkexec-constructor’.

* gnu/services/xorg.scm (gdm-shepherd-service): Use
‘make-forkexec-constructor’ directly.

Change-Id: I4ede4c99996cea4421316411cf8d887d70ce4253
This commit is contained in:
Ludovic Courtès 2024-04-28 23:41:50 +02:00
parent ae36d514aa
commit 72432080ad
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2013-2017, 2019-2020, 2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013-2017, 2019-2020, 2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com> ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@ -1146,45 +1146,43 @@ argument.")))
(documentation "Xorg display server (GDM)") (documentation "Xorg display server (GDM)")
(provision '(xorg-server)) (provision '(xorg-server))
(requirement '(dbus-system pam user-processes host-name udev elogind)) (requirement '(dbus-system pam user-processes host-name udev elogind))
(start #~(lambda () (start #~(make-forkexec-constructor
(fork+exec-command '(#$(file-append (gdm-configuration-gdm config) "/bin/gdm"))
(list #$(file-append (gdm-configuration-gdm config) #:environment-variables
"/bin/gdm")) (list #$@(if (gdm-configuration-auto-suspend? config)
#:environment-variables #~()
(list #$@(if (gdm-configuration-auto-suspend? config) #~("DCONF_PROFILE=/etc/dconf/profile/gdm"))
#~() (string-append "GDM_CUSTOM_CONF=" #$config-file)
#~("DCONF_PROFILE=/etc/dconf/profile/gdm")) (string-append
(string-append "GDM_CUSTOM_CONF=" #$config-file) "GDM_DBUS_DAEMON="
(string-append #$(gdm-configuration-dbus-daemon config))
"GDM_DBUS_DAEMON=" (string-append
#$(gdm-configuration-dbus-daemon config)) "GDM_X_SERVER="
(string-append #$(xorg-wrapper
"GDM_X_SERVER=" (gdm-configuration-xorg config)))
#$(xorg-wrapper (string-append
(gdm-configuration-xorg config))) "GDM_X_SESSION="
(string-append #$(gdm-configuration-x-session config))
"GDM_X_SESSION=" (string-append
#$(gdm-configuration-x-session config)) "XDG_DATA_DIRS="
(string-append ((lambda (ls) (string-join ls ":"))
"XDG_DATA_DIRS=" (map (lambda (path)
((lambda (ls) (string-join ls ":")) (string-append path "/share"))
(map (lambda (path) ;; XXX: Remove gnome-shell below when GDM
(string-append path "/share")) ;; can depend on GNOME Shell directly.
;; XXX: Remove gnome-shell below when GDM (cons #$gnome-shell
;; can depend on GNOME Shell directly. '#$(gdm-configuration-gnome-shell-assets
(cons #$gnome-shell config)))))
'#$(gdm-configuration-gnome-shell-assets ;; Add XCURSOR_PATH so that mutter can find its
config))))) ;; cursors. gdm doesn't login so doesn't source
;; Add XCURSOR_PATH so that mutter can find its ;; the corresponding line in /etc/profile.
;; cursors. gdm doesn't login so doesn't source "XCURSOR_PATH=/run/current-system/profile/share/icons"
;; the corresponding line in /etc/profile. (string-append
"XCURSOR_PATH=/run/current-system/profile/share/icons" "GDK_PIXBUF_MODULE_FILE="
(string-append #$gnome-shell "/" #$%gdk-pixbuf-loaders-cache-file)
"GDK_PIXBUF_MODULE_FILE=" (string-append
#$gnome-shell "/" #$%gdk-pixbuf-loaders-cache-file) "GDM_WAYLAND_SESSION="
(string-append #$(gdm-configuration-wayland-session config)))))
"GDM_WAYLAND_SESSION="
#$(gdm-configuration-wayland-session config))))))
(stop #~(make-kill-destructor)) (stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action config-file))) (actions (list (shepherd-configuration-action config-file)))
(respawn? #t)))) (respawn? #t))))