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.
This commit is contained in:
Ludovic Courtès 2018-06-20 09:44:27 +02:00
parent 80f755090d
commit 661c237b4d
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 9 additions and 5 deletions

View File

@ -334,7 +334,11 @@ containing the given entries."
(extend system-derivation))) (extend system-derivation)))
(define (compute-boot-script _ mexps) (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" (gexp->file "boot"
;; Clean up and activate the system, then spawn shepherd. ;; Clean up and activate the system, then spawn shepherd.
#~(begin #$@gexps)))) #~(begin #$@gexps))))

View File

@ -470,13 +470,13 @@ a container or that of a \"bare metal\" system."
(cons* (service system-service-type entries) (cons* (service system-service-type entries)
%boot-service %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, ;; 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. ;; activation code.
%shepherd-root-service
%activation-service
(service cleanup-service-type #f) (service cleanup-service-type #f)
%activation-service
%shepherd-root-service
(pam-root-service (operating-system-pam-services os)) (pam-root-service (operating-system-pam-services os))
(account-service (append (operating-system-accounts os) (account-service (append (operating-system-accounts os)