What happened about the reproducible builds effort this week:
Toolchain fixes
Norbert Preining uploaded texinfo/6.0.0.dfsg.1-2 which makes texinfo indices reproducible. Original patch by Chris Lamb.
Lunar submitted recently rebased patches
to make the file order of files inside .deb
stable.
akira filled #789843 to make tex4ht stop printing timestamps in its HTML output by default.
Dhole wrote a patch for xutils- dev to prevent timestamps when creating gzip compresed files.
Reiner Herrmann sent a follow-up patch for wheel to use UTC as timezone when outputing timestamps.
Mattia Rizzolo started a discussion
regarding the failure to build from source of
subversion when -Wdate-time
is
added to CPPFLAGS
—which happens when asking dpkg-buildflags
to use the
reproducible
profile. SWIG errors out because it doesn’t recognize the
aforementioned flag.
Trying to get the .buildinfo
specification
to more definitive state, Lunar started a discussion on storing the checksums
of the binary package used in dpkg
status database.
akira discovered—while proposing a fix for
simgrid—that CMake internal command to create
tarballs would record a timestamp in the gzip header. A way to prevent it is
to use the GZIP
environment variable to ask gzip
not to store timestamps,
but this will soon become
unsupported. It’s up for discussion if the best place to fix
the problem would be to fix it for all CMake users at once.
Infrastructure-related work
Andreas Henriksson did a delayed NMU upload of pbuilder which adds minimal support for build profiles and includes several fixes from Mattia Rizzolo affecting reproducibility tests.
Neils Thykier uploaded lintian which both raises the severity of package-contains-timestamped- gzip and avoids false positives for this tag (thanks to Tomasz Buchert).
Petter Reinholdtsen filled #789761 suggesting that how-can-i-help should prompt its users about fixing reproducibility issues.
Packages fixed
The following packages became reproducible due to changes in their build dependencies: autorun4linuxcd, libwildmagic, lifelines, plexus-i18n, texlive- base, texlive- extra, texlive- lang.
The following packages became reproducible after getting fixed:
- 0xffff/6.1-3 uploaded by Sebastian Reichel, original patch by Dhole.
- fusionforge/6.0-1 uploaded by Roland Mas and fixed upstream.
- geis/2.2.17-1 uploaded by Stephen M. Webb, original patch by akira.
- gramadoir/0.7-3 uploaded by Alastair McKinstry, original patch by Chris Lamb.
- ht/2.1.0-1 by Anton Gladky.
- ispell-fo/0.4.2-8 by Agustin Martin Domingo.
- ispell-gl/0.5-42 by Agustin Martin Domingo.
- libosmium by Bas Couwenberg.
- maven-dependency-analyzer/1.4-1 by Emmanuel Bourg.
- migrate/0.9.6-2 uploaded by Thomas Goirand, original patch by Juan Picca.
- mustache-java/0.8.17-3 by Miguel Landaeta.
- myspell-pt-br/20131030-6 by Agustin Martin Domingo.
- myspell.pt/20091013-9 by Agustin Martin Domingo.
- nss-wrapper/1.0.3-3 by Jakub Wilk.
- osmcoastline by Bas Couwenberg.
- osmium-tool/1.0.1-2 uploaded by Bas Couwenberg, original patch by Chris Lamb.
- python-gmpy2/2.0.5-1 by Martin Kelly.
- python-pathlib/1.0.1-2 uploaded by Frank Brehm, original patch by Reiner Herrmann
- python-pysaml2/2.4.0-2 uploaded by Thomas Goirand, original patch by Juan Picca.
- python-pysqlite2 uploaded by Joel Rosdahl, original patch by Juan Picca.
- python-scrapy/1.0.0-1 uploaded by Yaroslav Halchenko, original patch by Juan Picca.
- softcatala-spell/0.20111230b-9 by Agustin Martin Domingo.
- tempest/4-2 uploaded by Thomas Goirand, original patch by Juan Picca.
- tiptop/2.2-3 by Tomasz Buchert.
- ucl/1.03+repack-3 by Robert Luberda.
- welcome2l/3.04-26 by Robert Luberda.
- xuxen-eu-spell/0.4.20081029-11 by Agustin Martin Domingo.
- y-u-no-validate/2013052401-4 uploaded by Jakub Wilk, original patch by Chris Lamb.
Some uploads fixed some reproducibility issues but not all of them:
- camitk/3.4.0-2 by Emmanuel Promayon.
- mariadb-10.0/10.0.20-1 by Otto Kekäläinen.
- mathjax-docs/2.5+20150518-1 uploaded by Dmitry Shachnev, original patch by Juan Picca.
- wxwidgets3.0/3.0.2-2 by Olly Betts.
Untested uploaded as they are not in main :
- nvidia-persistenced/352.21-1 by Andreas Beckmann.
- nvidia-modprobe/349.16-1 by Andreas Beckmann.
Patches submitted which have not made their way to the archive yet:
- #789648 on apt-dater by Dhole: allow the build date to be set externally and set it to the time of the latest
debian/changelog
entry. - #789715 on simgrid by akira: fix doxygen and patch
CMakeLists.txt
to give GZIP=-n for tar. - #789728 on aegisub by Juan Picca: get rid of
__DATE__
and__TIME__
macros. - #789747 on dipy by Juan Picca: set documentation date for Sphinx.
- #789748 on jansson by Juan Picca: set documentation date for Sphinx.
- #789799 on tmexpand by Chris Lamb: remove timestamps, hostname and username from the build output.
- #789804 on libevocosm by Chris Lamb: removes generated files which include extra information about the build environment.
- #789963 on qrfcview by Dhole: removes the timestamps from the the generated PNG icon.
- #789965 on xtel by Dhole: removes extra timestamps from compressed files by gzip and from the PNG icon.
- #790010 on simbody by akira: set
HTML_TIMESTAMP=NO
in Doxygen configuration. - #790023 on stx-btree by akira: pass
HTML_TIMESTAMP=NO
to Doxygen. - #790034 on siscone by akira: removes
$datetime
fromfooter.html
used by Doxygen. - #790035 on thepeg by akira: set
HTML_TIMESTAMP=NO
in Doxygen configuration. - #790072 on libxray-spacegroup-perl by Chris Lamb: set
$Storable::canonical = 1
to makespace_groups.db.PL
output deterministic. - #790074 on visp by akira: set
HTML_TIMESTAMP=NO
in Doxygen configuration. - #790081 on wfmath by akira: set
HTML_TIMESTAMP=NO
in Doxygen configuration. - #790082 on wreport by akira: set
HTML_TIMESTAMP=NO
in Doxygen configuration. - #790088 on yudit by Chris Lamb: removes timestamps from the build system by passing a static comment.
- #790122 on clblas by akira: set
HTML_TIMESTAMP=NO
in Doxygen configuration. - #790133 on dcmtk by akira: set
HTML_TIMESTAMP=NO
in Doxygen configuration. - #790139 on glfw3 by akira: patch for Doxygen timestamps further improved by James Cowgill by removing
$datetime
from the footer. - #790228 on gtkspellmm by akira: set
HTML_TIMESTAMP=NO
in Doxygen configuration. - #790232 on ucblogo by Reiner Herrmann: set
LC_ALL
toC
before sorting. - #790235 on basemap by Juan Picca: set documentation date for Sphinx.
- #790258 on guymager by Reiner Herrmann: use the date from the latest
debian/changelog
as build date - #790309 on pelican by Chris Lamb: removes useless (and unreproducible) tests.
debbindiff development
debbindiff/23 includes a few bugfixes by Helmut Grohne that result in a significant speedup (especially on larger files). It used to exhibit the quadratic time string concatenation antipattern.
Version 24 was released on June 23rd in a hurry to fix an undefined variable introduced in the previous version. (Reiner Herrmann)
debbindiff now has a test suite! It is written using the PyTest framework (thanks Isis Lovecruft for the suggestion). The current focus has been on the comparators, and we are now at 93% of code coverage for these modules.
Several problems were identified and fixed in the process: paths appearing in
output of javap
, readelf
, objdump
, zipinfo
, unsqusahfs
; useless MD5
checksum and last modified date in javap
output; bad handling of charsets in
PO files; the destination path for gzip compressed files not ending in .gz
;
only metadata of cpio
archives were actually compared. stat
output was
further trimmed to make directory comparison more useful.
Having the test suite enabled a refactoring of how comparators were written, switching from a forest of differences to a single tree. This helped removing dust from the oldest parts of the code.
Together with some other small changes, version 25 was released on June 27th. A follow up release was made the next day to fix a hole in the test suite and the resulting unidentified leftover from the comparator refactoring. (Lunar)
Documentation update
Ximin Luo improved code examples for some proposed environment variables for reference timestamps. Dhole added an example on how to fix timestamps C pre- processor macros by adding a way to set the build date externally. akira documented her fix for tex4ht timestamps.
Package reviews
94 obsolete reviews have been removed, 330 added and 153 updated this week.
Hats off for Chris West (Faux) who investigated many fail to build from source issues and reported the relevant bugs.
Slight improvements were made to the scripts for editing the review database, edit-notes and clean- notes. (Mattia Rizzolo)
Meetings
A meeting was held on June 23rd. Minutes are available.
The next meeting will happen on Tuesday 2015-07-07 at 17:00 UTC.
Misc.
The Linux Foundation announced that it was funding the work of Lunar and h01ger on reproducible builds in Debian and other distributions. This was further relayed in a Bits from Debian blog post.