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