Reproducible Builds: Reproducible Builds in February 2025
Welcome to the second report in 2025 from the Reproducible Builds project. Our monthly reports outline what we ve been up to over the past month, and highlight items of news from elsewhere in the increasingly-important area of software supply-chain security. As usual, however, if you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website.
Table of contents:
- Reproducible Builds at FOSDEM 2025
- Reproducible Builds at PyCascades 2025
- Does Functional Package Management Enable Reproducible Builds at Scale?
- reproduce.debian.net updates
- Upstream patches
- Distribution work
- diffoscope & strip-nondeterminism
- Website updates
- Reproducibility testing framework
Reproducible Builds at FOSDEM 2025
Similar to last year s event, there was considerable activity regarding Reproducible Builds at FOSDEM 2025, held on on 1st and 2nd February this year in Brussels, Belgium. We count at least four talks related to reproducible builds. (You can also read our news report from last year s event in which Holger Levsen presented in the main track.)
Jelle van der Waa, Holger Levsen and kpcyrd presented in the Distributions track on A Tale of several distros joining forces for a common goal. In this talk, three developers from two different Linux distributions (Arch Linux and Debian), discuss this goal which is, of course, reproducible builds. The presenters discuss both what is shared and different between the two efforts, touching on the history and future challenges alike. The slides of this talk are available to view, as is the full video (30m02s). The talk was also discussed on Hacker News.
Zbigniew J drzejewski-Szmek presented in the ever-popular Python track a on Rewriting .pyc files for fun and reproducibility, i.e. the bytecode files generated by Python in order to speed up module imports: It s been known for a while that those are not reproducible: on different architectures, the bytecode for exactly the same sources ends up slightly different. The slides of this talk are available, as is the full video (28m32s).
In the Nix and NixOS track, Julien Malka presented on the Saturday asking How reproducible is NixOS: We know that the NixOS ISO image is very close to be perfectly reproducible thanks to reproducible.nixos.org, but there doesn t exist any monitoring of Nixpkgs as a whole. In this talk I ll present the findings of a project that evaluated the reproducibility of Nixpkgs as a whole by mass rebuilding packages from revisions between 2017 and 2023 and comparing the results with the NixOS cache. Unfortunately, no video of the talk is available, but there is a blog and article on the results.
Lastly, Simon Tournier presented in the Open Research track on the confluence of GNU Guix and Software Heritage: Source Code Archiving to the Rescue of Reproducible Deployment. Simon s talk describes design and implementation we came up and reports on the archival coverage for package source code with data collected over five years. It opens to some remaining challenges toward a better open and reproducible research. The slides for the talk are available, as is the full video (23m17s).
Reproducible Builds at PyCascades 2025
Vagrant Cascadian presented at this year s PyCascades conference which was held on February 8th and 9th February in Portland, OR, USA. PyCascades is a regional instance of PyCon held in the Pacific Northwest. Vagrant s talk, entitled Re-Py-Ducible Builds caught the audience s attention with the following abstract:
Crank your Python best practices up to 11 with Reproducible Builds! This talk will explore Reproducible Builds by highlighting issues identified in Python projects, from the simple to the seemingly inscrutable. Reproducible Builds is basically the crazy idea that when you build something, and you build it again, you get the exact same thing or even more important, if someone else builds it, they get the exact same thing too.
More info is available on the talk s page.
Does Functional Package Management Enable Reproducible Builds at Scale?
On our mailing list last month, Julien Malka, Stefano Zacchiroli and Th o Zimmermann of T l com Paris in-house research laboratory, the Information Processing and Communications Laboratory (LTCI) announced that they had published an article asking the question: Does Functional Package Management Enable Reproducible Builds at Scale? (PDF).
This month, however, Ludovic Court s followed up to the original announcement on our mailing list mentioning, amongst other things, the Guix Data Service and how that it shows the reproducibility of GNU Guix over time, as described in a GNU Guix blog back in March 2024.
reproduce.debian.net updates
The last few months have seen the introduction of reproduce.debian.net. Announced first at the recent Debian MiniDebConf in Toulouse, reproduce.debian.net is an instance of rebuilderd operated by the Reproducible Builds project.
Powering this work is rebuilderd, our server which monitors the official package repositories of Linux distributions and attempt to reproduce the observed results there. This month, however, Holger Levsen:
-
Split packages that are not specific to any architecture away from amd64.reproducible.debian.net service into a new all.reproducible.debian.net page.
-
Increased the number of
riscv64 nodes to a total of 4, and added a new amd64 node added thanks to our (now 10-year sponsor), IONOS.
-
Discovered an issue in the Debian build service where some new incoming build-dependencies do not end up historically archived.
-
Uploaded the
devscripts package, incorporating changes from Jochen Sprickerhof to the debrebuild script specifically to fix the handling the Rules-Requires-Root header in Debian source packages.
-
Uploaded a number of Rust dependencies of rebuilderd (
rust-libbz2-rs-sys, rust-actix-web, rust-actix-server, rust-actix-http, rust-actix-server, rust-actix-http, rust-actix-web-codegen and rust-time-tz) after they were prepared by kpcyrd :
Jochen Sprickerhof also updated the sbuild package to:
- Obey requests from the user/developer for a different temporary directory.
- Use the root/superuser for some values of
Rules-Requires-Root.
- Don t pass
--root-owner-group to old versions of dpkg.
and additionally requested that many Debian packages are rebuilt by the build servers in order to work around bugs found on reproduce.debian.net. [ ][[ ][ ]
Lastly, kpcyrd has also worked towards getting rebuilderd packaged in NixOS, and Jelle van der Waa picked up the existing pull request for Fedora support within in rebuilderd and made it work with the existing Koji rebuilderd script. The server is being packaged for Fedora in an unofficial copr repository and in the official repositories after all the dependencies are packaged.
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:
-
Andrea Manzini:
rust-i8n (random HashMap order)
starship/shadow
-
Andreas Stieger:
-
Bernhard M. Wiedemann:
-
Chris Lamb:
- #1095209 filed against
python-assertpy.
- #1096188 filed against
terminaltables3.
- #1098249 filed against
acme.sh.
- #1098251 filed against
node-svgdotjs-svg.js.
- #1098253 filed against
onevpl-intel-gpu.
- #1098350 filed against
rocdbgapi.
- #1098895 filed against
siege.
- #1098945 filed against
pkg-rocm-tools.
-
Christian Goll:
warewulf4 (embeds CPU core count)
-
Jay Adddison:
-
Jochen Sprickerhof:
-
kpcyrd:
-
Leonidas Spyropoulos:
-
Robin Candau (Antiz):
highlight (timestamp)
arch-wiki-lite (timestamp)
f3d (timestamp)
jacktrip (timestamp)
prometheus (timestamp)
-
Wolfgang Frisch:
-
Hongxu Jia:
go (clear GOROOT for func ldShared when -trimpath is used)
Distribution work
There as been the usual work in various distributions this month, such as:
In Debian, 17 reviews of Debian packages were added, 6 were updated and 8 were removed this month adding to our knowledge about identified issues.
Fedora developers Davide Cavalca and Zbigniew J drzejewski-Szmek gave a talk on Reproducible Builds in Fedora (PDF), touching on SRPM-specific issues as well as the current status and future plans.
Thanks to an investment from the Sovereign Tech Agency, the FreeBSD project s work on unprivileged and reproducible builds continued this month. Notable fixes include:
pkg (hash ordering)
makefs (source filesystem inode number leakage)
FreeBSD base system packages (timestamp)
The Yocto Project has been struggling to upgrade to the latest Go and Rust releases due to reproducibility problems in the newer versions. Hongxu Jia tracked down the issue with Go which meant that the project could upgrade from the 1.22 series to 1.24, with the fix being submitted upstream for review (see above). For Rust, however, the project was significantly behind, but has made recent progress after finally identifying the blocking reproducibility issues. At time of writing, the project is at Rust version 1.82, with patches under review for 1.83 and 1.84 and fixes being discussed with the Rust developers. The project hopes to improve the tests for reproducibility in the Rust project itself in order to try and avoid future regressions.
Yocto continues to maintain its ability to binary reproduce all of the recipes in OpenEmbedded-Core, regardless of the build host distribution or the current build path.
Finally, Douglas DeMaio published an article on the openSUSE blog on announcing that the Reproducible-openSUSE (RBOS) Project Hits [Significant] Milestone. In particular:
The Reproducible-openSUSE (RBOS) project, which is a proof-of-concept fork of openSUSE, has reached a significant milestone after demonstrating a usable Linux distribution can be built with 100% bit-identical packages.
This news was also announced on our mailing list by Bernhard M. Wiedemann, who also published another report for openSUSE as well.
diffoscope & strip-nondeterminism
diffoscope is our in-depth and content-aware diff utility that can locate and diagnose reproducibility issues. This month, Chris Lamb made the following changes, including preparing and uploading versions 288 and 289 to Debian:
- Add
asar to DIFFOSCOPE_FAIL_TESTS_ON_MISSING_TOOLS in order to address Debian bug #1095057) [ ]
- Catch a
CalledProcessError when calling html2text. [ ]
- Update the minimal Black version. [ ]
Additionally, Vagrant Cascadian updated diffoscope in GNU Guix to version 287 [ ][ ] and 288 [ ][ ] as well as submitted a patch to update to 289 [ ]. Vagrant also fixed an issue that was breaking reprotest on Guix [ ][ ].
strip-nondeterminism is our sister tool to remove specific non-deterministic results from a completed build. This month version 1.14.1-2 was uploaded to Debian unstable by Holger Levsen.
Website updates
There were a large number of improvements made to our website this month, including:
-
Bernhard M. Wiedemann fixed an issue on the Commandments of reproducible builds fixing a link to the
readdir component of Bernhard s own Unreproducible Package. [ ]
-
Holger Levsen clarified the name of a link to our old Wiki pages on the History page [ ] and added a number of new links to the Talks & Resources page [ ][ ].
-
James Addison update the website s own
README file to document a couple of additional dependencies [ ][ ], as well as did more work on a future Getting Started guide page [ ][ ].
Reproducibility testing framework
The Reproducible Builds project operates a comprehensive testing framework running primarily at tests.reproducible-builds.org in order to check packages and other artifacts for reproducibility. In January, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add a helper script to manually schedule packages. [ ][ ][ ][ ][ ]
- Fix a link in the website footer. [ ]
- Strip the emojis from package names on the manual rebuilder in order to ease copy-and-paste. [ ]
- On the various statistics pages, provide the number of affected source packages [ ][ ] as well as provide various totals [ ][ ].
- Fix graph labels for the various architectures [ ][ ] and make them clickable too [ ][ ][ ].
- Break the displayed HTML in blocks of 256 packages in order to address rendering issues. [ ][ ]
- Add monitoring jobs for
riscv64 archicture nodes and integrate them elsewhere in our infrastructure. [ ][ ]
- Add
riscv64 architecture nodes. [ ][ ][ ][ ][ ]
- Update much of the documentation. [ ][ ][ ]
- Make a number of improvements to the layout and style. [ ][ ][ ][ ][ ][ ][ ]
- Remove direct links to JSON and database backups. [ ]
- Drop a Blues Brothers reference from frontpage. [ ]
-
Debian-related:
-
FreeBSD-related:
-
Misc:
In addition:
-
kpcyrd fixed the
/all/api/ API endpoints on reproduce.debian.net by altering the nginx configuration. [ ]
-
James Addison updated reproduce.debian.net to display the so-called bad reasons hyperlink inline [ ] and merged the Categorized issues links into the Reproduced builds column [ ].
-
Jochen Sprickerhof also made some reproduce.debian.net-related changes, adding support for detecting a bug in the
mmdebstrap package [ ] as well as updating some documentation [ ].
-
Roland Clobus continued their work on reproducible live images for Debian, making changes related to new clustering of jobs in openQA. [ ]
And finally, both Holger Levsen [ ][ ][ ] and Vagrant Cascadian performed significant node maintenance. [ ][ ][ ][ ][ ]
If you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website. However, you can get in touch with us via:
-
IRC:
#reproducible-builds on irc.oftc.net.
-
Mastodon: @reproducible_builds@fosstodon.org
-
Mailing list:
rb-general@lists.reproducible-builds.org
-
Twitter/X: @ReproBuilds
Vagrant Cascadian presented at this year s PyCascades conference which was held on February 8th and 9th February in Portland, OR, USA. PyCascades is a regional instance of PyCon held in the Pacific Northwest. Vagrant s talk, entitled Re-Py-Ducible Builds caught the audience s attention with the following abstract:
Crank your Python best practices up to 11 with Reproducible Builds! This talk will explore Reproducible Builds by highlighting issues identified in Python projects, from the simple to the seemingly inscrutable. Reproducible Builds is basically the crazy idea that when you build something, and you build it again, you get the exact same thing or even more important, if someone else builds it, they get the exact same thing too.More info is available on the talk s page.
Does Functional Package Management Enable Reproducible Builds at Scale?
On our mailing list last month, Julien Malka, Stefano Zacchiroli and Th o Zimmermann of T l com Paris in-house research laboratory, the Information Processing and Communications Laboratory (LTCI) announced that they had published an article asking the question: Does Functional Package Management Enable Reproducible Builds at Scale? (PDF).
This month, however, Ludovic Court s followed up to the original announcement on our mailing list mentioning, amongst other things, the Guix Data Service and how that it shows the reproducibility of GNU Guix over time, as described in a GNU Guix blog back in March 2024.
reproduce.debian.net updates
The last few months have seen the introduction of reproduce.debian.net. Announced first at the recent Debian MiniDebConf in Toulouse, reproduce.debian.net is an instance of rebuilderd operated by the Reproducible Builds project.
Powering this work is rebuilderd, our server which monitors the official package repositories of Linux distributions and attempt to reproduce the observed results there. This month, however, Holger Levsen:
-
Split packages that are not specific to any architecture away from amd64.reproducible.debian.net service into a new all.reproducible.debian.net page.
-
Increased the number of
riscv64 nodes to a total of 4, and added a new amd64 node added thanks to our (now 10-year sponsor), IONOS.
-
Discovered an issue in the Debian build service where some new incoming build-dependencies do not end up historically archived.
-
Uploaded the
devscripts package, incorporating changes from Jochen Sprickerhof to the debrebuild script specifically to fix the handling the Rules-Requires-Root header in Debian source packages.
-
Uploaded a number of Rust dependencies of rebuilderd (
rust-libbz2-rs-sys, rust-actix-web, rust-actix-server, rust-actix-http, rust-actix-server, rust-actix-http, rust-actix-web-codegen and rust-time-tz) after they were prepared by kpcyrd :
Jochen Sprickerhof also updated the sbuild package to:
- Obey requests from the user/developer for a different temporary directory.
- Use the root/superuser for some values of
Rules-Requires-Root.
- Don t pass
--root-owner-group to old versions of dpkg.
and additionally requested that many Debian packages are rebuilt by the build servers in order to work around bugs found on reproduce.debian.net. [ ][[ ][ ]
Lastly, kpcyrd has also worked towards getting rebuilderd packaged in NixOS, and Jelle van der Waa picked up the existing pull request for Fedora support within in rebuilderd and made it work with the existing Koji rebuilderd script. The server is being packaged for Fedora in an unofficial copr repository and in the official repositories after all the dependencies are packaged.
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:
-
Andrea Manzini:
rust-i8n (random HashMap order)
starship/shadow
-
Andreas Stieger:
-
Bernhard M. Wiedemann:
-
Chris Lamb:
- #1095209 filed against
python-assertpy.
- #1096188 filed against
terminaltables3.
- #1098249 filed against
acme.sh.
- #1098251 filed against
node-svgdotjs-svg.js.
- #1098253 filed against
onevpl-intel-gpu.
- #1098350 filed against
rocdbgapi.
- #1098895 filed against
siege.
- #1098945 filed against
pkg-rocm-tools.
-
Christian Goll:
warewulf4 (embeds CPU core count)
-
Jay Adddison:
-
Jochen Sprickerhof:
-
kpcyrd:
-
Leonidas Spyropoulos:
-
Robin Candau (Antiz):
highlight (timestamp)
arch-wiki-lite (timestamp)
f3d (timestamp)
jacktrip (timestamp)
prometheus (timestamp)
-
Wolfgang Frisch:
-
Hongxu Jia:
go (clear GOROOT for func ldShared when -trimpath is used)
Distribution work
There as been the usual work in various distributions this month, such as:
In Debian, 17 reviews of Debian packages were added, 6 were updated and 8 were removed this month adding to our knowledge about identified issues.
Fedora developers Davide Cavalca and Zbigniew J drzejewski-Szmek gave a talk on Reproducible Builds in Fedora (PDF), touching on SRPM-specific issues as well as the current status and future plans.
Thanks to an investment from the Sovereign Tech Agency, the FreeBSD project s work on unprivileged and reproducible builds continued this month. Notable fixes include:
pkg (hash ordering)
makefs (source filesystem inode number leakage)
FreeBSD base system packages (timestamp)
The Yocto Project has been struggling to upgrade to the latest Go and Rust releases due to reproducibility problems in the newer versions. Hongxu Jia tracked down the issue with Go which meant that the project could upgrade from the 1.22 series to 1.24, with the fix being submitted upstream for review (see above). For Rust, however, the project was significantly behind, but has made recent progress after finally identifying the blocking reproducibility issues. At time of writing, the project is at Rust version 1.82, with patches under review for 1.83 and 1.84 and fixes being discussed with the Rust developers. The project hopes to improve the tests for reproducibility in the Rust project itself in order to try and avoid future regressions.
Yocto continues to maintain its ability to binary reproduce all of the recipes in OpenEmbedded-Core, regardless of the build host distribution or the current build path.
Finally, Douglas DeMaio published an article on the openSUSE blog on announcing that the Reproducible-openSUSE (RBOS) Project Hits [Significant] Milestone. In particular:
The Reproducible-openSUSE (RBOS) project, which is a proof-of-concept fork of openSUSE, has reached a significant milestone after demonstrating a usable Linux distribution can be built with 100% bit-identical packages.
This news was also announced on our mailing list by Bernhard M. Wiedemann, who also published another report for openSUSE as well.
diffoscope & strip-nondeterminism
diffoscope is our in-depth and content-aware diff utility that can locate and diagnose reproducibility issues. This month, Chris Lamb made the following changes, including preparing and uploading versions 288 and 289 to Debian:
- Add
asar to DIFFOSCOPE_FAIL_TESTS_ON_MISSING_TOOLS in order to address Debian bug #1095057) [ ]
- Catch a
CalledProcessError when calling html2text. [ ]
- Update the minimal Black version. [ ]
Additionally, Vagrant Cascadian updated diffoscope in GNU Guix to version 287 [ ][ ] and 288 [ ][ ] as well as submitted a patch to update to 289 [ ]. Vagrant also fixed an issue that was breaking reprotest on Guix [ ][ ].
strip-nondeterminism is our sister tool to remove specific non-deterministic results from a completed build. This month version 1.14.1-2 was uploaded to Debian unstable by Holger Levsen.
Website updates
There were a large number of improvements made to our website this month, including:
-
Bernhard M. Wiedemann fixed an issue on the Commandments of reproducible builds fixing a link to the
readdir component of Bernhard s own Unreproducible Package. [ ]
-
Holger Levsen clarified the name of a link to our old Wiki pages on the History page [ ] and added a number of new links to the Talks & Resources page [ ][ ].
-
James Addison update the website s own
README file to document a couple of additional dependencies [ ][ ], as well as did more work on a future Getting Started guide page [ ][ ].
Reproducibility testing framework
The Reproducible Builds project operates a comprehensive testing framework running primarily at tests.reproducible-builds.org in order to check packages and other artifacts for reproducibility. In January, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add a helper script to manually schedule packages. [ ][ ][ ][ ][ ]
- Fix a link in the website footer. [ ]
- Strip the emojis from package names on the manual rebuilder in order to ease copy-and-paste. [ ]
- On the various statistics pages, provide the number of affected source packages [ ][ ] as well as provide various totals [ ][ ].
- Fix graph labels for the various architectures [ ][ ] and make them clickable too [ ][ ][ ].
- Break the displayed HTML in blocks of 256 packages in order to address rendering issues. [ ][ ]
- Add monitoring jobs for
riscv64 archicture nodes and integrate them elsewhere in our infrastructure. [ ][ ]
- Add
riscv64 architecture nodes. [ ][ ][ ][ ][ ]
- Update much of the documentation. [ ][ ][ ]
- Make a number of improvements to the layout and style. [ ][ ][ ][ ][ ][ ][ ]
- Remove direct links to JSON and database backups. [ ]
- Drop a Blues Brothers reference from frontpage. [ ]
-
Debian-related:
-
FreeBSD-related:
-
Misc:
In addition:
-
kpcyrd fixed the
/all/api/ API endpoints on reproduce.debian.net by altering the nginx configuration. [ ]
-
James Addison updated reproduce.debian.net to display the so-called bad reasons hyperlink inline [ ] and merged the Categorized issues links into the Reproduced builds column [ ].
-
Jochen Sprickerhof also made some reproduce.debian.net-related changes, adding support for detecting a bug in the
mmdebstrap package [ ] as well as updating some documentation [ ].
-
Roland Clobus continued their work on reproducible live images for Debian, making changes related to new clustering of jobs in openQA. [ ]
And finally, both Holger Levsen [ ][ ][ ] and Vagrant Cascadian performed significant node maintenance. [ ][ ][ ][ ][ ]
If you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website. However, you can get in touch with us via:
-
IRC:
#reproducible-builds on irc.oftc.net.
-
Mastodon: @reproducible_builds@fosstodon.org
-
Mailing list:
rb-general@lists.reproducible-builds.org
-
Twitter/X: @ReproBuilds
The last few months have seen the introduction of reproduce.debian.net. Announced first at the recent Debian MiniDebConf in Toulouse, reproduce.debian.net is an instance of rebuilderd operated by the Reproducible Builds project.
Powering this work is rebuilderd, our server which monitors the official package repositories of Linux distributions and attempt to reproduce the observed results there. This month, however, Holger Levsen:
- Split packages that are not specific to any architecture away from amd64.reproducible.debian.net service into a new all.reproducible.debian.net page.
-
Increased the number of
riscv64nodes to a total of 4, and added a newamd64node added thanks to our (now 10-year sponsor), IONOS. - Discovered an issue in the Debian build service where some new incoming build-dependencies do not end up historically archived.
-
Uploaded the
devscriptspackage, incorporating changes from Jochen Sprickerhof to thedebrebuildscript specifically to fix the handling theRules-Requires-Rootheader in Debian source packages. -
Uploaded a number of Rust dependencies of rebuilderd (
rust-libbz2-rs-sys,rust-actix-web,rust-actix-server,rust-actix-http,rust-actix-server,rust-actix-http,rust-actix-web-codegenandrust-time-tz) after they were prepared by kpcyrd :
sbuild package to:
- Obey requests from the user/developer for a different temporary directory.
- Use the root/superuser for some values of
Rules-Requires-Root. - Don t pass
--root-owner-groupto old versions of dpkg.
Lastly, kpcyrd has also worked towards getting rebuilderd packaged in NixOS, and Jelle van der Waa picked up the existing pull request for Fedora support within in rebuilderd and made it work with the existing Koji rebuilderd script. The server is being packaged for Fedora in an unofficial copr repository and in the official repositories after all the dependencies are packaged.
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:
-
Andrea Manzini:
rust-i8n (random HashMap order)
starship/shadow
-
Andreas Stieger:
-
Bernhard M. Wiedemann:
-
Chris Lamb:
- #1095209 filed against
python-assertpy.
- #1096188 filed against
terminaltables3.
- #1098249 filed against
acme.sh.
- #1098251 filed against
node-svgdotjs-svg.js.
- #1098253 filed against
onevpl-intel-gpu.
- #1098350 filed against
rocdbgapi.
- #1098895 filed against
siege.
- #1098945 filed against
pkg-rocm-tools.
-
Christian Goll:
warewulf4 (embeds CPU core count)
-
Jay Adddison:
-
Jochen Sprickerhof:
-
kpcyrd:
-
Leonidas Spyropoulos:
-
Robin Candau (Antiz):
highlight (timestamp)
arch-wiki-lite (timestamp)
f3d (timestamp)
jacktrip (timestamp)
prometheus (timestamp)
-
Wolfgang Frisch:
-
Hongxu Jia:
go (clear GOROOT for func ldShared when -trimpath is used)
Distribution work
There as been the usual work in various distributions this month, such as:
In Debian, 17 reviews of Debian packages were added, 6 were updated and 8 were removed this month adding to our knowledge about identified issues.
Fedora developers Davide Cavalca and Zbigniew J drzejewski-Szmek gave a talk on Reproducible Builds in Fedora (PDF), touching on SRPM-specific issues as well as the current status and future plans.
Thanks to an investment from the Sovereign Tech Agency, the FreeBSD project s work on unprivileged and reproducible builds continued this month. Notable fixes include:
pkg (hash ordering)
makefs (source filesystem inode number leakage)
FreeBSD base system packages (timestamp)
The Yocto Project has been struggling to upgrade to the latest Go and Rust releases due to reproducibility problems in the newer versions. Hongxu Jia tracked down the issue with Go which meant that the project could upgrade from the 1.22 series to 1.24, with the fix being submitted upstream for review (see above). For Rust, however, the project was significantly behind, but has made recent progress after finally identifying the blocking reproducibility issues. At time of writing, the project is at Rust version 1.82, with patches under review for 1.83 and 1.84 and fixes being discussed with the Rust developers. The project hopes to improve the tests for reproducibility in the Rust project itself in order to try and avoid future regressions.
Yocto continues to maintain its ability to binary reproduce all of the recipes in OpenEmbedded-Core, regardless of the build host distribution or the current build path.
Finally, Douglas DeMaio published an article on the openSUSE blog on announcing that the Reproducible-openSUSE (RBOS) Project Hits [Significant] Milestone. In particular:
The Reproducible-openSUSE (RBOS) project, which is a proof-of-concept fork of openSUSE, has reached a significant milestone after demonstrating a usable Linux distribution can be built with 100% bit-identical packages.
This news was also announced on our mailing list by Bernhard M. Wiedemann, who also published another report for openSUSE as well.
diffoscope & strip-nondeterminism
diffoscope is our in-depth and content-aware diff utility that can locate and diagnose reproducibility issues. This month, Chris Lamb made the following changes, including preparing and uploading versions 288 and 289 to Debian:
- Add
asar to DIFFOSCOPE_FAIL_TESTS_ON_MISSING_TOOLS in order to address Debian bug #1095057) [ ]
- Catch a
CalledProcessError when calling html2text. [ ]
- Update the minimal Black version. [ ]
Additionally, Vagrant Cascadian updated diffoscope in GNU Guix to version 287 [ ][ ] and 288 [ ][ ] as well as submitted a patch to update to 289 [ ]. Vagrant also fixed an issue that was breaking reprotest on Guix [ ][ ].
strip-nondeterminism is our sister tool to remove specific non-deterministic results from a completed build. This month version 1.14.1-2 was uploaded to Debian unstable by Holger Levsen.
Website updates
There were a large number of improvements made to our website this month, including:
-
Bernhard M. Wiedemann fixed an issue on the Commandments of reproducible builds fixing a link to the
readdir component of Bernhard s own Unreproducible Package. [ ]
-
Holger Levsen clarified the name of a link to our old Wiki pages on the History page [ ] and added a number of new links to the Talks & Resources page [ ][ ].
-
James Addison update the website s own
README file to document a couple of additional dependencies [ ][ ], as well as did more work on a future Getting Started guide page [ ][ ].
Reproducibility testing framework
The Reproducible Builds project operates a comprehensive testing framework running primarily at tests.reproducible-builds.org in order to check packages and other artifacts for reproducibility. In January, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add a helper script to manually schedule packages. [ ][ ][ ][ ][ ]
- Fix a link in the website footer. [ ]
- Strip the emojis from package names on the manual rebuilder in order to ease copy-and-paste. [ ]
- On the various statistics pages, provide the number of affected source packages [ ][ ] as well as provide various totals [ ][ ].
- Fix graph labels for the various architectures [ ][ ] and make them clickable too [ ][ ][ ].
- Break the displayed HTML in blocks of 256 packages in order to address rendering issues. [ ][ ]
- Add monitoring jobs for
riscv64 archicture nodes and integrate them elsewhere in our infrastructure. [ ][ ]
- Add
riscv64 architecture nodes. [ ][ ][ ][ ][ ]
- Update much of the documentation. [ ][ ][ ]
- Make a number of improvements to the layout and style. [ ][ ][ ][ ][ ][ ][ ]
- Remove direct links to JSON and database backups. [ ]
- Drop a Blues Brothers reference from frontpage. [ ]
-
Debian-related:
-
FreeBSD-related:
-
Misc:
In addition:
-
kpcyrd fixed the
/all/api/ API endpoints on reproduce.debian.net by altering the nginx configuration. [ ]
-
James Addison updated reproduce.debian.net to display the so-called bad reasons hyperlink inline [ ] and merged the Categorized issues links into the Reproduced builds column [ ].
-
Jochen Sprickerhof also made some reproduce.debian.net-related changes, adding support for detecting a bug in the
mmdebstrap package [ ] as well as updating some documentation [ ].
-
Roland Clobus continued their work on reproducible live images for Debian, making changes related to new clustering of jobs in openQA. [ ]
And finally, both Holger Levsen [ ][ ][ ] and Vagrant Cascadian performed significant node maintenance. [ ][ ][ ][ ][ ]
If you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website. However, you can get in touch with us via:
-
IRC:
#reproducible-builds on irc.oftc.net.
-
Mastodon: @reproducible_builds@fosstodon.org
-
Mailing list:
rb-general@lists.reproducible-builds.org
-
Twitter/X: @ReproBuilds
rust-i8n(randomHashMaporder)starship/shadow
- #1095209 filed against
python-assertpy. - #1096188 filed against
terminaltables3. - #1098249 filed against
acme.sh. - #1098251 filed against
node-svgdotjs-svg.js. - #1098253 filed against
onevpl-intel-gpu. - #1098350 filed against
rocdbgapi. - #1098895 filed against
siege. - #1098945 filed against
pkg-rocm-tools.
warewulf4(embeds CPU core count)
highlight(timestamp)arch-wiki-lite(timestamp)f3d(timestamp)jacktrip(timestamp)prometheus(timestamp)
go(clear GOROOT for func ldShared when -trimpath is used)
In Debian, 17 reviews of Debian packages were added, 6 were updated and 8 were removed this month adding to our knowledge about identified issues.
Fedora developers Davide Cavalca and Zbigniew J drzejewski-Szmek gave a talk on Reproducible Builds in Fedora (PDF), touching on SRPM-specific issues as well as the current status and future plans.
Thanks to an investment from the Sovereign Tech Agency, the FreeBSD project s work on unprivileged and reproducible builds continued this month. Notable fixes include:
pkg(hash ordering)makefs(source filesystem inode number leakage)FreeBSD base system packages(timestamp)
The Yocto Project has been struggling to upgrade to the latest Go and Rust releases due to reproducibility problems in the newer versions. Hongxu Jia tracked down the issue with Go which meant that the project could upgrade from the 1.22 series to 1.24, with the fix being submitted upstream for review (see above). For Rust, however, the project was significantly behind, but has made recent progress after finally identifying the blocking reproducibility issues. At time of writing, the project is at Rust version 1.82, with patches under review for 1.83 and 1.84 and fixes being discussed with the Rust developers. The project hopes to improve the tests for reproducibility in the Rust project itself in order to try and avoid future regressions. Yocto continues to maintain its ability to binary reproduce all of the recipes in OpenEmbedded-Core, regardless of the build host distribution or the current build path.
Finally, Douglas DeMaio published an article on the openSUSE blog on announcing that the Reproducible-openSUSE (RBOS) Project Hits [Significant] Milestone. In particular:
The Reproducible-openSUSE (RBOS) project, which is a proof-of-concept fork of openSUSE, has reached a significant milestone after demonstrating a usable Linux distribution can be built with 100% bit-identical packages.This news was also announced on our mailing list by Bernhard M. Wiedemann, who also published another report for openSUSE as well.
diffoscope & strip-nondeterminism
diffoscope is our in-depth and content-aware diff utility that can locate and diagnose reproducibility issues. This month, Chris Lamb made the following changes, including preparing and uploading versions 288 and 289 to Debian:
- Add
asar to DIFFOSCOPE_FAIL_TESTS_ON_MISSING_TOOLS in order to address Debian bug #1095057) [ ]
- Catch a
CalledProcessError when calling html2text. [ ]
- Update the minimal Black version. [ ]
Additionally, Vagrant Cascadian updated diffoscope in GNU Guix to version 287 [ ][ ] and 288 [ ][ ] as well as submitted a patch to update to 289 [ ]. Vagrant also fixed an issue that was breaking reprotest on Guix [ ][ ].
strip-nondeterminism is our sister tool to remove specific non-deterministic results from a completed build. This month version 1.14.1-2 was uploaded to Debian unstable by Holger Levsen.
Website updates
There were a large number of improvements made to our website this month, including:
-
Bernhard M. Wiedemann fixed an issue on the Commandments of reproducible builds fixing a link to the
readdir component of Bernhard s own Unreproducible Package. [ ]
-
Holger Levsen clarified the name of a link to our old Wiki pages on the History page [ ] and added a number of new links to the Talks & Resources page [ ][ ].
-
James Addison update the website s own
README file to document a couple of additional dependencies [ ][ ], as well as did more work on a future Getting Started guide page [ ][ ].
Reproducibility testing framework
The Reproducible Builds project operates a comprehensive testing framework running primarily at tests.reproducible-builds.org in order to check packages and other artifacts for reproducibility. In January, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add a helper script to manually schedule packages. [ ][ ][ ][ ][ ]
- Fix a link in the website footer. [ ]
- Strip the emojis from package names on the manual rebuilder in order to ease copy-and-paste. [ ]
- On the various statistics pages, provide the number of affected source packages [ ][ ] as well as provide various totals [ ][ ].
- Fix graph labels for the various architectures [ ][ ] and make them clickable too [ ][ ][ ].
- Break the displayed HTML in blocks of 256 packages in order to address rendering issues. [ ][ ]
- Add monitoring jobs for
riscv64 archicture nodes and integrate them elsewhere in our infrastructure. [ ][ ]
- Add
riscv64 architecture nodes. [ ][ ][ ][ ][ ]
- Update much of the documentation. [ ][ ][ ]
- Make a number of improvements to the layout and style. [ ][ ][ ][ ][ ][ ][ ]
- Remove direct links to JSON and database backups. [ ]
- Drop a Blues Brothers reference from frontpage. [ ]
-
Debian-related:
-
FreeBSD-related:
-
Misc:
In addition:
-
kpcyrd fixed the
/all/api/ API endpoints on reproduce.debian.net by altering the nginx configuration. [ ]
-
James Addison updated reproduce.debian.net to display the so-called bad reasons hyperlink inline [ ] and merged the Categorized issues links into the Reproduced builds column [ ].
-
Jochen Sprickerhof also made some reproduce.debian.net-related changes, adding support for detecting a bug in the
mmdebstrap package [ ] as well as updating some documentation [ ].
-
Roland Clobus continued their work on reproducible live images for Debian, making changes related to new clustering of jobs in openQA. [ ]
And finally, both Holger Levsen [ ][ ][ ] and Vagrant Cascadian performed significant node maintenance. [ ][ ][ ][ ][ ]
If you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website. However, you can get in touch with us via:
-
IRC:
#reproducible-builds on irc.oftc.net.
-
Mastodon: @reproducible_builds@fosstodon.org
-
Mailing list:
rb-general@lists.reproducible-builds.org
-
Twitter/X: @ReproBuilds
asar to DIFFOSCOPE_FAIL_TESTS_ON_MISSING_TOOLS in order to address Debian bug #1095057) [ ]CalledProcessError when calling html2text. [ ]
There were a large number of improvements made to our website this month, including:
-
Bernhard M. Wiedemann fixed an issue on the Commandments of reproducible builds fixing a link to the
readdircomponent of Bernhard s own Unreproducible Package. [ ] - Holger Levsen clarified the name of a link to our old Wiki pages on the History page [ ] and added a number of new links to the Talks & Resources page [ ][ ].
-
James Addison update the website s own
READMEfile to document a couple of additional dependencies [ ][ ], as well as did more work on a future Getting Started guide page [ ][ ].
Reproducibility testing framework
The Reproducible Builds project operates a comprehensive testing framework running primarily at tests.reproducible-builds.org in order to check packages and other artifacts for reproducibility. In January, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add a helper script to manually schedule packages. [ ][ ][ ][ ][ ]
- Fix a link in the website footer. [ ]
- Strip the emojis from package names on the manual rebuilder in order to ease copy-and-paste. [ ]
- On the various statistics pages, provide the number of affected source packages [ ][ ] as well as provide various totals [ ][ ].
- Fix graph labels for the various architectures [ ][ ] and make them clickable too [ ][ ][ ].
- Break the displayed HTML in blocks of 256 packages in order to address rendering issues. [ ][ ]
- Add monitoring jobs for
riscv64 archicture nodes and integrate them elsewhere in our infrastructure. [ ][ ]
- Add
riscv64 architecture nodes. [ ][ ][ ][ ][ ]
- Update much of the documentation. [ ][ ][ ]
- Make a number of improvements to the layout and style. [ ][ ][ ][ ][ ][ ][ ]
- Remove direct links to JSON and database backups. [ ]
- Drop a Blues Brothers reference from frontpage. [ ]
-
Debian-related:
-
FreeBSD-related:
-
Misc:
In addition:
-
kpcyrd fixed the
/all/api/ API endpoints on reproduce.debian.net by altering the nginx configuration. [ ]
-
James Addison updated reproduce.debian.net to display the so-called bad reasons hyperlink inline [ ] and merged the Categorized issues links into the Reproduced builds column [ ].
-
Jochen Sprickerhof also made some reproduce.debian.net-related changes, adding support for detecting a bug in the
mmdebstrap package [ ] as well as updating some documentation [ ].
-
Roland Clobus continued their work on reproducible live images for Debian, making changes related to new clustering of jobs in openQA. [ ]
And finally, both Holger Levsen [ ][ ][ ] and Vagrant Cascadian performed significant node maintenance. [ ][ ][ ][ ][ ]
If you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website. However, you can get in touch with us via:
-
IRC:
#reproducible-builds on irc.oftc.net.
-
Mastodon: @reproducible_builds@fosstodon.org
-
Mailing list:
rb-general@lists.reproducible-builds.org
-
Twitter/X: @ReproBuilds
- Add a helper script to manually schedule packages. [ ][ ][ ][ ][ ]
- Fix a link in the website footer. [ ]
- Strip the emojis from package names on the manual rebuilder in order to ease copy-and-paste. [ ]
- On the various statistics pages, provide the number of affected source packages [ ][ ] as well as provide various totals [ ][ ].
- Fix graph labels for the various architectures [ ][ ] and make them clickable too [ ][ ][ ].
- Break the displayed HTML in blocks of 256 packages in order to address rendering issues. [ ][ ]
- Add monitoring jobs for
riscv64archicture nodes and integrate them elsewhere in our infrastructure. [ ][ ] - Add
riscv64architecture nodes. [ ][ ][ ][ ][ ] - Update much of the documentation. [ ][ ][ ]
- Make a number of improvements to the layout and style. [ ][ ][ ][ ][ ][ ][ ]
- Remove direct links to JSON and database backups. [ ]
- Drop a Blues Brothers reference from frontpage. [ ]
/all/api/ API endpoints on reproduce.debian.net by altering the nginx configuration. [ ]
mmdebstrap package [ ] as well as updating some documentation [ ].
#reproducible-builds on irc.oftc.net.
rb-general@lists.reproducible-builds.org
In today s digital landscape, social media is more than just a communication tool it is the primary medium for global discourse. Heads of state, corporate leaders and cultural influencers now broadcast their statements directly to the world, shaping public opinion in real time. However, the dominance of a few centralized platforms X/Twitter, Facebook and YouTube raises critical concerns about control, censorship and the monopolization of information. Those who control these networks effectively wield significant power over public discourse.
In response, a new wave of distributed social media platforms has emerged, each built on different decentralized protocols designed to provide greater autonomy, censorship resistance and user control. While
Mastodon was created in 2016 by
Interestingly,
by
Many years ago I made myself a
Then a few years ago the cheap cotton had started to get worn, and I
decided I needed to replace it. I found a second choice (and thus
cheaper :) ) version of a
This time I skipped a few pockets that I had found I didn t use that
much, and I didn t add a hood, which didn t play that well when worn
over a hoodie, but I added some detached sleeves, for additional wind
protection.
This left about 60 cm and some odd pieces of leftover fabric in my
stash, for which I had no plan.
And then February
I did however have a spool of reflector thread made of glass fibre by
Rico Design, which I think was originally sold to be worked into
knitting or crochet projects (it is now discontinued) and I had never
used.
I decided to try and sew a decorative blanket stitch border, a decision
I had reasons to regret, since the thread broke and tangled like crazy,
but in the end it was done, I like how it looks, and it seems pretty
functional. I hope it won t break with time and use, and if it does I ll
either fix it or try to redo with something else.
Of course, the day I finished sewing the reflective border it stopped
raining, so I haven t worn it yet, but I hope I ll be able to, and if it
is an horrible failure I ll make sure to update this post.
TL;DR
It's difficult to find the right Debian image. We have thousands of
ISO files and cloud images and we support multiple CPU architectures
and several download methods. The directory structure of our main image server
is like a maze, and our web pages for downloading are also confusing.
Most important facts from this blog post

Like each month, have a look at the work funded by
I'm going to

If you re automating CI builds, there s even a GitHub Action to make your workflows faster essentially doing what
Warning:
After circling a bit to find somewhere suitable (there appear to be construction
works in the park!) I set up my gear in 2C with frost on the ground, called CQ,
spotted and got nothing on either the end fed half wave or the cheap vertical.
As it was too late for 20m, I tried 40 and a bit of 80 using the inbuilt tuner,
but wasn t heard by stations I called or when calling independently.
I packed everything up and lora-doofered my way home, mildly deflated.
After a mild struggle on 2m, I set up the end fed the first hill and got to
work from the old hill fort:
The end fed worked flawlessly. Exactly as promised, switching between 7MHz, 14MHz, 21MHz
and 28MHz without a tuner was perfect, I chased hills on all the bands, and had a
great time. Apart from 40m, where there was absolutely no space due to a
contest. That wasn t such a fun time!
My fingers were bitterly cold, so on went the big gloves for the descent and I
felt like I was warm by the time I made it back to the car.
It worked so well, in fact, I took the 1/4 wave cheap vertical out my bag and
decided to brave it on the next activation.
To get some height for the feedpoint, I wrapped the coax around my winder a
couple of turns and trapped it with the elastic while draping the coax over the
trig. This bought me some more height and I felt clever because of it. Maybe a
pole would be easier?
From here, I worked inter-G on 40m and had a wee pile up, eventually working 15
or so European stations on 20m. Pleased with that!
I had been considering a third hill, but home was the call in the failing light.
Back to the car I walked to find my key didn t have any battery, so out came the
Audi App and I used the Internet of Things to unlock my car. The modern world is
bizarre.
I set up at the cairn and picked up 30 contacts overall, split between 40m and
20m, with some inter-g on 40 and a couple of continental surprises. 20 had
longer skip today, so I saw Spain, Finland, Slovenia, Poland.
On teardown, I managed to snap the top segment of my brand new mast with my
cold, clumsy fingers, but thankfully sotabeams stock replacements. More money at
the problem, again.
Back to the car, no app needed, and homeward bound as the light faded.
At the end of the weekend, I find myself finally over 100 activator points and
over 400 chaser points. Somehow I ve collected more points this year already
than last year, the winter bonuses really do stack up!
This weekend I discovered it s possible to have height maps for nice 3d
maps and contours marked on the map - you just need to download some
additions for the maps. This is a really nice feature, it makes maps more
pretty and more useful when you re in the middle of nowhere.