Ludovic Courtès writes: > Marius Bakke skribis: > >> Leo Famulari writes: >> >>> On Sat, Nov 05, 2016 at 12:55:11PM +0000, Marius Bakke wrote: >>>> * gnu/packages/grub.scm (grub-efi): New variable. >>>> --- >>>> gnu/packages/grub.scm | 21 +++++++++++++++++++++ >>>> 1 file changed, 21 insertions(+) >>>> >>>> diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm >>>> index ffce1bf..e06216f 100644 >>>> --- a/gnu/packages/grub.scm >>>> +++ b/gnu/packages/grub.scm >>>> @@ -157,3 +157,24 @@ on the same computer; upon booting the computer, the user is presented with a >>>> menu to select one of the installed operating systems.") >>>> (license gpl3+) >>>> (properties '((cpe-name . "grub2"))))) >>>> + >>>> +(define-public grub-efi >>>> + (package >>>> + (inherit grub) >>>> + (name "grub-efi") >>>> + (synopsis (string-append (package-synopsis grub) " (UEFI version)")) >>>> + (inputs >>>> + `(("efibootmgr" ,efibootmgr) >>>> + ,@(package-inputs grub))) >>>> + (arguments >>>> + #:tests? #f ; FIXME: 40 failures, 24 skipped, 17 passed. >>> >>> Does this package work for you? >> >> Oops, not sure what went wrong when fixing up this package for >> publishing. Updated patch attached. > > I think Leo was asking whether you could get a bootable system with it. Yes, I'm using this right now, on top of the recent changes to "guix system" :) There are a couple of other changes necessary for proper UEFI support: the grub-install command needs "--efi-directory=" and optionally "--bootloader-id=GNU" (I use these as well, but did not publish them, since I haven't tested it on a BIOS system yet, and they probably need to be conditional somehow). >> From 940c03c7dcddec019e27f6eb1470aeab4db57799 Mon Sep 17 00:00:00 2001 >> From: Marius Bakke >> Date: Thu, 20 Oct 2016 17:26:52 +0100 >> Subject: [PATCH] gnu: Add grub-efi. >> >> * gnu/packages/grub.scm (grub-efi): New variable. > > [...] > >> + (name "grub-efi") >> + (synopsis (string-append (package-synopsis grub) " (UEFI version)")) > > Please use a literal string for ‘synopsis’; use of ‘string-append’ like > this prevents i18n. > >> + `(#:tests? #f ; FIXME: 40 failures, 24 skipped, 17 passed. > > It would be good to investigate, especially if the tests pass in the > ‘grub’ package. > > Also, what’s the rationale for making ‘grub-efi’ separate instead of > incorporating the changes in ‘grub’ proper? Are there issues around the > portability of ‘efibootmgr’, or an increased closure size? This is a good point. The only difference with "--with-platform=efi" is that another directory is created in place of the i386-pc directory. It is perfectly possible to build multiple platforms and copying the platform-specific stuff to $out/lib -- grub will pick the correct platform at runtime. This is what the Gentoo ebuild does. I'll give this a shot and send an updated patch later this week.