Here is the result of a partial archive rebuild done by David Suárez on September 7th, 2013 using Lunar's pu/reproducible_builds branch of dpkg.

The setup meant there was a variation in time and build path between the initial build and the rebuild.

The latter contains fix to deal with timestamps and file order in .deb produced by dpkg. It also pass CFLAGS using dpkg-buildflags that build stable debug symbols (fdebug-prefix-map approach).

Mismatching binary packages


dh-buildinfo output is not stable and calls gzip without the -n flag (722186), this is fixed in dh-buildinfo 0.10.

Missing CXXFLAGS in dpkg-buildflags

The rebuilt was made with a pu/reproducible_builds branch that handled CFLAGS but not CXXFLAGS.

Ruby extensions

Ruby extensions are built with the same CFLAGS than the Ruby interpreter.

.a contains timestamps

.gz contains timestamp

.jar contains timestamps

javadoc HTML files contain timestamp


Epydoc HTML files contain timestamps and does not always output links in the same order.


It appears that mono libraries and executables contains timestamps, but this needs to be checked in depth. monodoc sources are zip files containing timestamps.

php registry files contain timestamp

./usr/share/php/.registry/*.reg files contain a _lastmodified timestamp.

doxygen developer documentation

It looks like doxygen does not work with files in a stable order.

Specific issue

Unable to reproduce

This might actually due to changes in dpkg-buildflags or dh-buildinfo…


Successfully rebuilt

1254 packages (24%) produced matching .deb: