summary refs log tree commit diff
path: root/gnu/packages/grub.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/grub.scm')
-rw-r--r--gnu/packages/grub.scm15
1 files changed, 13 insertions, 2 deletions
diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
index 302fd0e1ae..ffce1bf86b 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/grub.scm
@@ -98,13 +98,23 @@
     (arguments
      '(;; Two warnings: suggest braces, signed/unsigned comparison.
        #:configure-flags '("--disable-werror")
+
        #:phases (modify-phases %standard-phases
-                  (add-after
-                   'unpack 'patch-stuff
+                  (add-after 'unpack 'patch-stuff
                    (lambda* (#:key inputs #:allow-other-keys)
                      (substitute* "grub-core/Makefile.in"
                        (("/bin/sh") (which "sh")))
 
+                     ;; Give the absolute file name of 'mdadm', used to
+                     ;; determine the root file system when it's a RAID
+                     ;; device.  Failing to do that, 'grub-probe' silently
+                     ;; fails if 'mdadm' is not in $PATH.
+                     (substitute* "grub-core/osdep/linux/getroot.c"
+                       (("argv\\[0\\] = \"mdadm\"")
+                        (string-append "argv[0] = \""
+                                       (assoc-ref inputs "mdadm")
+                                       "/sbin/mdadm\"")))
+
                      ;; Make the font visible.
                      (copy-file (assoc-ref inputs "unifont") "unifont.bdf.gz")
                      (system* "gunzip" "unifont.bdf.gz")
@@ -118,6 +128,7 @@
                      #t)))))
     (inputs
      `(;; ("lvm2" ,lvm2)
+       ("mdadm" ,mdadm)
        ("gettext" ,gnu-gettext)
        ("freetype" ,freetype)
        ;; ("libusb" ,libusb)