--- layout: blog week: 199 published: 2019-02-19 12:03:50 --- Here's what happened in the [Reproducible Builds](https://reproducible-builds.org) effort between Sunday February 10th and Saturday February 16th 2019: * `strip-nondeterminism` is our tool that post-processes files to remove known non-deterministic output. This week, Chris Lamb adjusted its behaviour to deduplicate hardlinks via `stat(2)` before processing to avoid issues when handling files in parallel; as the per-filetype handlers are yet currently guaranteed to be atomic, one process could temporarily truncate a file which can cause errors in other processes operating on the "same" file under a different pathname. This was thus causing package build failures in packages that de-duplicate hardlinks in their build process such as the [Debian Administrator's Handbook](https://debian-handbook.info/) ([#922168](https://bugs.debian.org/#922168)). * There was [a brief update from the Debian Ruby maintainers](https://bugs.debian.org/848660) on whether the language might need to strip `-fdebug-prefix-map` from the tools used to build extensions. * On [our mailing list](https://lists.reproducible-builds.org/listinfo/rb-general), Holger Levsen [re-raised a question](https://lists.reproducible-builds.org/pipermail/rb-general/2019-February/001446.html) regarding uploading the "official" `.buildinfo` files to [buildinfo.debian.net](https://buildinfo.debian.net/). * On Tuesday 26th February Chris Lamb will speak at [Speck&Tech 31 "Open Security"](https://www.eventbrite.com/e/specktech-31-open-security-tickets-53503912643) on Reproducible Builds in Trento, Italy. * Jelle van der Waa fixed some spelling mistakes on the [reproducible-builds.org](https://reproducible-builds.org) project website. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/dea014e)] * 6 Debian package reviews were added, 4 were updated and 16 were removed in this week, adding to [our knowledge about identified issues](https://tests.reproducible-builds.org/debian/index_issues.html). ## diffoscope development ![]({{ "/images/blog/199/diffoscope.svg" | relative_url }}) [diffoscope](https://diffoscope.org/) is our in-depth "diff-on-steroids" utility which helps us diagnose reproducibility issues in packages. This week: * Chris Lamb: * Add support for comparing `.crx` [Chrome browser](https://www.google.com/chrome/) extensions. ([#41](https://salsa.debian.org/reproducible-builds/diffoscope/issues/41)) * Add support for comparing MP3 and files with similar metadata. ([#43](https://salsa.debian.org/reproducible-builds/diffoscope/issues/43)) * Replace the literal `xxd(1)` output (!)(!) in `tests/data/hello.wasm` with its binary equivalent ([#47](https://salsa.debian.org/reproducible-builds/diffoscope/issues/47)) and ensure both [WebAssembly](https://webassembly.org/) test data files are actually unique. ([#42](https://salsa.debian.org/reproducible-builds/diffoscope/issues/42)) * Catch tracebacks when mounting invalid filesystem images under [guestfs](http://libguestfs.org/). [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/03b9ffb)] * Fix tests when using [Ghostscript](https://www.ghostscript.com/) 9.20 vs 9.26 for Debian stable and for stable with the security repositories enabled. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/4a35e55)][[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/a7ad758)] * Temporarily drop `ubuntu-devel` from internal test matrix due to a `linux-firmware` package installation issue. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/fc3762e)] * Ed Maste: * Include relocations in [objdump](https://en.wikipedia.org/wiki/Objdump) disassembly. ([#48](https://salsa.debian.org/reproducible-builds/diffoscope/issues/48)) * Graham Christensen: * Clarify "no file-specific differences" message when we fallback to a binary diff. ([!19](https://salsa.debian.org/reproducible-builds/diffoscope/merge_requests/19)) * Mattia Rizzolo: * Make `test_ps.test_text_diff` pass with Ghostscript version 9.26. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/de05b14)] In addition, Vagrant Cascadian updated diffoscope in [GNU Guix](https://www.gnu.org/software/guix/) [[...](https://git.savannah.gnu.org/cgit/guix.git/commit/?id=295de8cc1af9afc2683cee332793bff1730bf1b3)] and went on to upload disorderfs [[...](https://git.savannah.gnu.org/cgit/guix.git/commit/?id=75d12c40f7edd7f3abaada916d1c2018bd3b0d46)] and trydiffoscope [[...](https://git.savannah.gnu.org/cgit/guix.git/commit/?id=706460a35754a47bf832a40de4f22271e7088226)] too. ## Packages reviewed and fixed, and bugs filed * Bernhard M. Wiedemann: * [bison](https://build.opensuse.org/request/show/676711) ([profile-guided optimisation](https://en.wikipedia.org/wiki/Profile-guided_optimization)/parallelism) * [brp-check-suse](https://github.com/openSUSE/brp-check-suse/pull/10) (merged toolchain patch, allowing for reproducible `.a` files) * [fluidsynth](https://github.com/FluidSynth/fluidsynth/pull/512) (merged, avoid CPU-type specific nondeterminism from `-fused-multiply-add` used in version 2.29 of the [GNU C Library](https://en.wikipedia.org/wiki/GNU_C_Library)'s `pow` function). * [gambas3](https://gitlab.com/gambas/gambas/merge_requests/73) (fix build with [Poppler](https://poppler.freedesktop.org/) version 0.72) * [gnutls](https://gitlab.com/gnutls/gnutls/merge_requests/928) (date / copyright year) * [inotify-tools](https://github.com/rvoicilas/inotify-tools/pull/97) (use `ChangeLog` date for manual pages) * [ocr](https://build.opensuse.org/request/show/676592) (sort a `find`) * [python-django](https://github.com/django/django/pull/10994) (fix a test failure in 2028) * Chris Lamb: * [#922111](https://bugs.debian.org/922111) filed against [lmfit-py](https://tracker.debian.org/pkg/lmfit-py). * [#922137](https://bugs.debian.org/922137) filed against [x2gobroker](https://tracker.debian.org/pkg/x2gobroker). ## Test framework development We operate a comprehensive [Jenkins](https://jenkins.io/)-based testing framework that powers [tests.reproducible-builds.org](https://tests.reproducible-builds.org). * Hans-Christoph Steiner: * Set the `LANG` and `LC_ALL` environment variables for [F-Droid](https://f-droid.org/en/) builds to workaround an unsolved issue in Java/Gradle. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/a59dc0a4)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/98ad8c97)] * Modernise some dependencies. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/7c546c25)] * Node maintenance. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/9282396e)] * Holger Levsen: * Increased the diskspace for the two [OSU Open Source Lab](https://osuosl.org/) [Arch Linux](https://www.archlinux.org/) build nodes from 50GB to 350GB. * Upgraded all 47 nodes running Debian to the newly-released [Debian 9.8](https://www.debian.org/News/2019/20190216). * Fix the version checking for [diffoscope](https://diffoscope.org) in Arch Linux. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/fbff602d)] * Install kernels as a separate step to ignore failures when installing/upgrading [Debian backports'](https://backports.debian.org/) kernels. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/40a99c04)] * Fix a number of issues with our [Munin](http://munin-monitoring.org/) diskspace plugin. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/5b5b68b9)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/4c2f632a)] * Correct grammar of Arch Linux IRC message. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/4ec06893)] * Mattia Rizzolo: * Do not export packages tagged with `ftbfs_due_to_f-file-prefix-map` to the [Debian Package Tracker](https://tracker.debian.org/). [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/24da7d58)] * Node maintenance. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/b4652d1c)] --- This week's edition was written by Bernhard M. Wiedemann, Chris Lamb, Holger Levsen, Vagrant Cascadian & reviewed by a bunch of Reproducible Builds folks on IRC & the mailing lists.