include/download.mk: generate reproducable SCM tarballs
authorJo-Philipp Wich <jo@mein.io>
Tue, 4 Oct 2016 16:33:55 +0000 (18:33 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 4 Oct 2016 22:45:59 +0000 (00:45 +0200)
commit5d86dc791ef17b4a5733f836cbf82bb6647cd54a
tree854097505f2a06e1edf076a1c9685c87829fe797
parent8462ec31345fdf9adde0faeb5096cb56d3165905
include/download.mk: generate reproducable SCM tarballs

Apply a number of changes to the tarball generation in order to produce
identical files on different systems:

1) Use an explicit `gzip -cn` to avoid storing file mtime in the gzip header
2) Instruct `tar` to unconditionally use uid and gid 0 for archive members
3) Instruct `tar` to sort archive members by file name
4) For SCMs that do not preserve file modification times like Git or Mercurial,
   use the date of the last commit to the repository and pass it as `--mtime`
   value to `tar`

After these changes, locally produced tarballs generated from SCM checkouts
should be identical on any system, simplifying the mirroring of cache archives.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
include/download.mk