guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

12/13: gnu: ipxe: Use G-expression.


From: guix-commits
Subject: 12/13: gnu: ipxe: Use G-expression.
Date: Sat, 7 Jan 2023 15:14:32 -0500 (EST)

mbakke pushed a commit to branch master
in repository guix.

commit b435f631a6a8f396c6c466f1d85e0736f5c3032d
Author: Marius Bakke <marius@gnu.org>
AuthorDate: Sat Jan 7 20:36:29 2023 +0100

    gnu: ipxe: Use G-expression.
    
    * gnu/packages/bootloaders.scm (ipxe)[arguments]: Convert to G-expression.
    While at it, remove trailing #t's and label usage.
---
 gnu/packages/bootloaders.scm | 169 +++++++++++++++++++++----------------------
 1 file changed, 83 insertions(+), 86 deletions(-)

diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 029672721f..3dc5815898 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2016-2018, 2021-2022 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2016-2018, 2021-2023 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
 ;;; Copyright © 2017, 2018, 2020, 2021, 2022 Efraim Flashner 
<efraim@flashner.co.il>
@@ -1522,97 +1522,94 @@ order to add a suitable bootloader menu entry.")
                   "1pkf1n1c0rdlzfls8fvjvi1sd9xjd9ijqlyz3wigr70ijcv6x8i9"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:modules ((guix build utils)
+       (list
+        #:modules `((guix build utils)
                     (guix build gnu-build-system)
                     (guix base32)
                     (ice-9 string-fun)
                     (ice-9 regex)
                     (rnrs bytevectors))
-         #:imported-modules ((guix base32)
+        #:imported-modules `((guix base32)
                              ,@%gnu-build-system-modules)
-         #:make-flags
-         ;; XXX: 'BUILD_ID' is used to determine when another ROM in the
-         ;; system contains identical code in order to save space within the
-         ;; legacy BIOS option ROM area, which is extremely limited in size.
-         ;; It is supposed to be collision-free across all ROMs, to do so we
-         ;; use the truncated output hash of the package.
-         (let ((build-id
-                (lambda (out)
-                  (let* ((nix-store (string-append
-                                     (or (getenv "NIX_STORE") "/gnu/store")
-                                     "/"))
-                         (filename
-                          (string-replace-substring out nix-store ""))
-                         (hash (match:substring (string-match "[0-9a-z]{32}"
-                                                              filename)))
-                         (bv (nix-base32-string->bytevector hash)))
-                    (format #f "0x~x"
-                            (bytevector-u32-ref bv 0 (endianness big))))))
-               (out (assoc-ref %outputs "out"))
-               (syslinux (assoc-ref %build-inputs "syslinux")))
-           (list "ECHO_E_BIN_ECHO=echo"
-                 "ECHO_E_BIN_ECHO_E=echo -e"
-
-                 ;; cdrtools' mkisofs will silently ignore a missing 
isolinux.bin!
-                 ;; Luckily xorriso is more strict.
-                 (string-append "ISOLINUX_BIN=" syslinux
-                                "/share/syslinux/isolinux.bin")
-                 (string-append "SYSLINUX_MBR_DISK_PATH=" syslinux
-                                "/share/syslinux/isohdpfx.bin")
-
-                 ;; Build reproducibly.
-                 (string-append "BUILD_ID_CMD=echo -n " (build-id out))
-                 (string-append "BUILD_TIMESTAMP=" ,timestamp)
-                 "everything"))
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'enter-source-directory
-             (lambda _ (chdir "src") #t))
-           (add-after 'enter-source-directory 'set-version
-             (lambda _
-               ;; When not building from a git checkout, iPXE encodes the
-               ;; version as "1.0.0+".  Use the package version instead.
-               (substitute* "Makefile"
-                 (("^VERSION[[:blank:]]+=.*")
-                  (string-append "VERSION = " ,(package-version this-package)
-                                 "-guix\n")))))
-           (add-after 'enter-source-directory 'set-options
-             (lambda _
-               (substitute* "config/general.h"
-                 (("^//(#define PING_CMD.*)" _ uncommented) uncommented)
-                 (("^//(#define IMAGE_TRUST_CMD.*)" _ uncommented)
-                  uncommented)
-                 (("^#undef.*(DOWNLOAD_PROTO_HTTPS.*)" _ option)
-                  (string-append "#define " option))
-                 (("^#undef.*(DOWNLOAD_PROTO_NFS.*)" _ option)
-                  (string-append "#define " option)))
-               #t))
-           (delete 'configure)          ; no configure script
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (ipxe (string-append out "/lib/ipxe"))
-                      (exts-re
-                       "\\.(efi|efirom|iso|kkpxe|kpxe|lkrn|mrom|pxe|rom|usb)$")
-                      (dirs '("bin" "bin-i386-linux" "bin-x86_64-pcbios"
-                              "bin-x86_64-efi" "bin-x86_64-linux" 
"bin-i386-efi"))
-                      (files (apply append
-                                    (map (lambda (dir)
-                                           (find-files dir exts-re)) dirs))))
-                 (for-each (lambda (file)
-                             (let* ((subdir (dirname file))
-                                    (fn (basename file))
-                                    (tgtsubdir (cond
-                                                ((string=? "bin" subdir) "")
-                                                ((string-prefix? "bin-" subdir)
-                                                 (string-drop subdir 4)))))
-                               (install-file file
-                                             (string-append ipxe "/" 
tgtsubdir))))
-                           files))
-               #t))
-           (add-after 'install 'leave-source-directory
-             (lambda _ (chdir "..") #t)))
-         #:tests? #f))                  ; no test suite
+        #:make-flags
+        ;; XXX: 'BUILD_ID' is used to determine when another ROM in the
+        ;; system contains identical code in order to save space within the
+        ;; legacy BIOS option ROM area, which is extremely limited in size.
+        ;; It is supposed to be collision-free across all ROMs, to do so we
+        ;; use the truncated output hash of the package.
+        #~(let ((build-id
+                 (lambda (out)
+                   (let* ((nix-store (string-append
+                                      (or (getenv "NIX_STORE") "/gnu/store")
+                                      "/"))
+                          (filename
+                           (string-replace-substring out nix-store ""))
+                          (hash (match:substring (string-match "[0-9a-z]{32}"
+                                                               filename)))
+                          (bv (nix-base32-string->bytevector hash)))
+                     (format #f "0x~x"
+                             (bytevector-u32-ref bv 0 (endianness big))))))
+                (syslinux #$(this-package-native-input "syslinux")))
+            (list "ECHO_E_BIN_ECHO=echo"
+                  "ECHO_E_BIN_ECHO_E=echo -e"
+
+                  ;; cdrtools' mkisofs will silently ignore a missing 
isolinux.bin!
+                  ;; Luckily xorriso is more strict.
+                  (string-append "ISOLINUX_BIN=" syslinux
+                                 "/share/syslinux/isolinux.bin")
+                  (string-append "SYSLINUX_MBR_DISK_PATH=" syslinux
+                                 "/share/syslinux/isohdpfx.bin")
+
+                  ;; Build reproducibly.
+                  (string-append "BUILD_ID_CMD=echo -n " (build-id #$output))
+                  (string-append "BUILD_TIMESTAMP=" #$timestamp)
+                  "everything"))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'enter-source-directory
+              (lambda _ (chdir "src")))
+            (add-after 'enter-source-directory 'set-version
+              (lambda _
+                ;; When not building from a git checkout, iPXE encodes the
+                ;; version as "1.0.0+".  Use the package version instead.
+                (substitute* "Makefile"
+                  (("^VERSION[[:blank:]]+=.*")
+                   (string-append "VERSION = " #$(package-version this-package)
+                                  "-guix\n")))))
+            (add-after 'enter-source-directory 'set-options
+              (lambda _
+                (substitute* "config/general.h"
+                  (("^//(#define PING_CMD.*)" _ uncommented) uncommented)
+                  (("^//(#define IMAGE_TRUST_CMD.*)" _ uncommented)
+                   uncommented)
+                  (("^#undef.*(DOWNLOAD_PROTO_HTTPS.*)" _ option)
+                   (string-append "#define " option))
+                  (("^#undef.*(DOWNLOAD_PROTO_NFS.*)" _ option)
+                   (string-append "#define " option)))))
+            (delete 'configure)         ; no configure script
+            (replace 'install
+              (lambda _
+                (let* ((ipxe (string-append #$output "/lib/ipxe"))
+                       (exts-re
+                        
"\\.(efi|efirom|iso|kkpxe|kpxe|lkrn|mrom|pxe|rom|usb)$")
+                       (dirs '("bin" "bin-i386-linux" "bin-x86_64-pcbios"
+                               "bin-x86_64-efi" "bin-x86_64-linux" 
"bin-i386-efi"))
+                       (files (apply append
+                                     (map (lambda (dir)
+                                            (find-files dir exts-re)) dirs))))
+                  (for-each (lambda (file)
+                              (let* ((subdir (dirname file))
+                                     (fn (basename file))
+                                     (tgtsubdir (cond
+                                                 ((string=? "bin" subdir) "")
+                                                 ((string-prefix? "bin-" 
subdir)
+                                                  (string-drop subdir 4)))))
+                                (install-file file
+                                              (string-append ipxe "/" 
tgtsubdir))))
+                            files))))
+            (add-after 'install 'leave-source-directory
+              (lambda _ (chdir ".."))))
+        #:tests? #f))                  ; no test suite
       (native-inputs
        (list perl syslinux xorriso))
       (home-page "https://ipxe.org";)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]