Here’s what happened in the Reproducible Builds effort between Sunday August 13 and Saturday August 19 2017:
Reproducible Builds finally mandated by Debian Policy
“Packages should build reproducibly” was merged into Debian policy! The added text is as follows and has been included into debian-policy 4.1.0.0:
Reproducibility --------------- Packages should build reproducibly, which for the purposes of this document [#]_ means that given - a version of a source package unpacked at a given path; - a set of versions of installed build dependencies; - a set of environment variable values; - a build architecture; and - a host architecture, repeatedly building the source package for the build architecture on any machine of the host architecture with those versions of the build dependencies installed and exactly those environment variable values set will produce bit-for-bit identical binary packages. It is recommended that packages produce bit-for-bit identical binaries even if most environment variables and build paths are varied. It is intended for this stricter standard to replace the above when it is easier for packages to meet it. .. [#] This is Debian's precisification of the `reproducible-builds.org definition <https://reproducible-builds.org/docs/definition/>`_.
- Holger Levsen wrote a blog post
briefly describing the background and implications of this. To quote him: “we are not 94% done yet, rather more like half done or so. We still need tools and processes to enable anyone to independently verify that a given binary comes from the sources it is said to be coming, this will involve distributing
.buildinfo
files and providing user interfaces in APT and elsewhere and probably also systematic rebuilds by us and other parties. And 6% or 7% of the archive is still a lot of packages, eg. in Buster we currently still have 273 unreproducible key packages and for a large part we don’t have patches yet so there is still a lot of work ahead.” - There were discussion threads on Hacker News and Reddit.
- Our long-term goal is that Policy mandates that packages “must” be reproducible, but for that we need to show further progress and also reach a consensus on
.buildinfo
files and much more.
Reproducible work in other projects
Bernhard M. Wiedemann’s reproducibleopensuse scripts now work on Debian buster on the openSUSE Build Service with the latest versions of osc and obs-build.
Toolchain development and fixes
#872514 was opened on devscripts by Chris Lamb to add a
reproducible-check
program to report on the reproducibility status of
installed packages.
Packages reviewed and fixed, and bugs filed
Upstream reports:
- Bernhard M. Wiedemann:
- qt5/base,
SOURCE_DATE_EPOCH
support.
- qt5/base,
Debian reports:
- Adrian Bunk:
- Chris Lamb:
- #872453 filed against isa-support.
- #872459 filed against python-numpy.
- #872460 filed against gcab, forwarded upstream.
- #872514 filed against devscripts.
- #872728 filed against desktop-file-utils.
- #872729 filed against gtk+2.0, forwarded upstream, found via a reproducibility issue in Tails.
- Federico Brega:
- Jeremy Bicha:
- Philip Rinn:
Debian non-maintainer uploads:
- Mattia Rizzolo:
- console-data (for bug #799871).
Reviews of unreproducible packages
47 package reviews have been added, 58 have been updated and 39 have been removed in this week, adding to our knowledge about identified issues.
4 issue types have been updated:
- Added nondeterministic_output_generated_by_gcab toolchain.
- Added build_path_captured_by_python_numpy_misc_util.
- Added captures_build_path_in_sphinx_attr_links.
- Re-added nondeterminstic_ordering_in_gsettings_glib_enums_xml.
Weekly QA work
During our reproducibility testing, FTBFS bugs have been detected and reported by:
- Adrian Bunk (59)
- Bastien Roucariès (1)
- James Clarke (1)
- Jeremy Bicha (1)
diffoscope development
Development continued in git, including the following contributions:
- Ximin Luo:
- Chris Lamb:
- Temporarily revert “Bump Standards-Version to 4.0.1” to avoid spurious CI test failures.
- comparators.xml: Use
name
attribute overpath
to avoid leaking comparison full path in output. - Code style fixes.
disorderfs development
Development continued in git, including the following contributions:
- Chris Lamb:
- Add simple autopkgtest.
reprotest development
Development continued in git, including the following contributions:
- Ximin Luo:
- Choose an existent
HOME
for the “control” build. (Closes: #860428) - Update
debian/changelog
with Santiago’s changes.
- Choose an existent
- Santiago Torres:
- Abstract parts of autopkgtest to support running on non-Debian systems.
- Add a
--host-distro
flag to support that too.
tests.reproducible-builds.org
Mattia fixed the script which creates the HTML representation of our database scheme to not append .html twice to the filename.
Misc.
This week’s edition was written by Ximin Luo, Chris Lamb and Holger Levsen & reviewed by a bunch of Reproducible Builds folks on IRC & the mailing lists.