From 52c1b90a5a0c36d618b159233dcf7ba2a56737ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 28 May 2020 00:37:33 +0200 Subject: [PATCH] vm: 'qemu-image' preserves the cross-compilation target of the OS. * gnu/system/vm.scm (qemu-image)[preserve-target, inputs*]: New variables. In gexp, use INPUTS* instead of INPUTS. Wrap OS and BOOTCFG-DRV in 'preserve-target'. Pass INPUTS* instead of INPUTS as the #:references-graphs. --- gnu/system/vm.scm | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index c7767db9df..991ea2d837 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -317,6 +317,21 @@ (define schema (local-file (search-path %load-path "guix/store/schema.sql")))) + (define preserve-target + (if target + (lambda (obj) + (with-parameters ((%current-target-system target)) + obj)) + identity)) + + (define inputs* + (map (match-lambda + ((name thing) + `(,name ,(preserve-target thing))) + ((name thing output) + `(,name ,(preserve-target thing) ,output))) + inputs)) + (expression->derivation-in-linux-vm name (with-extensions gcrypt-sqlite3&co @@ -355,7 +370,7 @@ (define schema '#$(map (match-lambda ((name thing) thing) ((name thing output) `(,thing ,output))) - inputs))) + inputs*))) (set-path-environment-variable "PATH" '("bin" "sbin") inputs) @@ -367,7 +382,7 @@ (define schema #:closures graphs #:copy-closures? #$copy-inputs? #:register-closures? #$register-closures? - #:system-directory #$os + #:system-directory #$(preserve-target os) #:make-device-nodes #$(match device-nodes @@ -423,7 +438,7 @@ (define schema #:grub-efi grub-efi #:bootloader-package #+(bootloader-package bootloader) - #:bootcfg #$bootcfg-drv + #:bootcfg #$(preserve-target bootcfg-drv) #:bootcfg-location #$(bootloader-configuration-file bootloader) #:bootloader-installer @@ -432,7 +447,7 @@ (define schema #:make-disk-image? #t #:disk-image-size disk-image-size #:disk-image-format disk-image-format - #:references-graphs inputs + #:references-graphs inputs* #:substitutable? substitutable?)) (define* (system-docker-image os