diff options
author | Timothy Sample <samplet@ngyro.com> | 2019-02-13 14:22:14 -0500 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-02-17 00:04:56 +0100 |
commit | e57c2adb2a7ed94610f4c35e8710bc1346199de6 (patch) | |
tree | 18dfef403e8b580c53693cc9b25998800997bde8 | |
parent | 7af417502ce2e1712c8fbb3f5169147f820f7871 (diff) | |
download | gnu-guix-e57c2adb2a7ed94610f4c35e8710bc1346199de6.tar gnu-guix-e57c2adb2a7ed94610f4c35e8710bc1346199de6.tar.gz |
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>
-rw-r--r-- | gnu/packages/gnome.scm | 9 | ||||
-rw-r--r-- | gnu/services/xorg.scm | 67 |
2 files changed, 39 insertions, 37 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2f99755933..21c61473c5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -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") diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 1efb275794..de5438e3fe 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -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)))) |