aboutsummaryrefslogtreecommitdiff
path: root/gnu/system/vm.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/system/vm.scm')
-rw-r--r--gnu/system/vm.scm26
1 files changed, 13 insertions, 13 deletions
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 069ac3093a..c491336ccb 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -341,18 +341,21 @@ with the host."
(graphic? #t))
"Return a derivation that builds a script to run a virtual machine image of
OS that shares its store with the host."
- (let* ((initrd (qemu-initrd #:mounts `((9p "store" ,(%store-prefix)))
- #:volatile-root? #t))
- (os (operating-system (inherit os) (initrd initrd))))
+ (define initrd
+ (qemu-initrd #:mounts `((9p "store" ,(%store-prefix)))
+ #:volatile-root? #t))
+
+ (mlet* %store-monad
+ ((os -> (operating-system (inherit os) (initrd initrd)))
+ (os-drv (operating-system-derivation os))
+ (initrd initrd)
+ (image (system-qemu-image/shared-store os)))
(define builder
- (mlet %store-monad ((image (system-qemu-image/shared-store os))
- (qemu (package-file qemu
+ (mlet %store-monad ((qemu (package-file qemu
"bin/qemu-system-x86_64"))
(bash (package-file bash "bin/sh"))
(kernel (package-file (operating-system-kernel os)
- "bzImage"))
- (initrd initrd)
- (os-drv (operating-system-derivation os)))
+ "bzImage")))
(return `(let ((out (assoc-ref %outputs "out")))
(call-with-output-file out
(lambda (port)
@@ -371,17 +374,14 @@ exec " ,qemu " -enable-kvm -no-reboot -net nic,model=virtio \
(chmod out #o555)
#t))))
- (mlet %store-monad ((image (system-qemu-image/shared-store os))
- (initrd initrd)
- (qemu (package->derivation qemu))
+ (mlet %store-monad ((qemu (package->derivation qemu))
(bash (package->derivation bash))
- (os (operating-system-derivation os))
(builder builder))
(derivation-expression "run-vm.sh" builder
#:inputs `(("qemu" ,qemu)
("image" ,image)
("bash" ,bash)
("initrd" ,initrd)
- ("os" ,os))))))
+ ("os" ,os-drv))))))
;;; vm.scm ends here