services: gdm: Remove etc service.

* gnu/packages/gnome.scm (gdm)[arguments]: Update pre-configure phase to
make GDM get the configuration file path from an environment variable.
* gnu/services/xorg.scm (gdm-etc-service): Remove function.
(gdm-configuration-file): New function.
(gdm-shepherd-service): Set GDM_CUSTOM_CONF before invoking GDM.
(gdm-service-type)[extensions]: Remove etc-service-type extension.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Timothy Sample 2019-02-13 14:22:14 -05:00 committed by Ludovic Courtès
parent 7af417502c
commit e57c2adb2a
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 39 additions and 37 deletions

View File

@ -32,7 +32,7 @@
;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -5462,6 +5462,9 @@ libxml2.")
;; processes.
"gdm_session_set_environment_variable (self, \"GDM_X_SERVER\",\n"
" g_getenv (\"GDM_X_SERVER\"));\n"
;; Propagate the GDM_CUSTOM_CONF environment variable.
"gdm_session_set_environment_variable (self, \"GDM_CUSTOM_CONF\",\n"
" g_getenv (\"GDM_CUSTOM_CONF\"));\n"
;; FIXME: Really glib should be declaring XDG_CONFIG_DIRS as a
;; variable, but it doesn't do that right now. Anyway
;; /run/current-system/profile/share/gnome-session/sessions/gnome.desktop
@ -5481,7 +5484,9 @@ libxml2.")
;; Look for custom GDM conf in /run/current-system.
(substitute* '("common/gdm-settings-desktop-backend.c")
(("GDM_CUSTOM_CONF")
"\"/run/current-system/etc/gdm/custom.conf\""))
(string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
" ? g_getenv(\"GDM_CUSTOM_CONF\")"
" : GDM_CUSTOM_CONF)")))
;; Use service-supplied path to X.
(substitute* '("daemon/gdm-server.c")
(("\\(X_SERVER X_SERVER_ARG_FORMAT")

View File

@ -2,7 +2,7 @@
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -633,38 +633,34 @@ makes the good ol' XlockMore usable."
(x-server gdm-configuration-x-server
(default (xorg-wrapper))))
(define (gdm-etc-service config)
(define gdm-configuration-file
(mixed-text-file "gdm-custom.conf"
"[daemon]\n"
"#User=gdm\n"
"#Group=gdm\n"
(if (gdm-configuration-auto-login? config)
(string-append
"AutomaticLoginEnable=true\n"
"AutomaticLogin="
(or (gdm-configuration-default-user config)
(error "missing default user for auto-login"))
"\n")
(string-append
"AutomaticLoginEnable=false\n"
"#AutomaticLogin=\n"))
"#TimedLoginEnable=false\n"
"#TimedLogin=\n"
"#TimedLoginDelay=0\n"
"#InitialSetupEnable=true\n"
;; Enable me once X is working.
"WaylandEnable=false\n"
"\n"
"[debug]\n"
"#Enable=true\n"
"\n"
"[security]\n"
"#DisallowTCP=true\n"
"#AllowRemoteAutoLogin=false\n"))
`(("gdm" ,(file-union
"gdm"
`(("custom.conf" ,gdm-configuration-file))))))
(define (gdm-configuration-file config)
(mixed-text-file "gdm-custom.conf"
"[daemon]\n"
"#User=gdm\n"
"#Group=gdm\n"
(if (gdm-configuration-auto-login? config)
(string-append
"AutomaticLoginEnable=true\n"
"AutomaticLogin="
(or (gdm-configuration-default-user config)
(error "missing default user for auto-login"))
"\n")
(string-append
"AutomaticLoginEnable=false\n"
"#AutomaticLogin=\n"))
"#TimedLoginEnable=false\n"
"#TimedLogin=\n"
"#TimedLoginDelay=0\n"
"#InitialSetupEnable=true\n"
;; Enable me once X is working.
"WaylandEnable=false\n"
"\n"
"[debug]\n"
"#Enable=true\n"
"\n"
"[security]\n"
"#DisallowTCP=true\n"
"#AllowRemoteAutoLogin=false\n"))
(define (gdm-pam-service config)
"Return a PAM service for @command{gdm}."
@ -698,6 +694,9 @@ makes the good ol' XlockMore usable."
"/bin/gdm"))
#:environment-variables
(list (string-append
"GDM_CUSTOM_CONF="
#$(gdm-configuration-file config))
(string-append
"GDM_X_SERVER="
#$(gdm-configuration-x-server config))
;; XXX: GDM requires access to a handful of
@ -719,8 +718,6 @@ makes the good ol' XlockMore usable."
(const %gdm-accounts))
(service-extension pam-root-service-type
gdm-pam-service)
(service-extension etc-service-type
gdm-etc-service)
(service-extension dbus-root-service-type
(compose list
gdm-configuration-gdm))))