Subject: [bug#37466] [WIP v6 3/4] gnu: Add heads-linuxboot.

From: Danny Milosavljevic <[email-masked]>
Date: Mon, 25 May 2020 00:32:09 +0200

* gnu/packages/heads.scm (heads-linuxboot): New variable.
---
 gnu/packages/heads.scm | 46 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/heads.scm b/gnu/packages/heads.scm
index 87ac871080..083a649783 100644
--- a/gnu/packages/heads.scm
+++ b/gnu/packages/heads.scm
@@ -599,3 +599,49 @@ done
 payload to provide a secure, flexible boot environment for laptops and
 servers.")
     (license license:gpl2+))))
+
+(define heads-linuxboot
+  (package
+    (inherit heads)
+    (name "heads-linuxboot")
+    (arguments
+     (substitute-keyword-arguments (package-arguments heads)
+      ((#:phases phases)
+       `(modify-phases ,phases
+          (add-before 'unpack-heads-packages 'unpack-linuxboot
+            (lambda* (#:key inputs #:allow-other-keys)
+               (mkdir-p "build")
+               (copy-recursively (assoc-ref inputs "linuxboot") "build/linuxboot-git")
+               (copy-recursively (assoc-ref inputs "edk2") "build/linuxboot-git/edk2")
+               (invoke "chmod" "-R" "u+w" "build/linuxboot-git")
+               (chmod "build/linuxboot-git/Makefile" #o664)
+               (substitute* "build/linuxboot-git/dxe/Makefile"
+                (("/usr/bin/") ""))
+               #t))))))
+    (native-inputs
+     `(("edk2"
+        ,(origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/linuxboot/edk2")
+                   (commit "UDK2018")
+                   (recursive? #t))) ; openssl
+             (file-name "edk2-checkout")
+             (sha256
+              (base32 "0crjx1hg1m5mir2qm96dbcc3glrnww3ni0bc9f370qmm337wzlhi"))))
+       ("libuuid" ,util-linux) ; TODO: Move to heads' internal dependencies (for edk2).
+       ("nasm" ,nasm) ; TODO: Move to heads' internal dependencies (for edk2).
+       ("python" ,python-2) ; TODO: Move to heads' internal dependencies (for edk2).
+       ("acpica" ,acpica) ; TODO: Move to heads' internal dependencies (for edk2).
+       ("file" ,file)
+       ("linuxboot"
+        ,(origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/osresearch/linuxboot.git")
+                   (commit "b5376a441e8e85cbf722e943bb8294958e87c784")
+                   (recursive? #t)))
+             (file-name "linuxboot-checkout")
+             (sha256
+              (base32 "1bdj4m9dvih9fhp5q5c6cp5sphzbpag5gp4bz1p8g9lqi49lb7av"))))
+       ,@(package-native-inputs heads)))))