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.
This commit is contained in:
Efraim Flashner 2023-03-09 14:13:29 +02:00
parent e22a6ed8f8
commit 4f4e4abd3a
No known key found for this signature in database
GPG Key ID: 41AAE7DCCA3D8351
3 changed files with 28 additions and 96 deletions

View File

@ -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 \

View File

@ -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")

View File

@ -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