Commit | Line | Data |
---|---|---|
aeed7218 VL |
1 | From 052d24d8217c51c572c2f6cbb4a687be2e8ba52d Mon Sep 17 00:00:00 2001 |
2 | From: Brice Waegeneire <brice@waegenei.re> | |
3 | Date: Fri, 5 Jun 2020 14:38:43 +0200 | |
4 | Subject: [PATCH] [geniso] Make it reproducible | |
5 | ||
6 | Some timestamps get embedded in the generated ISO, making it | |
7 | unreproducible so we overwrite those timestamps to be at the UNIX epoch. | |
8 | --- | |
9 | src/util/geniso | 24 +++++++++++++++++++++--- | |
10 | 1 file changed, 21 insertions(+), 3 deletions(-) | |
11 | ||
12 | diff --git a/src/util/geniso b/src/util/geniso | |
13 | index ff090d4a..e032ffb0 100755 | |
14 | --- a/src/util/geniso | |
15 | +++ b/src/util/geniso | |
16 | @@ -11,6 +11,13 @@ function help() { | |
17 | echo " -o FILE save iso image to file" | |
18 | } | |
19 | ||
20 | +function reset_timestamp() { | |
21 | + for f in "$1"/*; do | |
22 | + touch -t 197001010100 "$f" | |
23 | + done | |
24 | + touch -t 197001010100 "$1" | |
25 | +} | |
26 | + | |
27 | LEGACY=0 | |
28 | FIRST="" | |
29 | ||
30 | @@ -37,8 +44,9 @@ if [ -z "${OUT}" ]; then | |
31 | exit 1 | |
32 | fi | |
33 | ||
34 | -# There should either be mkisofs or the compatible genisoimage program | |
35 | -for command in genisoimage mkisofs; do | |
36 | +# There should either be mkisofs, xorriso or the compatible genisoimage | |
37 | +# program | |
38 | +for command in xorriso genisoimage mkisofs; do | |
39 | if ${command} --version >/dev/null 2>/dev/null; then | |
40 | mkisofs=(${command}) | |
41 | break | |
42 | @@ -46,8 +54,10 @@ for command in genisoimage mkisofs; do | |
43 | done | |
44 | ||
45 | if [ -z "${mkisofs}" ]; then | |
46 | - echo "${0}: mkisofs or genisoimage not found, please install or set PATH" >&2 | |
47 | + echo "${0}: mkisofs, xorriso or genisoimage not found, please install or set PATH" >&2 | |
48 | exit 1 | |
49 | +elif [ "$mkisofs" = "xorriso" ]; then | |
50 | + mkisofs+=(-as mkisofs) | |
51 | fi | |
52 | ||
53 | dir=$(mktemp -d bin/iso.dir.XXXXXX) | |
54 | @@ -115,6 +125,8 @@ case "${LEGACY}" in | |
55 | exit 1 | |
56 | fi | |
57 | ||
58 | + reset_timestamp "$dir" | |
59 | + | |
60 | # generate the iso image | |
61 | "${mkisofs[@]}" -b boot.img -output ${OUT} ${dir} | |
62 | ;; | |
63 | @@ -127,6 +139,12 @@ case "${LEGACY}" in | |
64 | cp ${LDLINUX_C32} ${dir} | |
65 | fi | |
66 | ||
67 | + reset_timestamp "$dir" | |
68 | + | |
69 | + if [ "${mkisofs[0]}" = "xorriso" ]; then | |
70 | + mkisofs+=(-isohybrid-mbr "$SYSLINUX_MBR_DISK_PATH") | |
71 | + fi | |
72 | + | |
73 | # generate the iso image | |
74 | "${mkisofs[@]}" -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -output ${OUT} ${dir} | |
75 | ||
76 | -- | |
77 | 2.26.2 |