diff options
-rwxr-xr-x | support/download/bzr | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/support/download/bzr b/support/download/bzr index a8a8887151..e18b01f39c 100755 --- a/support/download/bzr +++ b/support/download/bzr @@ -32,6 +32,22 @@ _bzr() { eval ${BZR} "${@}" } +# --per-file-timestamps comes with bzr-2.2 (released August 2010), +# so only pass it if bzr is recent enough. We compute versions as: +# major*1000 + minor +bzr_min_version=2002 +bzr_version=$(($(bzr --version | + sed -r -n 's/^Bazaar \(bzr\) ([[:digit:]]+)\.([[:digit:]]+)\..*$/\1*1000+\2/p') + )) + +# If the version is recent enough, we can generate reproducible +# archives; otherwise, we just hope for the best (as it would +# be downloaded from the BR mirror if what we generate here does +# not match the hash we have for it). +if [ ${bzr_version} -ge ${bzr_min_version} ]; then + timestamp_opt="--per-file-timestamps" +fi + _bzr export ${verbose} --root="'${basename}/'" --format=tgz \ - --per-file-timestamps - "'${repo}'" -r "'${rev}'" \ + ${timestamp_opt} - "'${repo}'" -r "'${rev}'" \ >"${output}" |