Tarballs contain mtimes. They will not be reproducible if files have been generated or patched during build time.

Known affected packages


Example debbindiff output


Known yet.



If indivdiual mtimes don't matter, then use the --mtime option:

           set mtime for added files from DATE-OR-FILE


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 […]