What happened about the reproducible builds effort for this week:
Presentations
On May 26th,Holger Levsen presented reproducible builds in Debian at CCC Berlin for the Datengarten 52. The presentation was in German and the slides in English. Audio and video recordings are available.
Toolchain fixes
- Dmitry Shachnev uploaded pyqt5/5.4.1+dfsg-3 which makes
pyuic
output imports in stable order. Original patch by Reiner Herrmann. - Lunar uploaded mozilla-devscripts/0.41 which uses the UTC timezone when calling
zip
orunzip
.
Niels Thykier fixed the experimental support for the automatic creation of debug packages in debhelper that being tested as part of the reproducible toolchain.
Lunar added to the “reproducible build” version of
dpkg the normalization of permissions for
files in control.tar
. The patch has also been
submitted based on the main branch.
Daniel Kahn Gillmor proposed a patch to add
support for externally-supplying build date to
help2man. This sparkled a discussion
about agreeing on a common name for an environment variable to hold the date
that should be used. It seems opinions are converging on using
SOURCE_DATE_UTC
which would hold a ISO-8601 formatted date in
UTC) (e.g.
2015-06-05T01:08:20Z
). Kudos to Daniel, Brendan O’Dea, Ximin Luo for pushing
this forward.
Lunar proposed a patch to Tar upstream adding a --clamp-mtime
option as
a generic solution for timestamp variations in
tarballs
which might also be useful for dpkg. The option changes the behavior of
--mtime
to only use the time specified if the file mtime is newer than the
given time. So far, upstream is not convinced that it would make a worthwhile
addition to Tar, though.
Daniel Kahn Gillmor reached out to the libburnia
project
to ask for help on how to make ISO created with xorriso
reproducible. We
should reward Thomas Schmitt with a “model upstream” trophy as he went through
a thorough analysis of possible sources of variations and ways to improve the
situation. Most of what is missing with the current version in Debian is
available in the latest upstream version, but libisoburn in Debian needs
help. Daniel
backported the missing option for version
1.3.2-1.1.
akira submitted a new issue to Doxygen upstream regarding the timestamps added to the generated manpages.
Packages fixed
The following 49 packages became reproducible due to changes in their build dependencies: activemq-protobuf, bnfc, bridge-method- injector, commons- exec, console- data, djinn, github- backup, haskell-authenticate- oauth, haskell- authenticate, haskell- blaze-builder, haskell- blaze-textual, haskell- bloomfilter, haskell- brainfuck, haskell-hspec- discover, haskell-pretty- show, haskell- unlambda, haskell-x509-util, haskelldb- hdbc-odbc, haskelldb-hdbc- postgresql, haskelldb- hdbc-sqlite3, hasktags, hedgewars, hscolour, https- everywhere, java-comment- preprocessor, jffi, jgit, jnr- ffi, jnr- netdb, jsoup, lhs2tex, libcolor-calc- perl, libfile-changenotify- perl, libpdl-io- hdf5-perl, libsvn-notify- mirror-perl, localizer, maven- enforcer, pyotherside, python- xlrd, python-xstatic-angular- bootstrap, rt- extension-calendar, ruby- builder, ruby-em- hiredis, ruby- redcloth, shellcheck, sisu- plexus, tomcat-maven- plugin, v4l2loopback, vim- latexsuite.
The following packages became reproducible after getting fixed:
- afterstep/2.2.12-6 uploaded by Robert Luberda, original patch by Juan Picca.
- birdfont/2.8.0-2 by Hideki Yamane.
- bzr/2.6.0+bzr6602-1 by Jelmer Vernooij.
- cassiopee/1.0.3+dfsg-2 uploaded by Olivier Sallou, original patch by akira.
- dhcp-helper/1.1-3 by Simon Kelley.
- elog/3.1.0-2-1 by Roger Kalt.
- flashcache/3.1.3+git20150513-1 uploaded by Liang Guo, original patch by Reiner Herrmann.
- fonts-kiloji/1:2.1.0-21 by Hideki Yamane.
- inspircd/2.0.20-2 by Guillaume Delacour.
- jd/1:2.8.9-150226-3 by Hideki Yamane.
- jruby-joni/2.1.6-2 by Hideki Yamane.
- libaqbanking/5.6.0beta-1 by Micha Lenk.
- libencode-hanextra-perl/0.23-4 fixed and uploaded by Niko Tyni.
- libencode-jis2k-perl/0.02-3 by Niko Tyni.
- libjide-oss-java/3.6.9+dfsg-1 by Markus Koschany.
- librpc-xml-perl/0.78-3 upload by Niko Tyni, original patch by Reiner Herrmann.
- libterm-readkey-perl/2.32-2 by Niko Tyni.
- mkgmap-splitter/0.0.0+svn421-1 by Bas Couwenberg.
- mod-authn-webid/0~20110301-3 by Clint Adams, original patch by Chris Lamb.
- ossim/1.8.16-4 uploaded by Bas Couwenberg, original patch by Juan Picca.
- psfex/3.17.1+dfsg-2 by Ole Streicher.
- socket-wrapper/1.1.3-2 uploaded by Laszlo Boszormenyi, original patch by Jelmer Vernooij.
- stiff/2.4.0-2 by Ole Streicher.
- testng/6.9.4-2 by Eugene Zhukov.
- wcwidth/0.1.4-2 by Sebastian Ramacher.
Some uploads fixed some reproducibility issues but not all of them:
- ant/1.9.5-1 by Emmanuel Bourg.
- gcin/2.8.3+dfsg1-2 by ChangZhuo Chen.
- grcompiler/4.2-5 by Hideki Yamane.
- python2.7/2.7.10-2 uploaded by Matthias Klose, based on a patch by Lunar.
- python3.4/3.4.3-7 uploaded by Matthias Klose, based on a patch by Lunar.
- python3.5/3.5.0~b2-1 uploaded by Matthias Klose, based on a patch by Lunar.
- wml/2.0.12ds1-9 by Axel Beckert.
Patches submitted which did not make their way to the archive yet:
- #787327 on vim by Reiner Herrmann: set a constant user and set
modified-by
option. - #787650 on lush by Daniel Kahn Gillmor: remove
__DATE__
and__TIME__
macros from source. - #787669 on cloc by Daniel Kahn Gillmor: use time of latest
debian/changelog
entry in manpage. - #787675 on ricochet by Daniel Kahn Gillmor: patch configure to allow an external build date and set it to the time of latest
debian/changelog
entry. - #787804 on clipper by akira: set
HTML_TIMESTAMP
toNO
in Doxygen configuration. - #787829 on colobot by akira: set
HTML_TIMESTAMP
toNO
in Doxygen configuration. - #787865 on fastjet by akira: call Doxygen with
HTML_TIMESTAMP
set toNO
. - #787916 on cal3d by akira: remove
$datetime
from the fileapi_footer.html
. - #787918 on dime by akira: remove
$datetime
from the filefooter.html
.
Daniel Kahn Gilmor also started discussions for emacs24 and the unsorted lists in generated .el files, the recording of a PID number in lush, and the reproducibility of ISO images in grub2.
reproducible.debian.net
Notifications are now sent when the build environment for a package has changed between two builds. This is a first step before automatically building the package once more. (Holger Levsen)
jenkins.debian.net was upgraded to Debian Jessie. (Holger Levsen)
A new variation
is now being tested: $PATH
. The second build will be done with a
/i/capture/the/path
added. (Holger Levsen)
Holger Levsen with the help of Alexander Couzens wrote extra job to test the reproducibility of coreboot. Thanks James McCoy for helping with certificate issues.
Mattia Rizollo made some more internal improvements.
strip-nondeterminism development
Andrew Ayer released strip-nondeterminism/0.008-1. This new version fixes the gzip handler so that it now skip adding a predetermined timestamp when there was none.
Holger Levsen sponsored the upload.
Documentation update
The pages about timestamps in manpages generated by Doxygen, GHC .hi files, and Jar files have been updated to reflect their status in upstream.
Markus Koschany documented an easy way to prevent Doxygen to write timestamps in HTML output.
Package reviews
83 obsolete reviews have been removed, 71 added and 48 updated this week.
Meetings
A meeting was held on 2015-06-03. Minutes and full logs are available.
It was agreed to hold such a meeting every two weeks for the time being. The time of the next meeting should be announced soon.