--- layout: blog week: 191 published: 2018-12-25 12:01:43 --- [![](/images/blog/191/header.png#center)](https://reproducible-builds.org/) Merry Christmas from everybody working on reproducible builds. 🎅 Here's what happened in the [Reproducible Builds](https://reproducible-builds.org) effort between Sunday December 16 and Saturday December 22 2018: * The [F-Droid](https://f-droid.org) project, a catalogue of free-software applications for the Android platform published a page on their website [describing their adoption and implementation of reproducible builds](https://f-droid.org/en/docs/Reproducible_Builds/). * [Dave Rosenthal](https://blog.dshr.org/) wrote about [securing the software supply chain](https://blog.dshr.org/2018/12/securing-software-supply-chain.html) touching on reproducible builds and certificate transparency, etc. In addition, Avery ("apenwarr") Pennarun wrote a blog post entitled "[mtime comparison considered harmful](https://apenwarr.ca/log/20181113)". * [Chris Lamb](https://chris-lamb.co.uk/) updated `strip-nondeterminism`, our tool to post-process files to remove known non-deterministic output: * Remove `javaproperties` handler after Emmanuel Bourg's patch was released in `openjdk-11` version `11.0.1+13-3`. ([#914289](https://bugs.debian.org/914289)) * Drop `.ar` handler as `binutils` is reproducible. ([#781262](https://bugs.debian.org/781262), [#843811](https://bugs.debian.org/843811)) * Ignore encrypted `.zip` files as we can never normalise them by definition. ([#852207](https://bugs.debian.org/852207)) * As part of the [Software Freedom Conservancy](https://sfconservancy.org)'s fundraiser, Josh Triplett [referenced us in a short interview](https://sfconservancy.org/blog/2018/dec/18/JoshT/): > Reproducible Builds represents one of those ideas where the goal seems obvious and yet the execution requires an incredible and pervasive effort across the industry, and the people working on it have done an amazing job… * [Joachim Breitner](http://www.joachim-breitner.de/blog) wrote a blog post titled "[Thoughts on Bootsrapping GHC](http://www.joachim-breitner.de/blog/748-Thoughts_on_bootstrapping_GHC)", attempting to answer the question of "how can we build a whole operating system from just and only source code, using very little, or even no, binary seeds or auto-generated files." * A full and in-depth report about [our recent summit](https://reproducible-builds.org/events/paris2018/) is being prepared but in the meantime [there were further reports published](https://discourse.nixos.org/t/reproducible-builds-summit-report/1683/2) from [NixOS](https://nixos.org/) developers `zimbatm`, `Profpatsch` and `lewo`. * Reproducible builds were mentioned in [Episode 2](https://librelounge.org/episodes/episode-2-thanksgiving-npm-and-malware-in-free-software.html) of the [Libre Lounge](https://librelounge.org/) podcast in a more-general discussion about software supply chains around the recent [NPM event-stream attack](https://blog.bitpay.com/npm-package-vulnerability-copay/). ([Direct link](https://pca.st/6mqx#t=42m3s)) * Julian Hyde posted to the Apache "Incubator" mailing list discussing the [differences between their binary and source releases](https://lists.apache.org/thread.html/ceb357513ff0403414b5fff7dbeb1ea43961e71f9e48425d6e3cea8f@%3Cgeneral.incubator.apache.org%3E) and how they should correlate. * After overhauling the [diffoscope.org](https://diffoscope.org) website last week, Chris Lamb tidied the spacing of the logo when viewing on a mobile device [[...](https://salsa.debian.org/reproducible-builds/diffoscope-website/commit/3e4b549)] and ensured the ["Fork me on Salsa" ribbon](https://chris-lamb.co.uk/posts/salsa-ribbons) was hidden too [[...](https://salsa.debian.org/reproducible-builds/diffoscope-website/commit/b8d16b6)]. * There was further discussion on our mailing list on discussing Reproducible Builds through a [mathematical formalism perspective](https://lists.reproducible-builds.org/pipermail/rb-general/2018-December/001346.html). * The blog for the [Go programming language](https://golang.org) posted their [plans for Go modules in 2019](https://blog.golang.org/modules2019#TOC_5) which include providing a "notary" service. As some background to the problem: > Today `go get` relies on connection-level authentication (HTTPS or SSH) to check that it is talking to the right server to download code. There is no additional check of the code itself, leaving open the possibility of man-in-the-middle attacks if the HTTPS or SSH mechanisms are compromised in some way. Decentralization means that the code for a build is fetched from many different servers, which means the build depends on many systems to serve correct code. * 6 Debian package reviews were added, 10 were updated and 11 were removed in this week, adding to [our knowledge about identified issues](https://tests.reproducible-builds.org/debian/index_issues.html). * On January 9th 2019, Chris Lamb will speak at [Université de Rennes](https://www.univ-rennes1.fr/), France on reproducible builds. ## Packages reviewed and fixed, and bugs filed * [Bernhard M. Wiedemann](https://lizards.opensuse.org/author/bmwiedemann/): * [hpx](https://build.opensuse.org/request/show/660040) (use [upstream patch](https://github.com/STEllAR-GROUP/hpx/pull/3585)) * [python-jupyter_imatlab_kernel](https://build.opensuse.org/request/show/660055) (do not let `pip` embed a random "temp" path) * [rust](https://github.com/rust-lang/rust/issues/57041) (non-deterministic `asm` / `cmpq`) * Chris Lamb: * [#917101](https://bugs.debian.org/917101) filed against [python-sshoot](https://tracker.debian.org/pkg/python-sshoot). * [#917102](https://bugs.debian.org/917102) filed against [node-nodedbi](https://tracker.debian.org/pkg/node-nodedbi). * Jelle van der Waa: * [wavemon](https://github.com/uoaerg/wavemon/pull/59) (date and time in binary) * Eli Schwartz * [crystal](https://github.com/crystal-lang/crystal/pull/7186) (depend on standard variable to let the user define the builddate) ## Test framework development There were a number of updates to our [Jenkins](https://jenkins.io/)-based testing framework that powers [tests.reproducible-builds.org](https://tests.reproducible-builds.org/) this week by Holger Levsen including: * [Arch Linux](https://www.archlinux.org/)-specific changes: * Extend `refresh_pattern`. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/cdc6bc14)] * [Debian](https://www.debian.org/)-specific changes: * Adopt to new "offline nodes" syntax. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/72f80401)] * Fix a bug where offline nodes were not recognised as such. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/8cf7c66f)] * Limit `unrep_with_dbd_issues()` to Debian architectures for now. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/e4803e6b)] * Misc/generic changes: * Don't use existing hosts as example. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/3c660d2d)] * Add link to database schema. (Thanks for Bernhard M. Wiedemann for pointing out that was missing.) [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/31ff1930)] * Thank the [OSU Open Source Lab from Oregon State University (OSUOSL)](https://osuosl.org/) for hosting the new `amd64` nodes [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/c7afe284)] as well as add the new nodes themselves [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/8ea537f4)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/4160dbf6)], perform the various networking configuration [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/710b804c)] and other various tweaks [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/01d0462f)]. * Various bits of build node maintenance. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/c6298df6)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/7b275c0a)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/1bdb6b3f)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/958278ae)] In addition, Mattia Rizzolo updated the `reproducible_notes.py` script to only store notes for Debian packages in the database for now. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/0faa4aaf)] ## [reproducible-builds.org](https://reproducible-builds.org) website development Chris Lamb made a huge number of updates to our [reproducible-builds.org](https://reproducible-builds.org) project website this week: * Apply some initial, easy styling improvements to our pages via a custom CSS stylesheet for easier merging. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/173c604)][[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/6d8a037)] * Move the [blog index page](https://reproducible-builds.org/blog/) and blog posts to the new style. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/1e3f5a2)][[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/94e53f2)] * Migrate [news entries](https://reproducible-builds.org/news/) and the index to the new style. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/a0c586c)][[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/b2ded56)] * Put the [list of involved projects](https://reproducible-builds.org/who/) in a nice card grid. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/762d822)] * Ensure we don't horizontally scroll due to oversized images in blog posts. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/6247c90)] * Set a more informative site title. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/29c40a3)] * Add a simple footer for the new style. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/5638819)] * Don't space out [Markdown](https://en.wikipedia.org/wiki/Markdown)-generated bulleted lists so much. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/b423129)] Holger Levsen also updated the pages for [our recent summit in Paris](https://reproducible-builds.org/events/paris2018/) to add links to the summit report [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/4a2c567)][[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/285ff3e)] and to credit other organisers and sponsors [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/34c9554)][[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/77eaf6c)]. He later added links to [Jelle van der Waa](https://vdwaa.nl) and [Bernhard M. Wiedemann](https://lizards.opensuse.org/author/bmwiedemann/) reports. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/9aac7b7)][[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/909b390)] Finally, `heinrich5991` provided two grammatical fixups to our "[How to join the Salsa group](https://reproducible-builds.org/contribute/salsa/)" page. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/81c073e)][[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/011f9b9)] --- This week's edition was written by Bernhard M. Wiedemann, Chris Lamb, Eli Schwartz, Jelle van der Waa, Holger Levsen & reviewed by a bunch of Reproducible Builds folks on IRC & the mailing lists.