summary refs log tree commit diff
path: root/gnu/system
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-09-09 23:27:00 +0200
committerLudovic Courtès <ludo@gnu.org>2016-09-09 23:54:43 +0200
commit44d5f54e31039d78f156bd9562dca293124eaa76 (patch)
tree2650e88b54721a2e50d3bd27019fac41bbdd8c78 /gnu/system
parenta9e5e92f940381e3a4ee828c6d8ff22a73067e17 (diff)
downloadguix-44d5f54e31039d78f156bd9562dca293124eaa76.tar.gz
system: grub: Allow arbitrary kernel file names in 'menu-entry'.
Fixes <http://bugs.gnu.org/20067>.
Reported by Tomáš Čech <sleep_walker@suse.cz>.

* gnu/system.scm (system-linux-image-file-name)
(operating-system-kernel-file): New procedures.
(operating-system-grub.cfg): Use 'operating-system-kernel-file' for the
'kernel' field of 'menu-entry'.
(operating-system-parameters-file): Likewise for the 'kernel' entry.
(read-boot-parameters): Adjust 'kernel' field so that it contains the
absolute file name of the image.
* gnu/system/grub.scm (grub-configuration-file)[linux-image-name]:
Remove.
[entry->gexp]: Assume LINUX is the absolute file name of the kernel
image.
* doc/guix.texi (GRUB Configuration): Add an example, and adjust
'kernel' field documentation accordingly.
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/grub.scm13
1 files changed, 3 insertions, 10 deletions
diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm
index aa93c0f454..4592747083 100644
--- a/gnu/system/grub.scm
+++ b/gnu/system/grub.scm
@@ -243,11 +243,6 @@ code."
 <grub-configuration> object, and where the store is available at STORE-FS, a
 <file-system> object.  OLD-ENTRIES is taken to be a list of menu entries
 corresponding to old generations of the system."
-  (define linux-image-name
-    (if (string-prefix? "mips" system)
-        "vmlinuz"
-        "bzImage"))
-
   (define all-entries
     (append entries (grub-configuration-menu-entries config)))
 
@@ -256,14 +251,12 @@ corresponding to old generations of the system."
      (($ <menu-entry> label linux arguments initrd)
       #~(format port "menuentry ~s {
   ~a
-  linux ~a/~a ~a
+  linux ~a ~a
   initrd ~a
 }~%"
                 #$label
-                #$(grub-root-search store-fs
-                                    #~(string-append #$linux "/"
-                                                     #$linux-image-name))
-                #$linux #$linux-image-name (string-join (list #$@arguments))
+                #$(grub-root-search store-fs linux)
+                #$linux (string-join (list #$@arguments))
                 #$initrd))))
 
   (mlet %store-monad ((sugar (eye-candy config store-fs system #~port)))