diff options
Diffstat (limited to 'gnu/system')
-rw-r--r-- | gnu/system/vm.scm | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index c6ec25a895..04d84b5220 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -158,7 +158,9 @@ (references-graphs #f) (memory-size 256) (disk-image-format "qcow2") - (disk-image-size 'guess)) + (disk-image-size 'guess) + + (substitutable? #t)) "Evaluate EXP in a QEMU virtual machine running LINUX with INITRD (a derivation). The virtual machine runs with MEMORY-SIZE MiB of memory. In the virtual machine, EXP has access to FILE-SYSTEMS, which, by default, includes a @@ -175,7 +177,10 @@ based on the size of the closure of REFERENCES-GRAPHS. When REFERENCES-GRAPHS is true, it must be a list of file name/store path pairs, as for `derivation'. The files containing the reference graphs are -made available under the /xchg CIFS share." +made available under the /xchg CIFS share. + +SUBSTITUTABLE? determines whether the returned derivation should be marked as +substitutable." (define user-builder (program-file "builder-in-linux-vm" exp)) @@ -257,7 +262,8 @@ made available under the /xchg CIFS share." #:target target #:env-vars env-vars #:guile-for-build guile-for-build - #:references-graphs references-graphs))) + #:references-graphs references-graphs + #:substitutable? substitutable?))) (define (has-guix-service-type? os) "Return true if OS contains a service of the type GUIX-SERVICE-TYPE." @@ -277,7 +283,8 @@ made available under the /xchg CIFS share." bootloader (register-closures? (has-guix-service-type? os)) (inputs '()) - (grub-mkrescue-environment '())) + (grub-mkrescue-environment '()) + (substitutable? #t)) "Return a bootable, stand-alone iso9660 image. INPUTS is a list of inputs (as for packages)." @@ -348,6 +355,7 @@ INPUTS is a list of inputs (as for packages)." #:make-disk-image? #f #:single-file-output? #t #:references-graphs inputs + #:substitutable? substitutable? ;; Xorriso seems to be quite memory-hungry, so increase the VM's RAM size. #:memory-size 512)) @@ -367,7 +375,8 @@ INPUTS is a list of inputs (as for packages)." bootloader (register-closures? (has-guix-service-type? os)) (inputs '()) - copy-inputs?) + copy-inputs? + (substitutable? #t)) "Return a bootable, stand-alone QEMU image of type DISK-IMAGE-FORMAT (e.g., 'qcow2' or 'raw'), with a root partition of type FILE-SYSTEM-TYPE. Optionally, FILE-SYSTEM-LABEL can be specified as the volume name for the root @@ -495,7 +504,8 @@ system." #: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 #:key @@ -650,11 +660,15 @@ TYPE (one of 'iso9660 or 'dce). Return a UUID object." (name "disk-image") (file-system-type "ext4") (disk-image-size (* 900 (expt 2 20))) - (volatile? #t)) + (volatile? #t) + (substitutable? #t)) "Return the derivation of a disk image of DISK-IMAGE-SIZE bytes of the system described by OS. Said image can be copied on a USB stick as is. When VOLATILE? is true, the root file system is made volatile; this is useful -to USB sticks meant to be read-only." +to USB sticks meant to be read-only. + +SUBSTITUTABLE? determines whether the returned derivation should be marked as +substitutable." (define normalize-label ;; ISO labels are all-caps (case-insensitive), but since ;; 'find-partition-by-label' is case-sensitive, make it all-caps here. @@ -723,7 +737,8 @@ to USB sticks meant to be read-only." #:inputs `(("system" ,os) ("bootcfg" ,bootcfg)) #:grub-mkrescue-environment - '(("MKRESCUE_SED_MODE" . "mbr_hfs"))) + '(("MKRESCUE_SED_MODE" . "mbr_hfs")) + #:substitutable? substitutable?) (qemu-image #:name name #:os os #:bootcfg-drv bootcfg @@ -736,7 +751,8 @@ to USB sticks meant to be read-only." #:file-system-uuid uuid #:copy-inputs? #t #:inputs `(("system" ,os) - ("bootcfg" ,bootcfg)))))) + ("bootcfg" ,bootcfg)) + #:substitutable? substitutable?)))) (define* (system-qemu-image os #:key @@ -925,6 +941,7 @@ with '-virtfs' options for the host file systems listed in SHARED-FS." '()) "-no-reboot" + "-nic" "user,model=virtio-net-pci" "-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng" "-device" "virtio-rng-pci,rng=guixsd-vm-rng" |