diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-06-20 09:44:27 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-06-20 10:05:18 +0200 |
commit | 661c237b4d8e670e73ea946179a94a3b956bb90e (patch) | |
tree | 12090ee441330c21df3e1978c1475ac8c4bc3e79 | |
parent | 80f755090db5d67af5a44992d11799cb65792c3e (diff) | |
download | guix-661c237b4d8e670e73ea946179a94a3b956bb90e.tar.gz |
services: boot: Reverse the order of boot expressions.
* gnu/services.scm (compute-boot-script): Reverse MEXPS. * gnu/system.scm (essential-services): Reverse order of %SHEPHERD-ROOT-SERVICE, %ACTIVATION-SERVICE, and CLEANUP-SERVICE-TYPE.
-rw-r--r-- | gnu/services.scm | 6 | ||||
-rw-r--r-- | gnu/system.scm | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/gnu/services.scm b/gnu/services.scm index 81af4df849..3162c6ba05 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -334,7 +334,11 @@ containing the given entries." (extend system-derivation))) (define (compute-boot-script _ mexps) - (mlet %store-monad ((gexps (sequence %store-monad mexps))) + ;; Reverse MEXPS so that extensions appear in the boot script in the right + ;; order. That is, user extensions would come first, and extensions added + ;; by 'essential-services' (e.g., running shepherd) are guaranteed to come + ;; last. + (mlet %store-monad ((gexps (sequence %store-monad (reverse mexps)))) (gexp->file "boot" ;; Clean up and activate the system, then spawn shepherd. #~(begin #$@gexps)))) diff --git a/gnu/system.scm b/gnu/system.scm index d367307a24..7c51c4da97 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -470,13 +470,13 @@ a container or that of a \"bare metal\" system." (cons* (service system-service-type entries) %boot-service - ;; %SHEPHERD-ROOT-SERVICE must come first so that the gexp that + ;; %SHEPHERD-ROOT-SERVICE must come last so that the gexp that ;; execs shepherd comes last in the boot script (XXX). Likewise, - ;; the cleanup service must come last so that its gexp runs before + ;; the cleanup service must come first so that its gexp runs before ;; activation code. - %shepherd-root-service - %activation-service (service cleanup-service-type #f) + %activation-service + %shepherd-root-service (pam-root-service (operating-system-pam-services os)) (account-service (append (operating-system-accounts os) |