Patchwork [5/6] gnu: Add efibootmgr.

login
register
mail settings
Submitter Marius Bakke
Date Nov. 5, 2016, 12:55 p.m.
Message ID <20161105125511.29383-6-mbakke@fastmail.com>
Download mbox | patch
Permalink /patch/17226/
State New
Headers show

Comments

Marius Bakke - Nov. 5, 2016, 12:55 p.m.
* gnu/packages/linux.scm (efibootmgr): New variable.
---
 gnu/packages/linux.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
Ludovic Courtès - Nov. 6, 2016, 9:52 p.m.
Marius Bakke <mbakke@fastmail.com> skribis:

> * gnu/packages/linux.scm (efibootmgr): New variable.

[...]

> +    (description
> +     "@code{efibootmgr} is a Linux user-space application to modify the
> +Intel Extensible Firmware Interface (EFI) Boot Manager.  This application
> +can create and destroy boot entries, change the boot order, change the next
> +running boot option, and more.")

s/Linux//

Otherwise LGTM, thanks!  :-)

Ludo’.

Patch

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 86e9ff5..5896410 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -3155,3 +3155,49 @@  interface to the UEFI variable facility.")
      (list license:lgpl2.1+
            (license:non-copyleft "file://src/crc32.c"
                                  "See src/crc32.c in the distribution.")))))
+
+(define-public efibootmgr
+  (package
+    (name "efibootmgr")
+    (version "14")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/rhinstaller/" name
+                                  "/releases/download/" version "/" name
+                                  "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1n3sydvpr6yl040hhf460k7mrxby7laqd9dqs6pq0js1hijc2zip"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; No tests.
+       #:make-flags
+       (list (string-append "prefix=" %output)
+             (string-append "libdir=" %output "/lib")
+             ;; Override CFLAGS to add efivar include directory.
+             (string-append "CFLAGS=-O2 -g -flto -I"
+                            (assoc-ref %build-inputs "efivar")
+                            "/include/efivar"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'branding
+           ;; Replace default loader path with something more familiar.
+           (lambda _
+             (substitute* "src/efibootmgr.c"
+               (("EFI\\\\\\\\redhat") ; Matches 'EFI\\redhat'.
+                "EFI\\\\gnu"))
+             #t))
+         (delete 'configure))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("efivar" ,efivar)
+       ("popt" ,popt)))
+    (home-page "https://github.com/rhinstaller/efibootmgr")
+    (synopsis "Modify the Extensible Firmware Interface (EFI) boot manager")
+    (description
+     "@code{efibootmgr} is a Linux user-space application to modify the
+Intel Extensible Firmware Interface (EFI) Boot Manager.  This application
+can create and destroy boot entries, change the boot order, change the next
+running boot option, and more.")
+    (license license:gpl2+)))