mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-29 07:42:23 -05:00
aeed7218a9
* gnu/packages/bootloaders.scm (ipxe): New variable. * gnu/packages/patches/ipxe-reproducible-geniso.patch: New file … * gnu/local.mk (dist_patch_DATA): … add it. Co-authored-by: Tobias Geerinckx-Rice <me@tobias.gr> Co-authored-by: Brice Waegeneire <brice@waegenei.re> Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
77 lines
2 KiB
Diff
77 lines
2 KiB
Diff
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
|