
Debian Jessie has been released on April 25th, 2015. This has opened the
Stretch development cycle. Reactions to the idea of making Debian
build reproducibly have
been pretty enthusiastic. As the pace is now likely to be even faster,
let's see if we can keep everyone up-to-date on the developments.
Before the release of Jessie
The
story goes back a long
way
but a
formal announcement to the
project
has only been sent in February 2015.
Since then, too much work has happened to make a complete report, but
to give some highlights:
- New variations are now tested: umask, kernel version, domain name,
and timezone. We might only be missing CPU type and current date now.
- Many improvements to the test system on
jenkins.debian.net
and the pages showing the
results.
- Now not only packages from
unstable
are tested but also those in testing
and experimental
.
- When rescheduling packages for testing, the build products can be
kept and the IRC channel gets a notification when its over.
- binutils version
2.25-6 is now built with
the
--enable-deterministic-archives
flag. Making ar
, strip
and
others create deterministic static
libraries.
- Number of identified issues has grown from about 80 to 123 today.
Lunar did a pretty
improvised lightning
talk
during the
Mini-DebConf in
Lyon.
This past week
It seems changes were pilling behind the curtains given the amount of activity
that happened in just one week.
Toolchain fixes
- Niels Thykier uploaded
debhelper/9.20150501
which includes fixes to
dh_makeshlibs
(#774100), dh_icons
(#774102), dh_usrlocal
(#775020). Patches written
by Lunar.
- Helmut Grohne uploaded
doxygen/1.8.9.1-3 which
will not generate timestamps in HTML by default. Kudos to
akira for bringing the issue
upstream.
- Kenneth J. Pronovici uploaded
epydoc/3.0.1+dfsg-6
adding a
--no-include-build-time
option.
Patch by Jelmer
Vernooij.
- David Pr vot uploaded
php-apigen/2.8.1+dfsg-2
which now has reproducible output.
- C dric Boutillier uploaded
ruby-prawn/2.0.1+dfsg-1
which now produce a deterministic output when using gradients.
Patch by Lunar.
- Jelmer Vernooij uploaded
samba/2:4.1.17+dfsg-4 which
contains a patch by Matthieu Patou making the output of
pidl
(from libparse-pidl-perl
) reproducible.
- Dmitry Shachnev uploaded
sphinx/1.3.1-1 in experimental
which should produce deterministic output. The original
patch from Chris Lamb has
inspired the upstream
fix.
- gregor herrmann uploaded
libextutils-depends-perl/0.404-1
which makes ExtUtils::Depends output deterministic. Original
patch by Reiner Herrmann.
- Niko Tyni uploaded perl/5.20.2-4
which makes the output of Pod::Man reproducible. Nice team work
visible on #780259.
We also rebased the
experimental
version
of
debhelper twice to merge
the latest set of changes.
Lunar submitted a
patch to add a
-creation-date
to
genisoimage
.
Reiner Herrmann opened
#783938 to
request making
-notimestamp
the default behavior for
javadoc
.
Juan Picca submitted a
patch to add a
--use-date
flag to
texi2html
.
Packages fixed
The following packages became reproducible due to changes of their
build dependencies:
apport,
batctl,
cil,
commons-math3,
devscripts,
disruptor,
ehcache,
ftphs,
gtk2hs-buildtools,
haskell-abstract-deque,
haskell-abstract-par,
haskell-acid-state,
haskell-adjunctions,
haskell-aeson,
haskell-aeson-pretty,
haskell-alut,
haskell-ansi-terminal,
haskell-async,
haskell-attoparsec,
haskell-augeas,
haskell-auto-update,
haskell-binary-conduit,
haskell-hscurses,
jsch,
ledgersmb,
libapache2-mod-auth-mellon,
libarchive-tar-wrapper-perl,
libbusiness-onlinepayment-payflowpro-perl,
libcapture-tiny-perl,
libchi-perl,
libcommons-codec-java,
libconfig-model-itself-perl,
libconfig-model-tester-perl,
libcpan-perl-releases-perl,
libcrypt-unixcrypt-perl,
libdatetime-timezone-perl,
libdbd-firebird-perl,
libdbix-class-resultset-recursiveupdate-perl,
libdbix-profile-perl,
libdevel-cover-perl,
libdevel-ptkdb-perl,
libfile-tail-perl,
libfinance-quote-perl,
libformat-human-bytes-perl,
libgtk2-perl,
libhibernate-validator-java,
libimage-exiftool-perl,
libjson-perl,
liblinux-prctl-perl,
liblog-any-perl,
libmail-imapclient-perl,
libmocked-perl,
libmodule-build-xsutil-perl,
libmodule-extractuse-perl,
libmodule-signature-perl,
libmoosex-simpleconfig-perl,
libmoox-handlesvia-perl,
libnet-frame-layer-ipv6-perl,
libnet-openssh-perl,
libnumber-format-perl,
libobject-id-perl,
libpackage-pkg-perl,
libpdf-fdf-simple-perl,
libpod-webserver-perl,
libpoe-component-pubsub-perl,
libregexp-grammars-perl,
libreply-perl,
libscalar-defer-perl,
libsereal-encoder-perl,
libspreadsheet-read-perl,
libspring-java,
libsql-abstract-more-perl,
libsvn-class-perl,
libtemplate-plugin-gravatar-perl,
libterm-progressbar-perl,
libterm-shellui-perl,
libtest-dir-perl,
libtest-log4perl-perl,
libtext-context-eitherside-perl,
libtime-warp-perl,
libtree-simple-perl,
libwww-shorten-simple-perl,
libwx-perl-processstream-perl,
libxml-filter-xslt-perl,
libxml-writer-string-perl,
libyaml-tiny-perl,
mupen64plus-core,
nmap,
openssl,
pkg-perl-tools,
quodlibet,
r-cran-rjags,
r-cran-rjson,
r-cran-sn,
r-cran-statmod,
ruby-nokogiri,
sezpoz,
skksearch,
slurm-llnl,
stellarium.
The following packages became reproducible after getting fixed:
- berkeley-abc/1.01+20141105hg5b5af75+dfsg-3 uploaded by Ruben Undheim, original patch by Johann Klammer.
- binutils/2.25-7 by Matthias Klose.
- bitmap-mule/8.5+0.20030825.0433-16 uploaded by Tatsuya Kinoshita, original patch by Chris Lamb.
- blobby/1.0-2 by Felix Geyer.
- codelite/7.0+dfsg-2 by James Cowgill.
- conkeror/1.0~~pre-1+git150409-1 by Axel Beckert.
- convmv/1.15-1 by Christian Perrier.
- cpl/6.6~b-1 by Ole Streicher.
- deheader/1.1-2 by Reiner Herrmann.
- dict-foldoc/20150318-1 uploaded by Iustin Pop, original patch by Chris Lamb.
- ding/1.8-1 by Roland Rosenfeld.
- doc-rfc/20150425-1 by Iustin Pop.
- doxygen/1.8.9.1-3 by Helmut Grohne.
- eureka/1.07-1 by Fabian Greffrath.
- eximdoc4/4.85-2 uploaded by Andreas Metzler, original patch by Chris Lamb.
- flashproxy/1.7-3 by Ximin Luo.
- heimdal/1.6~rc2+dfsg-10 by Jelmer Vernooij.
- init-system-helpers/1.23 by Martin Pitt original patch by Lunar.
- ldb/2:1.1.20-2 by Jelmer Vernooij.
- libalien-wxwidgets-perl/0.67+dfsg-1 uploaded by gregor herrmann, original patch by Chris Lamb.
- libcairo-perl/1.105-1 by intrigeri.
- libclass-methodmaker-perl/2.24-1 uploaded by gregor herrmann, original patch by Chris Lamb.
- libcommon-sense-perl/3.73-3 uploaded by gregor herrmann, original patch by Chris Lamb.
- libelixirfm-perl/1.1.976-4 uploaded by gregor herrmann, original patch by Chris Lamb.
- libgnome2-perl/1.045-3 by intrigeri.
- libjs-jcrop/0.9.12+dfsg-2 uploaded by David Pr vot, original patch by Chris Lamb.
- liblas/1.8.0-2 by Bas Couwenberg.
- libopengl-perl/0.6704+dfsg-1 uploaded by gregor herrmann, original patch by Chris Lamb.
- libparse-recdescent-perl/1.967009+dfsg-2 uploaded by gregor herrmann, original patch by Reiner Herrmann.
- librasterlite/1.1g-5 by Bas Couwenberg.
- libterm-size-perl-perl/0.029-2 uploaded by gregor herrmann, original patch by Chris Lamb.
- libvdpau/1.1-1 by Andreas Beckmann.
- libxml-sax-expatxs-perl/1.33-2 uploaded by gregor herrmann, original patch by Chris Lamb.
- lynx-cur/2.8.9dev4-2 by Axel Beckert.
- mapcache/1.2.1-3 by Bas Couwenberg.
- mdbtools/0.7.1-4 by Jean-Michel Nirgal Vourg re.
- mopidy uploaded by Stein Magnus Jodal, fixed by upstream.
- objenesis/2.1-1 by Markus Koschany.
- opendkim/2.10.1-2 uploaded by Scott Kitterman, original patch by Reiner Herrmann.
- pktools/2.6.3-1 by Bas Couwenberg.
- posh/0.12.4 uploaded by Clint Adams, original patch by Chris Lamb.
- prboom-plus/2:2.5.1.4~svn4425+dfsg1-1 by Fabian Greffrath.
- qlandkartegt/1.8.1+ds-1 by Bas Couwenberg.
- readosm/1.0.0d-1~exp2 by Bas Couwenberg.
- robocode/1.9.2.4-1 by Markus Koschany.
- ruby-prawn/2.0.1+dfsg-1 uploaded by C dric Boutillier, original patch by Lunar.
- sane-backends/1.0.25+git20150425-1 by J rg Frings-F rst.
- scoop/0.7.1-3 by Daniel Stender.
- springlobby/0.218-1 by Markus Koschany.
- subvertpy/0.9.2-1 by Jelmer Vernooij.
- t-prot/3.4-2 by Axel Beckert.
- talloc/2.1.2-3 by Jelmer Vernooij.
- tdb/1.3.4-2 by Jelmer Vernooij, patch now applied by upstream.
- tk-html3/3.0~fossil20110109-5 by Ole Streicher.
- tox/1.9.2-2 uploaded by Barry Warsaw original patch by Reiner Herrmann.
- trove3/3.0.3-2 by Erich Schubert.
- txt2man/1.5.6-2 uploaded by Joao Eriberto Mota Filho, initial patch by Jonathan Wiltshire.
- units/2.11-2 by Stephen Kitt.
- win32-loader/0.7.10 upload by Didier Raboud, original patch by Lunar.
- zec/0.12-3 uploaded by Clint Adams, original patch by Chris Lamb.
- zomg/0.8-1 uploaded by Clint Adams, original patch by Chris Lamb.
Some uploads fixed some reproducibility issues but not all of them:
Patches submitted which did not make their way to the archive yet:
Improvements to reproducible.debian.net
Mattia Rizzolo has been working on compressing logs using gzip to save
disk space. The web server would uncompress them on-the-fly for clients
which does not accept gzip content.
Mattia Rizzolo worked on a new page
listing various
breakage: missing
or bad
debbindiff
output, missing build logs, unavailable build
dependencies.
Holger Levsen added a new execution environment to run
debbindiff
using
dependencies from
testing. This is required for packages built with
GHC as the compiler only understands interfaces built by the same
version.
debbindiff development
Version 17 has been uploaded to unstable. It now supports comparing
ISO9660 images, dictzip files and should compare identical files much
faster.
Documentation update
Various small updates and fixes to the pages about
PDF produced by LaTeX,
DVI produced by
LaTeX,
static
libraries,
Javadoc,
PE
binaries,
and
Epydoc.
Package reviews
Known issues have been tagged when known to be deterministic as some
might unfortunately not show up on every single build.
For example, two new issues have been identified by building with one
timezone in April and one in May.
RD
and
help2man add current month and
year to the documentation they are producing.
1162 packages have been removed and 774 have been added in
the past week. Most of them are the work of proper automated
investigation done by Chris West.
Summer of code
Finally, we learned that both akira and Dhole were
accepted for
this Google Summer of
Code.
Let's welcome them!
They have until May 25th before coding officialy begins. Now is the good time
to help them feel more comfortable by sharing all these little bits of
knowledge on how Debian works.