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)