summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-04-17 12:48:06 +0200
committerLudovic Courtès <ludo@gnu.org>2020-04-17 23:18:32 +0200
commit1e7281108be5fc37daa4cc180e0effdeb4c1a960 (patch)
treee3e145de15685fa91a72e1e4f90ff8ee3463b02a
parent10c413685f13af12fa2bb34796db82e1f52b47af (diff)
downloadguix-1e7281108be5fc37daa4cc180e0effdeb4c1a960.tar.gz
services: account: Have 'user-processes' depend on 'user-homes'.
Until now, 'user-homes' happened to start right after 'user-processes'
and before services that depend on a home directory but the dependency
was not explicit.  This addresses it.

* gnu/system/shadow.scm (account-service-type): Extend
USER-PROCESSES-SERVICE-TYPE.
-rw-r--r--gnu/system/shadow.scm11
1 files changed, 7 insertions, 4 deletions
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index 42480e823c..a6f1d806cf 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -314,9 +314,7 @@ accounts among ACCOUNTS+GROUPS."
   ;;
   ;; XXX: We arrange for this service to stop right after it's done its job so
   ;; that 'guix system reconfigure' knows that it can reload it fearlessly
-  ;; (and thus create new home directories).  The cost of this hack is that
-  ;; there's a small window during which first-time logins could happen before
-  ;; the home directory has been created.
+  ;; (and thus create new home directories).
   (list (shepherd-service
          (requirement '(file-systems))
          (provision '(user-homes))
@@ -374,6 +372,11 @@ the /etc/skel directory for those."
                                           account-activation)
                        (service-extension shepherd-root-service-type
                                           account-shepherd-service)
+                       ;; Have 'user-processes' depend on 'user-homes' so that
+                       ;; daemons start after their home directory has been
+                       ;; created.
+                       (service-extension user-processes-service-type
+                                          (const '(user-homes)))
                        (service-extension etc-service-type
                                           etc-files)))))