summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-03-09 14:13:29 +0200
committerEfraim Flashner <efraim@flashner.co.il>2023-03-09 15:10:16 +0200
commit4f4e4abd3ac3552cbf8596a50b5dade8d111571f (patch)
treea86ef356c941944369db2db76cd7f25a2b6941a6
parente22a6ed8f82eb094242a3c4c723f7ab7635a4976 (diff)
downloadguix-4f4e4abd3ac3552cbf8596a50b5dade8d111571f.tar.gz
gnu: ipxe: Update to 1.21.1-1.9e1f7a3.
* gnu/packages/bootloaders.scm (ipxe): Update to 1.21.1-1.9e1f7a3.
[source]: Remove patch.
[arguments]: Add phase to skip 1 i386 firmware file. Move setting
syslinux path from make-flags to phases.
* gnu/packages/patches/ipxe-reproducible-geniso.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/bootloaders.scm46
-rw-r--r--gnu/packages/patches/ipxe-reproducible-geniso.patch77
3 files changed, 28 insertions, 96 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 53a09f79cd..97d96f1573 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1347,7 +1347,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/intel-xed-fix-nondeterminism.patch	\
   %D%/packages/patches/intltool-perl-compatibility.patch	\
   %D%/packages/patches/iputils-libcap-compat.patch		\
-  %D%/packages/patches/ipxe-reproducible-geniso.patch	        \
   %D%/packages/patches/irrlicht-use-system-libs.patch		\
   %D%/packages/patches/irrlicht-link-against-needed-libs.patch	\
   %D%/packages/patches/isl-0.11.1-aarch64-support.patch	\
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index ee47a9fad7..ac269807be 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1710,20 +1710,21 @@ order to add a suitable bootloader menu entry.")
   ;;
   ;; TODO: Bump this timestamp at each modifications of the package (not only
   ;; for updates) by running: date +%s.
-  (let ((timestamp "1671715380"))
+  (let ((timestamp "1678285400")
+        (commit "9e1f7a3659071004f4b8c76f2593da6287f0d575")
+        (revision "1"))
     (package
       (name "ipxe")
-      (version "1.21.1")
+      (version (git-version "1.21.1" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
                       (url "https://github.com/ipxe/ipxe")
-                      (commit (string-append "v" version))))
+                      (commit commit)))
                 (file-name (git-file-name name version))
-                (patches (search-patches "ipxe-reproducible-geniso.patch"))
                 (sha256
                  (base32
-                  "1pkf1n1c0rdlzfls8fvjvi1sd9xjd9ijqlyz3wigr70ijcv6x8i9"))))
+                  "1fp4bgwzy923m11dkkhk9dik7al7shzmmpqhp339z786z8bjzmkb"))))
       (build-system gnu-build-system)
       (arguments
        (list
@@ -1757,15 +1758,6 @@ order to add a suitable bootloader menu entry.")
             (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.
-                  #$@(if (or (target-x86-64?) (target-x86?))
-                         '((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)
@@ -1792,6 +1784,24 @@ order to add a suitable bootloader menu entry.")
                    (string-append "#define " option))
                   (("^#undef.*(DOWNLOAD_PROTO_NFS.*)" _ option)
                    (string-append "#define " option)))))
+            ;; It is not entirely clear why these fail to compile.
+            (add-after 'enter-source-directory 'skip-i386-tap-linux
+              (lambda _
+                (substitute* "Makefile"
+                  (("bin-i386-linux/tap.linux") "")
+                  (("bin-i386-linux/tests.linux") ""))))
+            #$@(if (target-x86?)
+                 #~((add-after 'enter-source-directory 'set-syslinux-path
+                      ;; cdrtools' mkisofs will silently ignore a missing isolinux.bin!
+                      ;; Luckily xorriso is more strict.
+                      (lambda* (#:key inputs #:allow-other-keys)
+                        (substitute* "util/genfsimg"
+                          (("\t/usr/lib/syslinux " all)
+                           (string-append
+                             "\t" #$(this-package-native-input "syslinux")
+                             "/share/syslinux \\\n"
+                             all))))))
+                 #~())
             (delete 'configure)         ; no configure script
             (replace 'install
               (lambda _
@@ -1817,10 +1827,10 @@ order to add a suitable bootloader menu entry.")
               (lambda _ (chdir ".."))))
         #:tests? #f))                  ; no test suite
       (native-inputs
-       (append (if (or (target-x86-64?) (target-x86?))
-                   ;; Syslinux only supports i686 and x86_64.
-                   (list syslinux)
-                   '())
+       (append (if (target-x86?)
+                 ;; Syslinux only supports i686 and x86_64.
+                 (list syslinux)
+                 '())
                (list perl xorriso)))
       (home-page "https://ipxe.org")
       (synopsis "PXE-compliant network boot firmware")
diff --git a/gnu/packages/patches/ipxe-reproducible-geniso.patch b/gnu/packages/patches/ipxe-reproducible-geniso.patch
deleted file mode 100644
index ff6aa1da94..0000000000
--- a/gnu/packages/patches/ipxe-reproducible-geniso.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 052d24d8217c51c572c2f6cbb4a687be2e8ba52d Mon Sep 17 00:00:00 2001
-From: Brice Waegeneire <brice@waegenei.re>
-Date: Fri, 5 Jun 2020 14:38:43 +0200
-Subject: [PATCH] [geniso] Make it reproducible
-
-Some timestamps get embedded in the generated ISO, making it
-unreproducible so we overwrite those timestamps to be at the UNIX epoch.
----
- src/util/geniso | 24 +++++++++++++++++++++---
- 1 file changed, 21 insertions(+), 3 deletions(-)
-
-diff --git a/src/util/geniso b/src/util/geniso
-index ff090d4a..e032ffb0 100755
---- a/src/util/geniso
-+++ b/src/util/geniso
-@@ -11,6 +11,13 @@ function help() {
- 	echo " -o FILE  save iso image to file"
- }
- 
-+function reset_timestamp() {
-+	for f in "$1"/*; do
-+		touch -t 197001010100 "$f"
-+	done
-+	touch -t 197001010100 "$1"
-+}
-+
- LEGACY=0
- FIRST=""
- 
-@@ -37,8 +44,9 @@ if [ -z "${OUT}" ]; then
- 	exit 1
- fi
- 
--# There should either be mkisofs or the compatible genisoimage program
--for command in genisoimage mkisofs; do
-+# There should either be mkisofs, xorriso or the compatible genisoimage
-+# program
-+for command in xorriso genisoimage mkisofs; do
- 	if ${command} --version >/dev/null 2>/dev/null; then
- 		mkisofs=(${command})
- 		break
-@@ -46,8 +54,10 @@ for command in genisoimage mkisofs; do
- done
- 
- if [ -z "${mkisofs}" ]; then
--	echo "${0}: mkisofs or genisoimage not found, please install or set PATH" >&2
-+	echo "${0}: mkisofs, xorriso or genisoimage not found, please install or set PATH" >&2
- 	exit 1
-+elif [ "$mkisofs" = "xorriso" ]; then
-+	 mkisofs+=(-as mkisofs)
- fi
- 
- dir=$(mktemp -d bin/iso.dir.XXXXXX)
-@@ -115,6 +125,8 @@ case "${LEGACY}" in
- 			exit 1
- 		fi
- 
-+		reset_timestamp "$dir"
-+
- 		# generate the iso image
- 		"${mkisofs[@]}" -b boot.img -output ${OUT} ${dir}
- 		;;
-@@ -127,6 +139,12 @@ case "${LEGACY}" in
- 			cp ${LDLINUX_C32} ${dir}
- 		fi
- 
-+		reset_timestamp "$dir"
-+
-+		if [ "${mkisofs[0]}" = "xorriso" ]; then
-+			mkisofs+=(-isohybrid-mbr "$SYSLINUX_MBR_DISK_PATH")
-+		fi
-+
- 		# generate the iso image
- 		"${mkisofs[@]}" -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -output ${OUT} ${dir}
- 
--- 
-2.26.2