What happened in the reproducible builds effort this week:

Toolchain fixes

Guillem Jover uploaded dpkg/1.18.2 which makes dependency comparisons deep by comparing not only the first dependency alternative, to get them sorted in a reproducible way. Original patch by Chris Lamb.

Dhole updated the patch adding support for SOURCE_DATE_EPOCH in gettext. A modified package is in the experimental “reproducible” repository.

Valentin Lorentz submitted a patch adding support for SOURCE_DATE_EPOCH to ocamldoc. Valentin Lorentz also opened a bug about the inability to set an arbitrary RNG seed for ocamlopt which would be a way to fix an issue affecting many OCaml packages.

Dhole submitted a patch adding support for SOURCE_DATE_EPOCH in qhelpgenerator. A modified package has been sent to the experimental repository as well.

Several packages have been updated for the experimental toolchain: doxygen (akira), and dpkg (h01ger).

Also, h01ger has built and uploaded all experimental packages having arch:any packages for armhf: dpkg, gettext, doxygen, fontforge, libxslt and texlive-bin. We are now providing our toolchain for armhf and amd64.

Packages fixed

As you might have noticed, Debian sid is currently largely uninstallable, due to the GCC 5 transition, which also can be see in our reproducibility test setup. Please help!

The following packages became reproducible due to changes in their build dependencies: glosstex, indent, ktikz, liblouis, libmicrohttpd, linkchecker, multiboot, qterm, rrep, trueprint, twittering-mode.

The following packages became reproducible after getting fixed:

Patches submitted which have not made their way to the archive yet:

  • #794395 on classified-ads by Reiner Herrmann: removes timestamps in embedded PNG images. Already merged upstream.
  • #794398 on clhep by Reiner Herrmann: sort with LC_ALL set to C.
  • #794399 on parsec47 by Reiner Herrmann: sort with LC_ALL set to C.
  • #794400 on tumiki-fighters by Reiner Herrmann: sort with LC_ALL set to C.
  • #794603 on xchat by Valentin Lorentz: call strip-nondeterminism and remove time C pre-processor macros.
  • #794740 on camitk by akira: use SOURCE_DATE_EPOCH as build date.
  • #794779 on foxyproxy by Dhole: set TZ to UTC when using zip.
  • #794781 on xul-ext-monkeysphere by Dhole: set TZ to UTC when using zip.
  • #794792 on freeipmi by Dhole: use latest entry from debian/changelog as build date.
  • #794793 on doc-base by Dhole: use UTC timezone when generating source date string.
  • #794795 on debiandoc-sgml-doc by Dhole: remove date. A better approach has been suggested by maintainer.
  • #794892 on autogen by Valentin Lorentz: use a constant time as timeout instead of measuring how long it takes for ./configure to run, use C locale when sorting, and use UTC when converting dates. Upstream made a new pre-release providing a --enable-timeout option. Date related issues will need more work to have portable solutions.

Lunar reported an issue on an unstable ABI from a generated header in icedove reminding of an issue affecting libical-dev. The bug has since been fixed by Carsten Schoenert.

akira identified an unreferenced embeded code copy (causing unreproducibility!) in gperf.


The scheduler has temporarily been changed to not schedule any already tested packages for sid and experimental, due to the the GCC 5 transitions, which are well visible in our graphs now. On the plus side this has caused our stretch testing to catch up (and improve stats). (h01ger)

depwait packages (packages where the Build-Depends cannot be satisfied) are now listed in the last 24h and last 48h pages (Mattia Rizzolo)

Two new amd64 build nodes (with 8 cores and 32 GB RAM each) have been added, kindly sponsored by Profitbricks. (h01ger)

The 4 armhf (setup last week by Vagrant Cascadian) and 2 amd64 build nodes have been made available to Jenkins. Remote job scheduling has been implemented and 35 new jobs have been added for pbuilder and schroot creation and maintenance of the nodes. (h01ger)

The manual scheduler gained a flag (-a/--architecture) to select which arch to schedule in. (Mattia Rizzolo)

armhf will only be testing stretch for now, due to limited hardware ressources. (h01ger)

The page listing maintainers of unreproducible packages gained internal anchors. As an example, one can now link to unreproducible orphaned packages. (Mattia Rizzolo)

Packages with a bug tagged “pending” are marked using a new symbol: a brown P (Mattia Rizzolo)

diffoscope development

debbindiff is now called diffoscope! It also has a website at diffoscope.org. The name was changed to better reflect that it became a general purpose tool, capable of comparing many different archive formats, or directories.

Version 29 is the renaming release. Amongst a couple of other cosmetic changes a favicon showing the new logo has been added to the generated HTML reports.

Version 30 replaces the file matching algorithm for files listed in .changes to a smarter one that removes only the version number. It also fixes a bug where squashfs directories were being extracted even if their content was being compared at a later stage. It also fixes an issue with the test suite that was detected by debci.

Documentation update

More rationale have been added for supporting SOURCE_DATE_EPOCH

The unfinished Reproducible Builds HOWTO is now visible on the web, feedback and patches most welcome.

Package reviews

261 obsolete reviews have been removed, 73 added and 145 updated this week.