support/download: generate reproducible Bazaar archives
authorYann E. MORIN <yann.morin.1998@free.fr>
Sat, 2 Jan 2016 15:06:42 +0000 (16:06 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 3 Jan 2016 20:51:50 +0000 (21:51 +0100)
Similarly to what has previously been done for the Hg download backend,
instruct bzr to generate the archive on stdout, so that we can generate
reproducible archives.

When instructing bzr to generate the output file by itself, it uses a
temporary file that is then fed to gzip, which in turn stores the
timestamp of that file in the generated archive, whereas when the output
is generated on stdout, there is no timestamp, so the archive is then
reproducible.

Bizarely enough, we can tell 'bazaar' not to generate a bazaar in the
archive. Cool, uh? ;-]

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
support/download/bzr

index cec9ce8f3758d0dfc108465ece96bbcedeec664d..a8a8887151fda8a89a40b3537ccf33d4d4bf2794 100755 (executable)
@@ -32,4 +32,6 @@ _bzr() {
     eval ${BZR} "${@}"
 }
 
-_bzr export ${verbose} --root="'${basename}/'" --format=tgz "'${output}'" "'${repo}'" -r "'${rev}'"
+_bzr export ${verbose} --root="'${basename}/'" --format=tgz \
+    --per-file-timestamps - "'${repo}'" -r "'${rev}'" \
+    >"${output}"