diff options
Diffstat (limited to 'gnu/packages/bootloaders.scm')
-rw-r--r-- | gnu/packages/bootloaders.scm | 58 |
1 files changed, 51 insertions, 7 deletions
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index cadcc937e1..e988a47f09 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2019 nee <nee@cock.li> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -91,7 +92,9 @@ (sha256 (base32 "0zgp5m3hmc9jh8wpjx6czzkh5id2y8n1k823x2mjvm2sk6b28ag5")) - (patches (search-patches "grub-efi-fat-serial-number.patch")))) + (patches (search-patches + "grub-efi-fat-serial-number.patch" + "grub-verifiers-Blocklist-fallout-cleanup.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -152,11 +155,19 @@ ;; Depend on LVM2 for libdevmapper, used by 'grub-probe' and ;; 'grub-install' to recognize mapped devices (LUKS, etc.) - ("lvm2" ,lvm2) + ,@(if (member (or (%current-target-system) + (%current-system)) + (package-supported-systems lvm2)) + `(("lvm2" ,lvm2)) + '()) ;; Depend on mdadm, which is invoked by 'grub-probe' and 'grub-install' ;; to determine whether the root file system is RAID. - ("mdadm" ,mdadm) + ,@(if (member (or (%current-target-system) + (%current-system)) + (package-supported-systems mdadm)) + `(("mdadm" ,mdadm)) + '()) ;; Console-setup's ckbcomp is invoked by grub-kbdcomp. It is required ;; for generating alternative keyboard layouts. @@ -164,7 +175,11 @@ ;; Needed for ‘grub-mount’, the only reliable way to tell whether a given ;; file system will be readable by GRUB without rebooting. - ("fuse" ,fuse) + ,@(if (member (or (%current-target-system) + (%current-system)) + (package-supported-systems fuse)) + `(("fuse" ,fuse)) + '()) ("freetype" ,freetype) ;; ("libusb" ,libusb) @@ -196,7 +211,9 @@ ;; Dependencies for the test suite. The "real" QEMU is needed here, ;; because several targets are used. ("parted" ,parted) - ("qemu" ,qemu-minimal) + ,@(if (member (%current-system) (package-supported-systems qemu-minimal)) + `(("qemu" ,qemu-minimal)) + '()) ("xorriso" ,xorriso))) (home-page "https://www.gnu.org/software/grub/") (synopsis "GRand Unified Boot loader") @@ -210,6 +227,33 @@ menu to select one of the installed operating systems.") (license license:gpl3+) (properties '((cpe-name . "grub2"))))) +(define-public grub-minimal + (package + (inherit grub) + (name "grub-minimal") + (inputs + (fold alist-delete (package-inputs grub) + '("lvm2" "mdadm" "fuse" "console-setup"))) + (native-inputs + (fold alist-delete (package-native-inputs grub) + '("help2man" "texinfo" "parted" "qemu" "xorriso"))) + (arguments + `(#:configure-flags (list "PYTHON=true") + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-stuff + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (substitute* "grub-core/Makefile.in" + (("/bin/sh") (which "sh"))) + + ;; Make the font visible. + (copy-file (assoc-ref (or native-inputs inputs) + "unifont") + "unifont.bdf.gz") + (system* "gunzip" "unifont.bdf.gz") + + #t))) + #:tests? #f)))) + (define-public grub-efi (package (inherit grub) @@ -303,7 +347,7 @@ menu to select one of the installed operating systems.") ("perl" ,perl) ("python-2" ,python-2))) (inputs - `(("libuuid" ,util-linux) + `(("libuuid" ,util-linux "lib") ("mtools" ,mtools))) (arguments `(#:parallel-build? #f @@ -912,7 +956,7 @@ to Novena upstream, does not load u-boot.img from the first partition.") ("libyaml" ,libyaml) ("openssl" ,openssl) ("openssl:static" ,openssl "static") - ("util-linux" ,util-linux))) + ("util-linux" ,util-linux "lib"))) (home-page "https://dev.chromium.org/chromium-os/chromiumos-design-docs/verified-boot") (synopsis "ChromiumOS verified boot utilities") |