Package: guix-patches;
Reported by: Timothy Sample <samplet <at> ngyro.com>
Date: Wed, 13 Feb 2019 19:11:02 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Message #8 received at 34470 <at> debbugs.gnu.org (full text, mbox):
From: Timothy Sample <samplet <at> ngyro.com> To: 34470 <at> debbugs.gnu.org Cc: Timothy Sample <samplet <at> ngyro.com> Subject: [PATCH 1/8] services: gdm: Remove etc service. Date: Wed, 13 Feb 2019 14:22:14 -0500
* 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. --- gnu/packages/gnome.scm | 9 ++++-- 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 367d5de16c..b2c7aa60cc 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -32,7 +32,7 @@ ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit <at> riseup.net> ;;; Copyright © 2018 Vasile Dumitrascu <va511e <at> yahoo.com> ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling <at> bjoernhoefling.de> -;;; Copyright © 2018 Timothy Sample <samplet <at> ngyro.com> +;;; Copyright © 2018, 2019 Timothy Sample <samplet <at> ngyro.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -5380,6 +5380,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 @@ -5399,7 +5402,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 <at> igalia.com> ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo <at> gnu.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong <at> gmail.com> -;;; Copyright © 2018 Timothy Sample <samplet <at> ngyro.com> +;;; Copyright © 2018, 2019 Timothy Sample <samplet <at> 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)))) -- 2.20.1
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.