Tarballs contain mtimes. They will not be reproducible if files have been generated or patched during build time. [[https://reproducible.debian.net/issues/timestamps_in_tarball_issue.html|Known affected packages]] = Detection = [[attachment:allegro4.4_4.4.2-5.debbindiff.html|Example debbindiff output]] = Work-around = Known yet. = Solutions = == --mtime == If indivdiual mtimes don't matter, then use the `--mtime` option: {{{ --mtime=DATE-OR-FILE set mtime for added files from DATE-OR-FILE }}} == --clamp-mtime == tar/1.28-1 in Debian supports the `--clamp-mtime` option which will only adjust files with a modification time later than the time specified with `--mtime`. {{{ SOURCE_DATE := $(shell dpkg-parsechangelog --show-field=Date) tar --clamp-mtime --mtime="$(SOURCE_DATE)" -cf archive.tar src }}} == Adjusting mtimes by modifying timestamps in disk == Use `find`, `xargs`, and `touch` to adjust file mtimes before `tar` is run. Example: {{{ SOURCE_DATE := $(shell dpkg-parsechangelog --show-field=Date) […] find '$(DIR)' -newermt '$(SOURCE_DATE)' -print0 | \ xargs -0r touch --no-dereference --date='$(SOURCE_DATE)' […] tar […] }}}