It should be possible to reproduce, byte for byte, every build of every package in Debian. More information about reproducible builds in general are available at reproducible-builds.org.
Reproducible builds of Debian as a whole are still not a reality, though individual reproducible builds of packages are possible. So while we are making very good progress, it is a stretch to say that Debian is reproducible.
Our patches for dpkg finally landed in Debian unstable with dpkg 1.18.1 so the next big step is to make dak process *.buildinfo files, see #763822 ftp.debian.org: please include .buildinfo file in the archive for the relevant bug report.
We have a tentative specification for a new control file *.buildinfo that records the build environment. https://sources.debian.net/src/dpkg/1.18.13/man/deb-buildinfo.man/ is the real reference though.
We have an experimental toolchain that creates *.buildinfo files and allows a good amount of source packages to be reproducible.
We have a addendum to sbuild that can rebuild a package after recreating the recorded enviroment.
We have a continuous integration platform that builds and immediately rebuilds packages. With this we can detect problems related to timestamps, file ordering, CPU usage, (pseudo-)randomness and other things.
Many patches have already been submitted, and we are continuously writing new ones.
You can check which packages installed on your system are still unreproducible by using the unreproducible-installed script.
- Identify more common problems.
- Get toolchain changes integrated.
- Start a campaign to get developers to fix their packages.
Get .buildinfo files in the archive.
Get dpkg supporting reproducible builds upload to unstable.
- Require matching binary packages from the developer and a buildd before accepting the package in the archive. This could initially be opt-in.
For more concrete tasks to be done, look at how to contribute.