--- layout: report year: "2019" month: "11" title: "Reproducible Builds in November 2019" draft: false date: 2019-12-12 16:28:15 --- **Welcome to the November 2019 report from the [Reproducible Builds](https://reproducible-builds.org) project.** {: .lead} [![]({{ "/images/reports/2019-11/reproducible-builds.png#right" | relative_url }})](https://reproducible-builds.org/) As a summary of our project, whilst anyone can inspect the source code of free software for malicious flaws almost all software is distributed to end users as pre-compiled binaries. The motivation behind the reproducible builds effort is therefore to ensure no flaws have been introduced during this compilation process by promising identical results are always generated from a given source, thus allowing multiple third-parties to come to a consensus on whether a build was compromised. In this month's report, we cover: * **Media coverage and events** — *Enter the Reproducibility Challenge, etc.* * **Upstream news** — *OCaml, Mes, Maven, etc.* * **Distribution work** — *The latest reports from Arch, Debian and openSUSE, etc.* * **Software development** — *Holiday bonanza of patches, work on diffoscope, etc.* * **Contributing** — *How to get in touch…* If you are interested in contributing to our project, please visit our [*Contribute*]({{ "/contribute/" | relative_url }}) page on our website. --- ## Media coverage and events ***We held our [fifth annual Reproducible Builds summit]({{ "/events/Marrakesh2019/" | relative_url }}) between the 1st and 8th December in Marrakesh, Morocco. A full, in-depth report will be posted next month…*** On November 16th, Vagrant Cascadian presented [*There and Back Again, Reproducibly*](https://osem.seagl.org/conferences/seagl2019/program/proposals/671) at the [SeaGL](https://seagl.org) in Seattle, Washington. [![]({{ "/images/reports/2019-11/themanifest.jpg#right" | relative_url }})](https://manifest.fm/14) Chris Lamb was featured on [The Manifest](https://manifest.fm) package management podcast in an episode called [*Reproducible Builds project and Debian package management*](https://manifest.fm/14). [ReScience C](http://rescience.github.io/) is an open-access journal that targets computational research and encourages the explicit replication of already published research. This month they announced their [*Ten Years Reproducibility Challenge*](https://rescience.github.io/ten-years/) which promotes the idea that old code — in this instance, a "scientific article [published] before January 1st 2010" — should also run on modern hardware and software in order to check one can obtain the same scientific results in the future. --- ## Upstream news Mike Hommey [pushed a change to Mozilla build system](https://hg.mozilla.org/integration/autoland/rev/cd6b79c74b23) to add and print error messages when differences are found between builds as [requested in bug #1597903](https://bugzilla.mozilla.org/show_bug.cgi?id=1597903). [![]({{ "/images/reports/2019-11/ocaml.png#right" | relative_url }})](https://ocaml.org/) There was fresh activity on an old pull request for the [OCaml](https://ocaml.org/) programming language regarding the usage and adoption of the [`BUILD_PATH_PREFIX_MAP` environment variable](https://reproducible-builds.org/specs/build-path-prefix-map/) that is used to ensure that software packages do not embed build-time paths into generated files. On [the pull request](https://github.com/ocaml/ocaml/pull/1515) in question [Gabriel Scherer](http://gallium.inria.fr/~scherer/) was kind enough to [provide many helpful examples on how to use the rewrite rules](https://github.com/ocaml/ocaml/pull/1515#issuecomment-559035723). Jan Nieuwenhuizen [announced the release of GNU Mes 0.21](https://lists.reproducible-builds.org/pipermail/rb-general/2019-November/001725.html) and Jeremiah Orians [announced](https://lists.reproducible-builds.org/pipermail/rb-general/2019-November/001711.html) the release of [mescc-tools-seed](https://github.com/oriansj/mescc-tools-seed) version 1.1: > Capable of bootstrapping from a simple hex assembler all the way to a cross-platform C compiler Work is still ongoing [to] result in a full bootstrap from a 357 byte bootstrap binary all the way to GCC. [![]({{ "/images/reports/2019-11/maven.png#right" | relative_url }})](https://maven.apache.org/) [Hervé Boutemy](http://people.apache.org/~hboutemy/) announced the release of three base [Apache Maven](https://maven.apache.org/) plugins (maven-source-plugin, maven-jar-plugin and maven-assembly-plugin 3.2.0) to get Reproducible Builds as a "direct output" from this build system. For more information, please see the ["Configuring for Reproducible Builds"](https://maven.apache.org/guides/mini/guide-reproducible-builds.html) section of their documentation. Eli Schwartz reported a bug against the [GNU groff](https://www.gnu.org/software/groff/) typesetting system for incomplete [`SOURCE_DATE_EPOCH`](https://reproducible-builds.org/specs/source-date-epoch/) environment variable support; the output files [appeared to be embedding the build timezone](https://savannah.gnu.org/bugs/?57218). --- ### Distribution work #### Arch Linux [![]({{ "/images/reports/2019-11/archlinux.png#right" | relative_url }})](https://www.archlinux.org/) A [slight but temporary decline in the Arch Linux reproducibility status](https://tests.reproducible-builds.org/archlinux/archlinux.png) was determined to be due to a bug in the continuous integration framework where one build was building with `--nocheck` whilst the other did not, resulting in the test dependencies being installed on one build. This led to differences in the `BUILDINFO` file which records the build dependencies. [![]({{ "/images/reports/2019-11/archstatus.png#center" | relative_url }})](https://tests.reproducible-builds.org/archlinux/archlinux.png) Morten Linderud (*Foxboron*) [wrote a blog post](https://linderud.dev/blog/reproducible-arch-linux-packages/) on the progress of reproducible builds for Arch packages, including how to reproduce packages and a roadmap of future of work. The standard Arch development tools package (`devtools`) now contains a new tool called `makerepropkg` which can reproduce a package from the Arch repositories given a seed `PKGBUILD` file. A lot of work has been put into getting the "`[core]`" system more reproducible; [every package has been rebuilt](https://lists.archlinux.org/pipermail/arch-dev-public/2019-November/029721.html) with a new version of [`pacman`](https://wiki.archlinux.org/index.php/pacman) which resolved a previous issue with storing the package size. Build failures and download issues have also been resolved which have lead to an increase of reproducible packages in this distributions [continuous integration setup](https://tests.reproducible-builds.org/archlinux/archlinux.html). #### openSUSE [![]({{ "/images/reports/2019-11/opensuse.png#right" | relative_url }})](https://www.opensuse.org/) Bernhard M. Wiedemann posted a [summary of openSUSE updates for 2019](https://lists.reproducible-builds.org/pipermail/rb-general/2019-November/001722.html) including `rpm`, a [high level openSUSE status](https://bugzilla.opensuse.org/show_bug.cgi?id=1133809) and fixing [problems with `.pyc` files](https://bugzilla.opensuse.org/show_bug.cgi?id=1094323) which is also relevant to Arch Linux. The report also summarises the current reproducibility status as follows: [![]({{ "/images/reports/2019-11/opensuse-graph.png#center" | relative_url }})](http://rb.zq1.de/compare.factory/graph.png) In addition to this, Bernhard also published his [monthly Reproducible Builds status update](https://lists.opensuse.org/opensuse-factory/2019-11/msg00370.html). #### Debian [![]({{ "/images/reports/2019-11/debian.png#right" | relative_url }})](https://debian.org/) [Thorsten Glaser](https://www.mirbsd.org/) filed [a bug against the `debhelper` packaging library](https://bugs.debian.org/944691) to request that it sets and exports a [`umask`](https://en.wikipedia.org/wiki/Umask) of `022` for all operations as a possible "harmonisation potential". A varying `umask` can result in unreproducible packages as the file permissions on the build system can be embedded into archives generated by the build system. Chris Lamb categorised a large number of packages and issues in the Reproducible Builds "[notes](https://salsa.debian.org/reproducible-builds/reproducible-notes/activity)" repository, including adding a new `ocaml_dune_captures_build_path` toolchain issue [[...](https://salsa.debian.org/reproducible-builds/reproducible-notes/commit/c12c8853)]. Vagrant Cascadian filed a bug against the [Lintian](https://lintian.debian.org/) Debian static analyser for Debian packages to request that it [checks for missing and/or unsigned `.buildinfo` files](https://bugs.debian.org/944707). He also [uploaded the latest version](https://tracker.debian.org/news/1080851/accepted-mes-020-1-source-amd64-into-experimental-experimental/) of [GNU Mes](https://www.gnu.org/software/mes/) to the *unstable* distribution. #### Other [![]({{ "/images/reports/2019-11/alpine.png#right" | relative_url }})](https://alpinelinux.org/) Natanael Copa ([@n_copa](https://twitter.com/n_copa)) posted on Twitter that he was [finally able to make a fully reproducible package](https://twitter.com/n_copa/status/1192447768855482369)) for [Alpine Linux](https://alpinelinux.org/). The [NixOS](https://nixos.org/) distribution announced that they [plan to run a Christmas Hackathon](https://www.meetup.com/NixOS-London/events/266848767) hosted by [Smarkets](https://smarkets.com/) in London, England on 9th December. --- ## Software development #### Upstream patches The Reproducible Builds project detects, dissects and attempts to fix as many currently-unreproducible packages as possible. We endeavour to send all of our patches upstream where appropriate. This month, we wrote a large number of such patches, including: * Arnout Engelen: * [`OpenSC`](https://github.com/OpenSC/OpenSC/pull/1839) (generate consistent [DocBook](https://docbook.org) identifiers) * Bernhard M. Wiedemann: * [`abseil-cpp`](https://build.opensuse.org/request/show/750468) (sort the output of `find`/`readdir(2)`) * [`afl`](https://github.com/vanhauser-thc/AFLplusplus/pull/122) (date) * [`brp-check-suse`](https://github.com/openSUSE/brp-check-suse/pull/29) (to strip [link-time optimisation (LTO)](https://en.wikipedia.org/wiki/Interprocedural_optimization) data from `.o` object files) * [`buzztrax`](https://github.com/Buzztrax/buzztrax/issues/89) (report a parallelism/nondeterminism issue from [GTK-Doc](https://www.gtk.org/gtk-doc/)) * [`cardpeek`](https://build.opensuse.org/request/show/746648) (fix a previous patch) * [`cecilia`](https://build.opensuse.org/request/show/750463) (strip date and time in a `.png` image file) * [`lib3270`](https://github.com/PerryWerneck/lib3270/pull/3) (merged; date) * [`maven-plugin-bundle`](https://github.com/apache/felix/pull/209) (fix a Java date) * [`nulloy`](https://build.opensuse.org/request/show/746033) (`.zip` issue, [already filed upstream](https://github.com/nulloy/nulloy/pull/149)) * [`opencensus-cpp`](https://build.opensuse.org/request/show/751817) (sort the result of `find`/`readdir(2)`) * [`OpenSC`](https://github.com/OpenSC/OpenSC/pull/1839) (generate consistent [DocBook](https://docbook.org) identifiers) * [`pcc`](https://build.opensuse.org/request/show/745529) (fix a build failure from [LTO](https://en.wikipedia.org/wiki/Interprocedural_optimization) in `.a` archive files) * [`perl-HTTP-Cookies`](https://github.com/libwww-perl/HTTP-Cookies/pull/56) (fix a build failure in 2025) * [`pocl`](https://github.com/pocl/pocl/issues/793) (report compile-time CPU detection) * [`python-oslo.reports`](https://review.opendev.org/693327) (drop unnecessary files with randomness) * [`sql-parser`](https://github.com/hyrise/sql-parser/pull/134) (sort `find`/`readdir(2)`) * [`vim`](https://bugzilla.opensuse.org/show_bug.cgi?id=1157623) (report a build failure when built without parallelism) * Various updates to the [RPM package manager](https://rpm.org/): * [#931](https://github.com/rpm-software-management/rpm/pull/931) — Keep at least one changelog entry to set [`SOURCE_DATE_EPOCH`](https://reproducible-builds.org/specs/source-date-epoch/). * [#933](https://github.com/rpm-software-management/rpm/pull/933) — Regression fix so we can override the `Build Date` header again. * [#936](https://github.com/rpm-software-management/rpm/pull/936) — Sort to avoid ordering issues from parallel header generation. * [#944](https://github.com/rpm-software-management/rpm/pull/944) — Provide a cleaner solution for bug [#936](https://github.com/rpm-software-management/rpm/pull/936) listed above. * Chris Lamb: * [#943954](https://bugs.debian.org/943954) filed against [`tm-align`](https://tracker.debian.org/pkg/tm-align). * [#943956](https://bugs.debian.org/943956) filed against [`snakemake`](https://tracker.debian.org/pkg/snakemake) ([forwarded upstream](https://github.com/snakemake/snakemake/pull/80)). * [#944131](https://bugs.debian.org/944131) filed against [`splitpatch`](https://tracker.debian.org/pkg/splitpatch) ([forwarded upstream](https://github.com/jaalto/splitpatch/pull/8)). * [#944214](https://bugs.debian.org/944214) filed against [`libaqbanking`](https://tracker.debian.org/pkg/libaqbanking). * [#944520](https://bugs.debian.org/944520) filed against [`isbg`](https://tracker.debian.org/pkg/isbg) ([forwarded upstream](https://github.com/isbg/isbg/pull/139)). * [#944782](https://bugs.debian.org/944782) filed against [`python-sybil`](https://tracker.debian.org/pkg/python-sybil) ([forwarded upstream](https://github.com/cjw296/sybil/pull/18)). * [#945105](https://bugs.debian.org/945105) filed against [`intel-gpu-tools`](https://tracker.debian.org/pkg/intel-gpu-tools). * [#945576](https://bugs.debian.org/945576) filed against [`superlu-dist`](https://tracker.debian.org/pkg/superlu-dist). * [#945822](https://bugs.debian.org/945822) filed against [`liblopsub`](https://tracker.debian.org/pkg/liblopsub). * [genpy](https://github.com/ros/genpy/pull/110#event-2768597322) * Vagrant Cascadian: * [#944694](https://bugs.debian.org/944694) filed against [`resource-agents`](https://tracker.debian.org/pkg/resource-agents) ([forwarded upstream](https://github.com/ClusterLabs/resource-agents/commit/088707c81b7ddfc117490a035f9f2b2803728694)). #### [diffoscope](https://diffoscope.org) [![]({{ "/images/reports/2019-11/diffoscope.png#right" | relative_url }})](https://diffoscope.org) [`diffoscope`](https://diffoscope.org) is our in-depth and content-aware diff utility that can locate and diagnose reproducibility issues. It is run countless times a day on [our testing infrastructure](https://tests.reproducible-builds.org/debian/reproducible.html) and is essential for identifying fixes and causes of non-deterministic behaviour. diffoscope versions `131`, `132` and `133` were uploaded to Debian unstable by Chris Lamb. He also made the following changes: * New features / improvements: * Allow all possible `.zip` file variations to return from external tools with non-zero exit codes, not just known types we can identify (e.g. Java `.jmod` and `.jar` files). ([#78](https://salsa.debian.org/reproducible-builds/diffoscope/issues/78)) * Limit `.dsc` and `.buildinfo` file matching to files in ASCII or UTF-8 format. ([#77](https://salsa.debian.org/reproducible-builds/diffoscope/issues/77)) * Bump the previous `max_page_size` limit from 400 kB to 4 MB. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/7d6daf7)] * Clarify in the HTML and text outputs that the limits are per-format, not global. ([#944882](https://bugs.debian.org/944882)) * Don't use line-based buffering when communicating with subprocesses in "binary" mode. ([#75](https://salsa.debian.org/reproducible-builds/diffoscope/issues/75)) * Regression fixes: * Correct the substitution/filtering of paths in ELF output to avoid unnecessary differences depending on the path name provided and commandline. ([#945572](https://bugs.debian.org/945572)) * Silence/correct a Python [`SyntaxWarning`](https://docs.python.org/3/library/exceptions.html#SyntaxWarning) message due to incorrectly comparing an integer by identity vs. equality. ([#945531](https://salsa.debian.org/reproducible-builds/diffoscope/commit/ecef7e6)) * Testsuite improvements: * Refresh the [OCaml](https://ocaml.org/) test fixtures to support versions greater than 4.08.1. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/4754277)] * Update an [Android manifest](https://developer.android.com/guide/topics/manifest/manifest-intro) test to reflect that parsed XML attributes are returned in a new/sorted manner under Python 3.8. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/c01dc80)] * Dramatically Truncate the [tcpdump](https://www.tcpdump.org/) expected diff to 8KB from ~600KB to reduce the size of the release tarball. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/9c66d5f)] * Add a self-test to encourage that new test data files are generated dynamically or at least no new ones are added without an explicit override. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/1c4b127)] * Add a comment that the `text_ascii1` and `text_ascii2` fixture files are used in multiple tests so is not trivial to remove/replace them. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/69a8cc7)] * Drop two more test fixture files for the directory tests. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/a0f7a11)] * Don't run our self-test against the output of the [Black source code reformatter](https://black.readthedocs.io/en/stable/) with versions earlier than "ours" as it will generate different results. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/aefa5a3)] * Update an XML test for Python 3.8. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/06d11dd)] * Drop unused an unused `BASE_DIR` global. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/02497c9)] * Code improvements: * Rework a long string of `or` statements into a loop with a `break`. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/477584e)] * Update code to reflect the latest version of the [Black](https://black.readthedocs.io/en/stable/) source code reformatter. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/75ea5c3)] * Correct a reference to the `.rdx` extension suffix in a comment. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/4a00369)] Other contributions were also made from: * Jelle van der Waa: * Add support for comparing `.zst` files created by [Zstandard](https://github.com/facebook/zstd) compression algorithm. ([#34](https://salsa.debian.org/reproducible-builds/issues/34)) * Mattia Rizzolo: * Install `python3-all` whilst running the [autopkgtests](https://ci.debian.net/) as we want to run the tests against all supported Python versions. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/cb74600)] * Use `apt-get` instead of `apt` in our `Dockerfile`. [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/a5c1364)] * Add `zstd` to our test dependencies after the resolution of [#34](https://salsa.debian.org/reproducible-builds/issues/34). [[...](https://salsa.debian.org/reproducible-builds/diffoscope/commit/2c87e96)] #### strip-nondeterminism [strip-nondeterminism](https://tracker.debian.org/pkg/strip-nondeterminism) is our tool to remove specific non-deterministic results from a completed build. This month, Chris Lamb added `file` as a dependency for `libfile-stripnondeterminism-perl` ([#945212](https://bugs.debian.org/945212)) and moved away from deprecated `$ADTTMP` variable [[...](https://salsa.debian.org/reproducible-builds/strip-nondeterminism.git/commit/803d5f9)] and made two uploads in total (`1.6.2-1` & `1.6.3-1`). #### Project website [![]({{ "/images/reports/2019-11/website.png#right" | relative_url }})](https://reproducible-builds.org/) There was yet more effort put into our [our website](https://reproducible-builds.org/) this month, including: * Chris Lamb dropped a duplicated use the term "community" and other words [[...](https://salsa.debian.org/reproducible-builds/reproducible-website.git/commit/e390fe4)][[...](https://salsa.debian.org/reproducible-builds/reproducible-website.git/commit/7c14c50)], correcting the capitalisation of [GitHub](https://github.com/) & [GitLab](https://gitlab.org/) [[...](https://salsa.debian.org/reproducible-builds/reproducible-website.git/commit/ae47fcd)] and corrected the use of an "an" [[...](https://salsa.debian.org/reproducible-builds/reproducible-website.git/commit/93fc479)]. * Daniel Edgecumbe added a [section on initramfs and `.cpio` files]({{ "/docs/archives/" | relative_url }}#initramfs-images) to our [Archive Metadata]({{ "/docs/archives/" | relative_url }}) page. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/c584cec)] * Hervé Boutemy added a link to [Maven Guide to Configuring for Reproducible Builds](https://maven.apache.org/guides/mini/guide-reproducible-builds.html) to [our JVM page]({{ "/docs/JVM/" | relative_url }}). [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/93fd259)] * Holger Levsen [added a link](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/43e72db) to the [openSUSE reproducible-builds CI graph](http://rb.zq1.de/compare.factory/graph.png) and [did](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/f834fc1) [several](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/d198ada) [commits](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/7e5ac5d) [in](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/b38ded6) preparation of the [Reproducible Builds summit in Marrakesh in December](https://reproducible-builds.org/events/Marrakesh2019/). * Jelle van der Waa added [Arch Linux](https://archlinux.org/)-specific links for [diffoscope](https://diffoscope.org/) and friends to our [*Tools*]({{ "/tools/" | relative_url }}) page. [[...](https://salsa.debian.org/reproducible-builds/reproducible-website/commit/0ca7223)] #### Test framework [![]({{ "/images/reports/2019-11/testframework.png#right" | relative_url }})](https://tests.reproducible-builds.org/) We operate a comprehensive [Jenkins](https://jenkins.io/)-based testing framework that powers [tests.reproducible-builds.org](https://tests.reproducible-builds.org). This month, the following changes were made: * Alexander Couzens ([OpenWrt](https://openwrt.org/)): Fix a typo in the `kirkwood` architecture. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/369038e3)] * Holger Levsen: * Debian: * Display newer suites first on pages showing the oldest build results. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/aa2ace2f)] * Use the fully qualified-domain name (FQDN) when specifying hostnames in our [list of offline nodes](https://salsa.debian.org/qa/jenkins.debian.net/blob/HEAD/jenkins-home/offline_nodes). [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/8266e978)] * Reflect that `coccia.debian.org` has changed IP address. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/25964ef8)] * Ignore the [Maximum transmission Unit (MTU)](https://en.wikipedia.org/wiki/Maximum_transmission_unit) on `eth0` when checking for host health. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/1a549068)] * Perform the "[`/usr` merge](https://wiki.debian.org/UsrMerge)" variation in the *unstable*, *experimental* and *bullseye* distributions but not on *buster*. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/a9919410)] * [FreeBSD](https://www.freebsd.org/): Upgrade the test VM to FreeBSD 12.1. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/75e87e5d)] * [Arch Linux](https://www.archlinux.org/): * Don't fail build jobs if the call to `diffoscope --version` fails; be a bit more verbose in the job output instead. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/de6dce51)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/8ca7241c)] * Attempt to be less error prone when ending [`schroot`](https://wiki.debian.org/Schroot) sessions. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/32b9fe26)] * [OpenWrt](https://openwrt.org/): * Additionally build the `brcm47xx`, `kirkwood`, `lantiq`, `mediatek`, `omap`, `sunxi` and `tegra` targets. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/c40b5f5b)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/c40b5f5b)] * Make build job outputs easier to read and thus understand. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/6baae828)] * Include the build target and subtarget in summary paragraphs at the top of report pages. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/3f67936e)] * Add a reminder to fix the job URL later. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/98c3e2c6)] * Misc: * Attempt to fix the [PureOS](https://pureos.net/) package set. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/c9066d49)] * Shorten a "HOWTO" header a tiny bit. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/e6494947)] * Drop hack to fix the clock. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/3a7ef746)] * Improve a script header; patches are even more welcome than bugs! [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/ebefdd51)] * Disable the use of the [OpenSSH](https://openssh.org/) `ControlMaster` feature to prevent [Jenkins](https://jenkins.io/) killing connections. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/81273bf4)] * Make a number of improvements to our boilerplate texts/scripts. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/c3759e97)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/35c2b25f)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/2326d159)] * Jelle van der Waa: Skip running the [Arch Linux](https://archlinux.org/) tests for continuous builds and rebuilds. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/e16b3ee7)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/97145223)] * Mattia Rizzolo: * Set the maximum size for HTML pages generated by [diffoscope](https://diffoscope.org) to 1MB (current default is 400 KB). [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/0a56df32)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/e2ce7d08)] * Update and improve the backup routines for the email relay system managing `reproducible-builds.org`. [[...](https://salsa.debian.org/reproducible-builds/rb-mailx-ansible/commit/9563162)][[...](https://salsa.debian.org/reproducible-builds/rb-mailx-ansible/commit/734de20)] * Vagrant Cascadian: * Ensure [OpenSSH](https://openssh.org/) `authorized_keys` files are processed in the correct directory regardless of where they are run from. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/0316d461)] * Reduce the level of parallelism on `armhf` systems with a lot of cores to reduce swapping on highly parallel builds, additionally ensuring level of parallelism are odd and even numbers on the first and second builds respectfully. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/620fa54d)] The usual node maintenance was performed by Holger Levsen. [[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/ec74bdf4)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/37d071e5)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/06c70874)][[...](https://salsa.debian.org/qa/jenkins.debian.net/commit/c3cd0018)] --- ## Contributing If you are interested in contributing the Reproducible Builds project, please visit our [*Contribute*](https://reproducible-builds.org/contribute/) page on our website. However, you can get in touch with us via: * IRC: `#reproducible-builds` on `irc.oftc.net`. * Twitter: [@ReproBuilds](https://twitter.com/ReproBuilds) * Mailing list: [`rb-general@lists.reproducible-builds.org`](https://lists.reproducible-builds.org/listinfo/rb-general)
This month's report was written by Arnout Engelen, Chris Lamb, Holger Levsen, Jelle van der Waa, Bernhard M. Wiedemann and Vagrant Cascadian. It was subsequently reviewed by a bunch of Reproducible Builds folks on IRC and the mailing list.