aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)