What happened about the reproducible builds effort for this week:
Media coverage
Debian’s effort on reproducible builds has been covered in the June 2015 issue of Linux Magazin in Germany.
Toolchain fixes
- gregor herrmann uploaded libextutils-depends-perl/0.404-1 which makes its output deterministic.
- Christian Hofstaedtler uploaded yard/0.8.7.4-2 which will not write timestamps in the generated documentation. Original patch by Chris Lamb, does not write timestamps in the generated documentation anymore.
- Emmanuel Bourg uploaded maven-plugin-tools/3.3-2 which removes the date from the plugin descriptor. Patch by Reiner Herrmann.
- Emmanuel Bourg uploaded maven-archiver/2.6-1 which now uses the date set in the DEB_CHANGELOG_DATETIME environment variable for the timestamp in the pom.properties file embedded in the jar files. Original patch by Chris West.
- Nicolas Boulenguez uploaded dh-ada-library/6.4 which will warn against non deterministic ALI for sources newer than changelog.
josch rebased the experimental version of debhelper on 9.20150507.
Packages fixed
The following 515 packages became reproducible due to changes of their build dependencies: airport-utils, airspy-host, all-in-one- sidebar, ampache, aptfs, arpack, asciio, aspell- kk, asused, balance, batmand, binutils- avr, bioperl, bpm- tools, c2050, cakephp- instaweb, carton, cbp2make, checkbot, checksecurity, chemeq, chronicle, cube2-data, cucumber, darkstat, debci, desktop-file- utils, dh- linktree, django- pagination, dosbox, eekboek, emboss- explorer, encfs, exabgp, fbasics, fife, fonts-lexi- saebom, gdnsd, glances, gnome- clocks, gunicorn, haproxy, haskell- aws, haskell-base-unicode- symbols, haskell- base64-bytestring, haskell-basic-prelude, haskell-binary-shared, haskell-binary, haskell- bitarray, haskell-bool- extras, haskell- boolean, haskell- boomerang, haskell-bytestring- lexing, haskell- bytestring-mmap, haskell-config-value, haskell-mueval, haskell-tasty- kat, itk3, jnr- constants, jshon, kalternatives, kdepim- runtime, kdevplatform, kwalletcli, lemonldap- ng, libalgorithm-combinatorics- perl, libalgorithm-diff-xs-perl, libany-uri-escape-perl, libanyevent-http-scopedclient- perl, libanyevent-perl, libanyevent- processor-perl, libapache-session-wrapper-perl, libapache-sessionx-perl, libapp-options-perl, libarch-perl, libarchive-peek-perl, libaudio-flac-header-perl, libaudio-wav-perl, libaudio-wma-perl, libauth- yubikey-decrypter-perl, libauthen-krb5-simple-perl, libauthen-simple- perl, libautobox-dump- perl, libb-keywords- perl, libbarcode- code128-perl, libbio- das-lite-perl, libbio-mage- perl, libbrowser-open- perl, libbusiness- creditcard-perl, libbusiness-edifact-interchange-perl, libbusiness-isbn-data- perl, libbusiness- tax-vat-validation-perl, libcache-historical- perl, libcache- memcached-perl, libcairo-gobject-perl, libcarp-always-perl, libcarp-fix-1-25-perl, libcatalyst-action-serialize-data-serializer- perl, libcatalyst-controller-formbuilder- perl, libcatalyst-dispatchtype-regex-perl, libcatalyst-plugin-authentication- perl, libcatalyst-plugin-authorization-acl- perl, libcatalyst-plugin-session-store-cache- perl, libcatalyst-plugin-session-store-fastmmap- perl, libcatalyst-plugin-static-simple- perl, libcatalyst-view-gd-perl, libcgi-application-dispatch-perl, libcgi-application-plugin-authentication- perl, libcgi-application-plugin-logdispatch- perl, libcgi-application-plugin-session-perl, libcgi-application-server- perl, libcgi- compile-perl, libcgi- xmlform-perl, libclass- accessor-classy-perl, libclass-accessor-lvalue-perl, libclass-accessor- perl, libclass-c3-adopt- next-perl, libclass- dbi-plugin-type-perl, libclass-field-perl, libclass-handle-perl, libclass-load-perl, libclass-ooorno-perl, libclass-prototyped-perl, libclass-returnvalue-perl, libclass-singleton- perl, libclass-std-fast- perl, libclone- perl, libconfig-auto- perl, libconfig-jfdi- perl, libconfig-simple- perl, libconvert-basen- perl, libconvert-ber- perl, libcpan-checksums- perl, libcpanplus-dist- build-perl, libcriticism-perl, libcrypt- cracklib-perl, libcrypt- dh-gmp-perl, libcrypt- mysql-perl, libcrypt- passwdmd5-perl, libcrypt-simple-perl, libcss-packer-perl, libcss- tiny-perl, libcurses-widgets- perl, libdaemon-control- perl, libdancer-plugin- database-perl, libdancer-session-cookie-perl, libdancer2-plugin-database- perl, libdata- format-html-perl, libdata-uuid-libuuid-perl, libdata-validate-domain-perl, libdate-jd-perl, libdate-simple-perl, libdatetime-astro-sunrise- perl, libdatetime-event-cron-perl, libdatetime-format-dbi- perl, libdatetime- format-epoch-perl, libdatetime-format-mail-perl, libdatetime-tiny-perl, libdatrie, libdb-file- lock-perl, libdbd-firebird- perl, libdbix-abstract- perl, libdbix-class- datetime-epoch-perl, libdbix-class-dynamicdefault-perl, libdbix-class- introspectablem2m-perl, libdbix-class-timestamp- perl, libdbix- connector-perl, libdbix- oo-perl, libdbix-searchbuilder- perl, libdbix-xml- rdb-perl, libdevel- stacktrace-ashtml-perl, libdigest-hmac-perl, libdist-zilla-plugin-emailnotify-perl, libemail-date-format- perl, libemail-mime- perl, libemail-received- perl, libemail-sender- perl, libemail-simple- perl, libencode-detect- perl, libexporter-tidy- perl, libextutils- cchecker-perl, libextutils-installpaths-perl, libextutils-libbuilder- perl, libextutils- makemaker-cpanfile-perl, libextutils-typemap- perl, libfile- counterfile-perl, libfile-pushd-perl, libfile- read-perl, libfile-touch- perl, libfile-type- perl, libfinance-bank-ie- permanenttsb-perl, libfont-freetype-perl, libfrontier-rpc-perl, libgd-securityimage-perl, libgeo-coordinates-utm- perl, libgit- pureperl-perl, libgnome2-canvas-perl, libgnome2-wnck-perl, libgraph-readwrite-perl, libgraphics-colornames-www-perl, libgssapi-perl, libgtk2-appindicator- perl, libgtk2-gladexml-simple-perl, libgtk2-notify-perl, libhash-asobject-perl, libhash-moreutils-perl, libhtml-calendarmonthsimple-perl, libhtml-display- perl, libhtml-fillinform- perl, libhtml-form- perl, libhtml-formhandler- model-dbic-perl, libhtml-html5-entities-perl, libhtml-linkextractor- perl, libhtml- tableextract-perl, libhtml-widget-perl, libhtml-widgets-selectlayers-perl, libhtml-wikiconverter-mediawiki- perl, libhttp-async-perl, libhttp- body-perl, libhttp-date- perl, libimage- imlib2-perl, libimdb-film- perl, libimport-into- perl, libindirect- perl, libio-bufferedselect- perl, libio-compress- lzma-perl, libio- compress-perl, libio-handle- util-perl, libio- interface-perl, libio- multiplex-perl, libio- socket-inet6-perl, libipc-system-simple-perl, libiptables-chainmgr-perl, libjoda-time-java, libjsr305-java, libkiokudb-perl, liblemonldap- ng-cli-perl, liblexical-var-perl, liblingua-en-fathom-perl, liblinux-dvb-perl, liblocales-perl, liblog- dispatch-configurator-any-perl, liblog-log4perl- perl, liblog-report- lexicon-perl, liblwp- mediatypes-perl, liblwp- protocol-https-perl, liblwpx-paranoidagent-perl, libmail-sendeasy-perl, libmarc-xml-perl, libmason-plugin-routersimple-perl, libmasonx-processdir- perl, libmath- base85-perl, libmath- basecalc-perl, libmath- basecnv-perl, libmath- bigint-perl, libmath- convexhull-perl, libmath-gmp-perl, libmath- gradient-perl, libmath- random-isaac-perl, libmath-random-oo-perl, libmath-random-tt800-perl, libmath-tamuanova-perl, libmemoize-expirelru- perl, libmemoize- memcached-perl, libmime-base32-perl, libmime-lite-tt-perl, libmixin-extrafields-param-perl, libmock-quick- perl, libmodule-cpanfile- perl, libmodule-load- conditional-perl, libmodule-starter-pbp-perl, libmodule-util-perl, libmodule-versions-report-perl, libmongodbx-class- perl, libmoo- perl, libmoosex-app-cmd- perl, libmoosex- attributehelpers-perl, libmoosex-blessed-reconstruct- perl, libmoosex-insideout-perl, libmoosex-relatedclassroles- perl, libmoosex-role-timer-perl, libmoosex-role-withoverloading- perl, libmoosex-storage-perl, libmoosex-types-common-perl, libmoosex-types-uri-perl, libmoox-singleton-perl, libmoox-types-mooselike-numeric- perl, libmousex-foreign-perl, libmp3-tag-perl, libmysql-diff- perl, libnamespace-clean- perl, libnet-bonjour- perl, libnet-cli-interact- perl, libnet-daap-dmap- perl, libnet-dbus-glib- perl, libnet-dns- perl, libnet-frame- perl, libnet-google-authsub- perl, libnet-https- any-perl, libnet-https-nb- perl, libnet-idn-encode- perl, libnet-idn- nameprep-perl, libnet- imap-client-perl, libnet-irc-perl, libnet-mac- vendor-perl, libnet- openid-server-perl, libnet-smtp-ssl-perl, libnet-smtp-tls-perl, libnet-smtpauth-perl, libnet-snpp-perl, libnet- sslglue-perl, libnet-telnet- perl, libnhgri-blastall- perl, libnumber-range- perl, libobject-signature- perl, libogg-vorbis- header-pureperl-perl, libopenoffice-oodoc- perl, libparse-cpan- packages-perl, libparse-debian-packages-perl, libparse-fixedlength- perl, libparse-syslog- perl, libparse- win32registry-perl, libpdf-create-perl, libpdf- report-perl, libperl- destruct-level-perl, libperl-metrics-simple-perl, libperl-minimumversion- perl, libperl6-slurp-perl, libpgobject-simple-perl, libplack-middleware-fixmissingbodyinredirect- perl, libplack-test-externalserver- perl, libplucene-perl, libpod-tests- perl, libpoe-component-client- ping-perl, libpoe-component-jabber-perl, libpoe-component-resolver- perl, libpoe- component-server-soap-perl, libpoe-component-syndicator- perl, libposix- strftime-compiler-perl, libposix-strptime-perl, libpostscript-simple-perl, libproc-processtable-perl, libprotocol-osc- perl, librcs- perl, libreadonly-xs- perl, libreturn-multilevel- perl, librivescript- perl, librouter-simple- perl, librrd-simple- perl, libsafe-isa- perl, libscope-guard- perl, libsemver- perl, libset-tiny- perl, libsharyanto-file-util- perl, libshell- command-perl, libsnmp- info-perl, libsoap-lite- perl, libstat-lsmode- perl, libstatistics-online- perl, libstring- compare-constanttime-perl, libstring-format- perl, libstring- toidentifier-en-perl, libstring-tt-perl, libsub-recursive-perl, libsvg-tt-graph-perl, libsvn-notify-perl, libswish-api-common-perl, libtap-formatter-junit-perl, libtap-harness-archive- perl, libtemplate- plugin-number-format-perl, libtemplate-plugin-yaml- perl, libtemplate- tiny-perl, libtenjin- perl, libterm-visual- perl, libtest-block- perl, libtest-carp- perl, libtest-classapi- perl, libtest-cmd- perl, libtest- consistentversion-perl, libtest-data-perl, libtest-databaserow-perl, libtest-differences-perl, libtest-file-sharedir- perl, libtest- hasversion-perl, libtest-kwalitee-perl, libtest-lectrotest-perl, libtest-module-used-perl, libtest-object-perl, libtest-perl-critic-perl, libtest-pod-coverage-perl, libtest-script-perl, libtest-script-run-perl, libtest-spelling-perl, libtest-strict-perl, libtest-synopsis-perl, libtest-trap-perl, libtest-unit-perl, libtest-utf8-perl, libtest- without-module-perl, libtest-www-selenium-perl, libtest-xml-simple-perl, libtest-yaml-perl, libtex-encode-perl, libtext-bibtex-perl, libtext-csv-encoded-perl, libtext-csv-perl, libtext-dhcpleases-perl, libtext-diff-perl, libtext- quoted-perl, libtext-trac- perl, libtext-vfile-asdata- perl, libthai, libthread-conveyor- perl, libthread-sigmask- perl, libtie-cphash- perl, libtie-ical- perl, libtime-stopwatch- perl, libtk-dirselect- perl, libtk-pod- perl, libtorrent, libturpial, libunicode-japanese- perl, libunicode- maputf8-perl, libunicode-stringprep-perl, libuniversal-isa-perl, libuniversal-moniker-perl, liburi-encode-perl, libvi-quickfix-perl, libvideo-capture-v4l-perl, libvideo-fourcc-info- perl, libwiki-toolkit- plugin-rss-reader-perl, libwww-mechanize-formfiller- perl, libwww- mechanize-gzip-perl, libwww-mechanize-perl, libwww-opensearch-perl, libx11-freedesktop-desktopentry- perl, libxc, libxml-dtdparser- perl, libxml-easy- perl, libxml-handler-trees- perl, libxml-libxml- iterator-perl, libxml-libxslt-perl, libxml-rss-perl, libxml- validator-schema-perl, libxml-xpathengine-perl, libxml-xql-perl, llvm-py, madbomber, makefs, mdpress, media-player- info, meta-kde- telepathy, metamonger, mmm- mode, mupen64plus-audio- sdl, mupen64plus-rsp- hle, mupen64plus-ui- console, mupen64plus- video-z64, mussort, newpid, node- formidable, node-github-url- from-git, node- transformers, nsnake, odin, otcl, parsley, pax, pcsc- perl, pd- purepd, pen, prank, proj, proot, puppet-module-puppetlabs- postgresql, python-async, python- pysnmp4, qrencode, r-bioc- graph, r-bioc- hypergraph, r-bioc- iranges, r-bioc- xvector, r-cran- pscl, rbenv, rlinetd, rs, ruby- ascii85, ruby- cutest, ruby- ejs, ruby-factory- girl, ruby- hdfeos5, ruby- kpeg, ruby- libxml, ruby- password, ruby-zip- zip, sdl- sound1.2, stterm, systemd, taktuk, tcc, tryton-modules-account- invoice, ttf- summersby, tupi, tuxpuck, unknown- horizons, unsafe- mock, vcheck, versiontools, vim-addon- manager, vlfeat, vsearch, xacobeo, xen- tools, yubikey-personalization- gui, yubikey- personalization.
The following packages became reproducible after getting fixed:
- cwirc/2.0.0-8 uploaded by Colin Tuckley, original patch by Reiner Herrmann.
- darkplaces/0~20140513+svn12208-1 by Simon McVittie.
- exactimage/0.9.1-4 by Sven Eckelmann.
- gnupg/1.4.19-1 by Daniel Kahn Gillmor.
- httpunit/1.7+dfsg-11 by Emmanuel Bourg.
- hy/0.10.1-2 uploaded by Tianon Gravi, original patch by Reiner Herrmann.
- ioquake3/1.36+u20150412+dfsg1-2 by Simon McVittie, original patch by Reiner Herrmann.
- kiwi/1.9.22-3 by Jelmer Vernooij.
- lava-server/2015.05-1 uploaded by Neil Williams, original patch by Reiner Herrmann.
- libelixirfm-perl/1.1.976-4 uploaded by gregor herrmann, original patch by Chris Lamb.
- littler/0.2.3-2 by Dirk Eddelbuettel.
- mednafen/0.9.38.1-1 by Stephen Kitt.
- nftables/0.4-4 by Arturo Borrero Gonzalez.
- ntdb/1.0-7 by Jelmer Vernooij.
- onioncat/0.2.2+svn566-1 by intrigeri.
- openarena/0.8.8-13 by Simon McVittie.
- openarena-085-data/0.8.5split-6 by Simon McVittie.
- openarena-088-data/0.8.8-3 by Simon McVittie.
- openarena-data/0.8.5split-6 by Simon McVittie.
- openarena-maps/0.8.5split-6 by Simon McVittie.
- openarena-players/0.8.5split-6 by Simon McVittie.
- openarena-players-mature/0.8.5split-6 by Simon McVittie.
- openarena-textures/0.8.5split-6 by Simon McVittie.
- pybik/2.0-1 by B. Clausius.
- python-xmp-toolkit/2.0.1+git20140309.5437b0a-1 by Daniel Stender.
- quakespasm/0.90.0-3 by Stephen Kitt.
- traceroute/1:2.0.21-1 uploaded by Laszlo Boszormenyi, original patch by Lunar.
- unar/1.8.1-4 uploaded by Matt Kraai, original patch by Lunar.
- websvn/2.3.3-1.3 uploaded by Thijs Kinkhorst, original patch by Chris Lamb.
- xd/3.23.01-2 uploaded by Frank B. Brokken, original patch by Chris Lamb.
Some uploads fixed some reproducibility issues but not all of them:
- ada-reference-manual/1:2012.2-5 by Nicolas Boulenguez.
- apparmor/2.9.2-2 by intrigeri.
- argyll/1.7.0+repack-1 by Jörg Frings-Fürst.
- lava-dispatcher/2015.05-1 by Neil Williams.
- libaunit/3.7.1-2 by Nicolas Boulenguez.
- libflorist/2014-2 by Nicolas Boulenguez.
- mailcrypt/3.5.9-8 uploaded by Barak A. Pearlmutter, original patch by Chris Lamb.
- openchange/1:2.2-7 by Jelmer Vernooij.
- sane-backends/1.0.24-11 by Jörg Frings-Fürst timestamps in .dvi and .ps
- tomcat6/6.0.41-4 by Emmanuel Bourg.
- tomcat7/7.0.61-1 by Emmanuel Bourg; currently FTBFS.
- tomcat8/8.0.22-2 by Emmanuel Bourg.
Patches submitted which did not make their way to the archive yet:
- #784541 on yasm by Lunar: remove build date from version strings.
- #784694 on smcroute by Micha Lenk: remove build date from version string.
- #784672 on gnumeric by Daniel Kahn Gillmor: remove timestamps in embedded gzip’ed data in shared library.
- #774347 on sed by Lunar: fix permissions before creating the package.
- #784352 on icebreaker by Reiner Herrmann: use UTC timezone when calculating version date.
- #784325 on kde-workspace by Lunar: make the output of kdm confproc.pl stable.
- #784602 on monkeysign by Daniel Kahn Gillmor: use time of
debian/changelog
entry when generating documentation. - #784723 on alot by Juan Picca: pass time of
debian/changelog
entry to Sphinx. - #784538 on file-rc by Lunar: use
sed
instead ofgrep+mv
to keep correct file permissions. - #784335 on libapache2-mod-perl2 by Lunar: set
PERL_HASH_SEED=0
during configure to make the generated.c
and.h
files stable. - #784267 on mpv by Lunar: pass
--disable-build-date
to./configure
. - #784793 on bugs-everywhere by Daniel Kahn Gillmor: use time of
debian/changelog
entry as build date. - #784318 on gnome-desktop3 by Lunar: use time of
debian/chanelog
entry as build date. - #774504 on debianutils by Lunar: fix file permissions.
reproducible.debian.net
Alioth now hosts a script that can be used to redo builds and test for a package. This was preliminary done manually through requests over the IRC channel. This should reduce the number of interruptions for jenkins’ maintainers
The graph of the oldest build per day has been fixed. Maintainance scripts will not error out when they are no files to remove.
Holger Levsen started work on being able to test variations of CPU features and build date (as in build in another month of 1984) by using virtual machines.
debbindiff development
Version 18 has been released. It will uses proper comparators for pk3 and info files. Tar member names are now assumed to be UTF-8 encoded.
The limit for the maximum number of different lines has been removed. Let’s
see on reproducible.debian.net
how it goes for pathological cases.
It’s now possible to specify both --html
and --text
output. When neither
of them is specified, the default will be to print a text report on the
standard output (thanks to Paul Wise for the suggestion).
Documentation update
Nicolas Boulenguez investigated Ada libraries.
Package reviews
451 obsolete reviews have been removed and 156 added this week.
New identified issues: running kernel version getting captured, random filenames in GHC debug symbols, and timestamps in headers generated by qdbusxml2cpp.
Misc.
Holger Levsen went to re:publica and talked about reproducible builds to developers and users there.
Holger also had a chance to meet FreeBSD developers and discuss the status of FreeBSD. Investigations have started on how it could be made part of our current test system.
Laurent Guerby gave Lunar access to systems in the GCC Compile Farm. Hopefully access to these powerful machines will help to fix packages for GCC, Iceweasel, and similar packages requiring long build times.