aboutsummaryrefslogtreecommitdiff
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 bfc9d6ffab..b920be9ea2 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")
@@ -119,6 +129,7 @@
(inputs
`(;; ("lvm2" ,lvm2)
("gettext" ,gettext-minimal)
+ ("mdadm" ,mdadm)
("freetype" ,freetype)
;; ("libusb" ,libusb)
;; ("fuse" ,fuse)