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 +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2020 Efraim Flashner @@ -314,9 +314,7 @@ (define accounts ;; ;; 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 @@ (define account-service-type 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)))))