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:
Untested uploaded as they are not in
main:
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
from footer.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 make space_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
to C
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.