summary refs log tree commit diff
path: root/gnu/system/vm.scm
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2017-05-09 10:52:02 +0200
committerMathieu Othacehe <m.othacehe@gmail.com>2017-05-16 14:41:01 +0200
commit9121ce553d267e9fdd4c6b9a268ce9d8677dd234 (patch)
tree4d8b16f6d7c7b01104c62900c46500dc661514b3 /gnu/system/vm.scm
parentb09a8da4a2e50845a297e041762f3ff9e649c047 (diff)
downloadguix-9121ce553d267e9fdd4c6b9a268ce9d8677dd234.tar.gz
bootloader: Adapt vm to new bootloader API.
* gnu/build/install.scm (install-boot-config): New procedure.
  (install-grub): Move to (gnu bootloader grub).
* gnu/build/vm.scm (register-bootcfg-root): Rename register-grub.cfg-root and
  adjust accordingly.
  (initialize-hard-disk): Takes a bootloader-package, bootcfg, bootcfg-location and
  bootloader-installer procedure. Adjust accordingly.
* gnu/system/vm.scm (qemu-image): Adjust to initialize-hard-disk.
  (system-disk-image, system-qemu-image, system-qemu-image/shared-store):
  Adjust to qemu-image.
Diffstat (limited to 'gnu/system/vm.scm')
-rw-r--r--gnu/system/vm.scm36
1 files changed, 25 insertions, 11 deletions
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 080014cde4..2ee5c2b1e7 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -46,6 +46,7 @@
                 #:select (%guile-static-stripped))
   #:use-module (gnu packages admin)
 
+  #:use-module (gnu bootloader)
   #:use-module (gnu system shadow)
   #:use-module (gnu system pam)
   #:use-module (gnu system linux-initrd)
@@ -176,8 +177,9 @@ made available under the /xchg CIFS share."
                      (disk-image-format "qcow2")
                      (file-system-type "ext4")
                      file-system-label
-                     os-derivation
-                     grub-configuration
+                     os-drv
+                     bootcfg-drv
+                     bootloader
                      (register-closures? #t)
                      (inputs '())
                      copy-inputs?)
@@ -201,7 +203,7 @@ the image."
                       (guix build utils))
 
          (let ((inputs
-                '#$(append (list qemu parted grub e2fsprogs)
+                '#$(append (list qemu parted e2fsprogs)
                            (map canonical-package
                                 (list sed grep coreutils findutils gawk))
                            (if register-closures? (list guix) '())))
@@ -223,7 +225,7 @@ the image."
                                #:closures graphs
                                #:copy-closures? #$copy-inputs?
                                #:register-closures? #$register-closures?
-                               #:system-directory #$os-derivation))
+                               #:system-directory #$os-drv))
                   (partitions (list (partition
                                      (size #$(- disk-image-size
                                                 (* 10 (expt 2 20))))
@@ -233,7 +235,13 @@ the image."
                                      (initializer initialize)))))
              (initialize-hard-disk "/dev/vda"
                                    #:partitions partitions
-                                   #:grub.cfg #$grub-configuration)
+                                   #:bootloader-package
+                                   #$(bootloader-package bootloader)
+                                   #:bootcfg #$bootcfg-drv
+                                   #:bootcfg-location
+                                   #$(bootloader-configuration-file bootloader)
+                                   #:bootloader-installer
+                                   #$(bootloader-installer bootloader))
              (reboot)))))
    #:system system
    #:make-disk-image? #t
@@ -287,8 +295,10 @@ to USB sticks meant to be read-only."
     (mlet* %store-monad ((os-drv   (operating-system-derivation os))
                          (bootcfg  (operating-system-bootcfg os)))
       (qemu-image #:name name
-                  #:os-derivation os-drv
-                  #:grub-configuration bootcfg
+                  #:os-drv os-drv
+                  #:bootcfg-drv bootcfg
+                  #:bootloader (bootloader-configuration-bootloader
+                                (operating-system-bootloader os))
                   #:disk-image-size disk-image-size
                   #:disk-image-format "raw"
                   #:file-system-type file-system-type
@@ -330,8 +340,10 @@ of the GNU system as described by OS."
     (mlet* %store-monad
         ((os-drv      (operating-system-derivation os))
          (bootcfg     (operating-system-bootcfg os)))
-      (qemu-image  #:os-derivation os-drv
-                   #:grub-configuration bootcfg
+      (qemu-image  #:os-drv os-drv
+                   #:bootcfg-drv bootcfg
+                   #:bootloader (bootloader-configuration-bootloader
+                                 (operating-system-bootloader os))
                    #:disk-image-size disk-image-size
                    #:file-system-type file-system-type
                    #:inputs `(("system" ,os-drv)
@@ -429,8 +441,10 @@ bootloader refers to: OS kernel, initrd, bootloader data, etc."
     ;; BOOTCFG and all its dependencies, including the output of OS-DRV.
     ;; This is more than needed (we only need the kernel, initrd, GRUB for its
     ;; font, and the background image), but it's hard to filter that.
-    (qemu-image #:os-derivation os-drv
-                #:grub-configuration bootcfg
+    (qemu-image #:os-drv os-drv
+                #:bootcfg-drv bootcfg
+                #:bootloader (bootloader-configuration-bootloader
+                              (operating-system-bootloader os))
                 #:disk-image-size disk-image-size
                 #:inputs (if full-boot?
                              `(("bootcfg" ,bootcfg))