vm: Use 'let-system'.

* gnu/system/vm.scm (expression->derivation-in-linux-vm)[check]: New macro.
[builder]: Use 'let-system' and 'check' instead of referencing
'%current-system' and '%current-target-system'.
This commit is contained in:
Ludovic Courtès 2020-05-15 22:23:21 +02:00
parent 300a54bb98
commit 502f609d05
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -199,6 +199,10 @@ (define loader
(sync)
(reboot))))
(define-syntax-rule (check predicate)
(let-system (system target)
(predicate (or target system))))
(let ((initrd (or initrd
(base-initrd file-systems
#:on-error 'backtrace
@ -229,7 +233,8 @@ (define builder
(graphs '#$(match references-graphs
(((graph-files . _) ...) graph-files)
(_ #f)))
(target #$(or (%current-target-system) (%current-system)))
(target #$(let-system (system target)
(or target system)))
(size #$(if (eq? 'guess disk-image-size)
#~(+ (* 70 (expt 2 20)) ;ESP
(estimated-partition-size graphs))
@ -244,12 +249,8 @@ (define builder
#:memory-size #$memory-size
#:make-disk-image? #$make-disk-image?
#:single-file-output? #$single-file-output?
;; FIXME: target-arm32? and
;; target-aarch64? may not operate on the
;; right system/target values. Rewrite
;; using let-system when available.
#:target-arm32? #$(target-arm32?)
#:target-aarch64? #$(target-aarch64?)
#:target-arm32? #$(check target-arm32?)
#:target-aarch64? #$(check target-aarch64?)
#:disk-image-format #$disk-image-format
#:disk-image-size size
#:references-graphs graphs))))))