summary refs log tree commit diff
path: root/gnu/system/grub.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/system/grub.scm')
-rw-r--r--gnu/system/grub.scm20
1 files changed, 15 insertions, 5 deletions
diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm
index cde4b9e23a..58096429fe 100644
--- a/gnu/system/grub.scm
+++ b/gnu/system/grub.scm
@@ -144,15 +144,15 @@ denoting a file name."
                     (with-imported-modules '((gnu build svg))
                       #~(begin
                           ;; We need these two libraries.
-                          (add-to-load-path (string-append #$guile-rsvg
+                          (add-to-load-path (string-append #+guile-rsvg
                                                            "/share/guile/site/"
                                                            (effective-version)))
-                          (add-to-load-path (string-append #$guile-cairo
+                          (add-to-load-path (string-append #+guile-cairo
                                                            "/share/guile/site/"
                                                            (effective-version)))
 
                           (use-modules (gnu build svg))
-                          (svg->png #$svg #$output
+                          (svg->png #+svg #$output
                                     #:width #$width
                                     #:height #$height)))))
 
@@ -267,6 +267,16 @@ code."
         (#f
          #~(format #f "search --file --set ~a" #$file)))))
 
+(define (boot-parameters->menu-entry conf)
+  "Convert a <boot-parameters> instance to a corresponding <menu-entry>."
+  (menu-entry
+   (label (boot-parameters-label conf))
+   (device (boot-parameters-store-device conf))
+   (device-mount-point (boot-parameters-store-mount-point conf))
+   (linux (boot-parameters-kernel conf))
+   (linux-arguments (boot-parameters-kernel-arguments conf))
+   (initrd (boot-parameters-initrd conf))))
+
 (define* (grub-configuration-file config entries
                                   #:key
                                   (system (%current-system))
@@ -276,7 +286,7 @@ code."
 <file-system> object.  OLD-ENTRIES is taken to be a list of menu entries
 corresponding to old generations of the system."
   (define all-entries
-    (append entries
+    (append (map boot-parameters->menu-entry entries)
             (grub-configuration-menu-entries config)))
 
   (define entry->gexp
@@ -323,7 +333,7 @@ set timeout=~a~%"
             #$@(if (pair? old-entries)
                    #~((format port "
 submenu \"GNU system, old configurations...\" {~%")
-                      #$@(map entry->gexp old-entries)
+                      #$@(map entry->gexp (map boot-parameters->menu-entry old-entries))
                       (format port "}~%"))
                    #~()))))