Reproducible Builds: Reproducible Builds in April 2025
Welcome to our fourth report from the Reproducible Builds project in 2025. These 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. Lastly, if you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website.
Table of contents:
- reproduce.debian.net
- Fifty Years of Open Source Software Supply Chain Security
- 4th CHAINS Software Supply Chain Workshop
- Mailing list updates
- Canonicalization for Unreproducible Builds in Java
- OSS Rebuild adds new TUI features
- Distribution roundup
- diffoscope & strip-nondeterminism
- Website updates
- Reproducibility testing framework
- Upstream patches
reproduce.debian.net
The last few months have seen the introduction, development and deployment of reproduce.debian.net. In technical terms, this is an instance of rebuilderd, our server designed monitor the official package repositories of Linux distributions and attempt to reproduce the observed results there.
This month, however, we are pleased to announce that reproduce.debian.net now tests all the Debian trixie architectures except s390x and mips64el.
The ppc64el architecture was added through the generous support of Oregon State University Open Source Laboratory (OSUOSL), and we can support the armel architecture thanks to CodeThink.
Fifty Years of Open Source Software Supply Chain Security
Russ Cox has published a must-read article in ACM Queue on Fifty Years of Open Source Software Supply Chain Security. Subtitled, For decades, software reuse was only a lofty goal. Now it s very real. , Russ article goes on to outline the history and original goals of software supply-chain security in the US military in the early 1970s, all the way to the XZ Utils backdoor of 2024. Through that lens, Russ explores the problem and how it has changed, and hasn t changed, over time.
He concludes as follows:
We are all struggling with a massive shift that has happened in the past 10 or 20 years in the software industry. For decades, software reuse was only a lofty goal. Now it s very real. Modern programming environments such as Go, Node and Rust have made it trivial to reuse work by others, but our instincts about responsible behaviors have not yet adapted to this new reality.
We all have more work to do.
4th CHAINS Software Supply Chain Workshop
Convened as part of the CHAINS research project at the KTH Royal Institute of Technology in Stockholm, Sweden, the 4th CHAINS Software Supply Chain Workshop occurred during April. During the workshop, there were a number of relevant workshops, including:
- Signature, Attestations and Reproducible Builds
- Does Functional Package Management Enable Reproducible Builds at Scale?
- Causes and Mitigations of Unreproducible Builds in Java [paper]
- Fixing Breaking Dependency Updates Using LLMs
- The caveats of vulnerability analysis
maven-lockfile (Lockfiles for Java and Maven)
observer (Generating SBOMs for C/C++)
dirty-waters (Transparency checks for software supply chains)
- A supply chain competition. Martin Schwaighofer, the winner, created a recap video (20m43s).
- Finally, 8 posters on dependency introspection, diverse double compilation, dependency management, VEX and SBOM.
The full listing of the agenda is available on the workshop s website.
Mailing list updates
On our mailing list this month:
-
Luca DiMaio of Chainguard posted to the list reporting that they had successfully implemented reproducible filesystem images with both
ext4 and an EFI system partition. They go on to list the various methods, and the thread generated at least fifteen replies.
-
David Wheeler announced that the OpenSSF is building a glossary of sorts in order that they consistently use the same meaning for the same term and, moreover, that they have drafted a definition for reproducible build . The thread generated a significant number of replies on the definition, leading to a potential update to the Reproducible Build s own definition.
-
Lastly, kpcyrd posted to the list with a timely reminder and update on their
repro-env tool. As first reported in our July 2023 report, kpcyrd mentions that:
My initial interest in reproducible builds was how do I distribute pre-compiled binaries on GitHub without people raising security concerns about them . I ve cycled back to this original problem about 5 years later and built a tool that is meant to address this. [ ]
Canonicalization for Unreproducible Builds in Java
Aman Sharma, Benoit Baudry and Martin Monperrus have published a new scholarly study related to reproducible builds within Java. Titled Canonicalization for Unreproducible Builds in Java, the article s abstract is as follows:
[ ] Achieving reproducibility at scale remains difficult, especially in Java, due to a range of non-deterministic factors and caveats in the build process. In this work, we focus on reproducibility in Java-based software, archetypal of enterprise applications. We introduce a conceptual framework for reproducible builds, we analyze a large dataset from Reproducible Central and we develop a novel taxonomy of six root causes of unreproducibility. We study actionable mitigations: artifact and bytecode canonicalization using OSS-Rebuild and jNorm respectively. Finally, we present Chains-Rebuild, a tool that raises reproducibility success from 9.48% to 26.89% on 12,283 unreproducible artifacts. To sum up, our contributions are the first large-scale taxonomy of build unreproducibility causes in Java, a publicly available dataset of unreproducible builds, and Chains-Rebuild, a canonicalization tool for mitigating unreproducible builds in Java.
A full PDF of their article is available from arXiv.
OSS Rebuild adds new TUI features
OSS Rebuild aims to automate rebuilding upstream language packages (e.g. from PyPI, crates.io and npm registries) and publish signed attestations and build definitions for public use.
OSS Rebuild ships a text-based user interface (TUI) for viewing, launching, and debugging rebuilds. While previously requiring ownership of a full instance of OSS Rebuild s hosted infrastructure, the TUI now supports a fully local mode of build execution and artifact storage. Thanks to Giacomo Benedetti for his usage feedback and work to extend the local-only development toolkit.
Another feature added to the TUI was an experimental chatbot integration that provides interactive feedback on rebuild failure root causes and suggests fixes.
Distribution roundup
In Debian this month:
-
Roland Clobus posted another status report on reproducible ISO images on our mailing list this month, with the summary that all live images build reproducibly from the online Debian archive .
-
Debian developer Simon Josefsson published another two reproducibility-related blog posts this month, the first on the topic of Verified Reproducible Tarballs. Simon sardonically challenges the reader as follows: Do you want a supply-chain challenge for the Easter weekend? Pick some well-known software and try to re-create the official release tarballs from the corresponding Git checkout. Is anyone able to reproduce anything these days? After that, they also published a blog post on Building Debian in a GitLab Pipeline using their multi-stage rebuild approach.
-
Roland also posted to our mailing list to highlight that there is now another tool in Debian that generates reproducible output,
equivs . This is a tool to create trivial Debian packages that might Depend on other packages. As Roland writes, building the [equivs] package has been reproducible for a while, [but] now the output of the [tool] has become reproducible as well .
-
Lastly, 9 reviews of Debian packages were added, 10 were updated and 10 were removed this month adding to our extensive knowledge about identified issues.
The IzzyOnDroid Android APK repository made more progress in April. Thanks to funding by NLnet and Mobifree, the project was also to put more time into their tooling. For instance, developers can now easily run their own verification builder in less than 5 minutes . This currently supports Debian-based systems, but support for RPM-based systems is incoming.
-
The
rbuilder_setup tool can now setup the entire framework within less than five minutes. The process is configurable, too, so everything from just the basics to verify builds up to a fully-fledged RB environment is also possible.
-
This tool works on Debian, RedHat and Arch Linux, as well as their derivates. The project has received successful reports from Debian, Ubuntu, Fedora and some Arch Linux derivates so far.
-
Documentation on how to work with reproducible builds (making apps reproducible, debugging unreproducible packages, etc) is available in the project s wiki page.
-
Future work is also in the pipeline, including documentation, guidelines and helpers for debugging.
NixOS defined an Outreachy project for improving build reproducibility. In the application phase, NixOS saw some strong candidates providing contributions, both on the NixOS side and upstream: guider-le-ecit analyzed a libpinyin issue. Tessy James fixed an issue in arandr and helped analyze one in libvlc that led to a proposed upstream fix. Finally, 3pleX fixed an issue which was accepted in upstream kitty, one in upstream maturin, one in upstream python-sip and one in the Nix packaging of python-libbytesize. Sadly, the funding for this internship fell through, so NixOS were forced to abandon their search.
Lastly, in openSUSE news, Bernhard M. Wiedemann posted another monthly update for their work there.
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 a number of versions to Debian:
- Use the
--walk argument over the potentially dangerous alternative --scan when calling out to zipdetails(1). [ ]
- Correct a longstanding issue where many
>-based version tests used in conditional fixtures were broken. This was used to ensure that specific tests were only run when the version on the system was newer than a particular number. Thanks to Colin Watson for the report (Debian bug #1102658) [ ]
- Address a long-hidden issue in the
test_versions testsuite as well, where we weren t actually testing the greater-than comparisons mentioned above, as it was masked by the tests for equality. [ ]
- Update copyright years. [ ]
In strip-nondeterminism, however, Holger Levsen updated the Continuous Integration (CI) configuration in order to use the standard Debian pipelines via debian/salsa-ci.yml instead of using .gitlab-ci.yml. [ ]
Website updates
Once again, there were a number of improvements made to our website this month including:
-
Aman Sharma added OSS-Rebuild s
stabilize tool to the Tools page. [ ][ ]
-
Chris Lamb added a
configure.ac (GNU Autotools) example for using SOURCE_DATE_EPOCH. [ ]. Chris also updated the SOURCE_DATE_EPOCH snippet and move the archive metadata to a more suitable location. [ ]
-
Denis Carikli added GNU Boot to our ever-evolving Projects 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 April, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add armel.reproduce.debian.net to support the
armel architecture. [ ][ ]
- Add a new ARM node,
codethink05. [ ][ ]
- Add ppc64el.reproduce.debian.net to support testing of the
ppc64el architecture. [ ][ ][ ]
- Improve the reproduce.debian.net front page. [ ][ ]
- Make various changes to the
ppc64el nodes. [ ][ ]9[ ][ ]
- Make various changes to the
arm64 and armhf nodes. [ ][ ][ ][ ]
- Various changes related to the
rebuilderd-worker entry point. [ ][ ][ ]
- Create and deploy a
pkgsync script. [ ][ ][ ][ ][ ][ ][ ][ ]
- Fix the monitoring of the
riscv64 architecture. [ ][ ]
- Make a number of changes related to starting the
rebuilderd service. [ ][ ][ ][ ]
-
Backup-related:
-
Misc:
In addition:
-
Jochen Sprickerhof fixed the
risvc64 host names [ ] and requested access to all the rebuilderd nodes [ ].
-
Mattia Rizzolo updated the self-serve rebuild scheduling tool, replacing the deprecated SSO -style authentication with OpenIDC which authenticates against salsa.debian.org. [ ][ ][ ]
-
Roland Clobus updated the configuration for the
osuosl3 node to designate 4 workers for bigger builds. [ ]
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:
-
Bernhard M. Wiedemann
-
Chris Hofstaedtler:
- #1104512 filed against
command-not-found.
- #1104517 filed against
command-not-found.
- #1104535 filed against
cc65.
-
Chris Lamb:
- #1102659 filed against
vcsh.
- #1103797 filed against
schism.
- #1103798 filed against
magic-wormhole-mailbox-server.
- #1103800 filed against
openvpn3-client.
-
James Addison:
-
Jochen Sprickerhof:
- #1103288 filed against
courier.
- #1103563 filed against
cross-toolchain-base.
Finally, 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
Russ Cox has published a must-read article in ACM Queue on Fifty Years of Open Source Software Supply Chain Security. Subtitled, For decades, software reuse was only a lofty goal. Now it s very real. , Russ article goes on to outline the history and original goals of software supply-chain security in the US military in the early 1970s, all the way to the XZ Utils backdoor of 2024. Through that lens, Russ explores the problem and how it has changed, and hasn t changed, over time.
He concludes as follows:
We are all struggling with a massive shift that has happened in the past 10 or 20 years in the software industry. For decades, software reuse was only a lofty goal. Now it s very real. Modern programming environments such as Go, Node and Rust have made it trivial to reuse work by others, but our instincts about responsible behaviors have not yet adapted to this new reality. We all have more work to do.
4th CHAINS Software Supply Chain Workshop
Convened as part of the CHAINS research project at the KTH Royal Institute of Technology in Stockholm, Sweden, the 4th CHAINS Software Supply Chain Workshop occurred during April. During the workshop, there were a number of relevant workshops, including:
- Signature, Attestations and Reproducible Builds
- Does Functional Package Management Enable Reproducible Builds at Scale?
- Causes and Mitigations of Unreproducible Builds in Java [paper]
- Fixing Breaking Dependency Updates Using LLMs
- The caveats of vulnerability analysis
maven-lockfile (Lockfiles for Java and Maven)
observer (Generating SBOMs for C/C++)
dirty-waters (Transparency checks for software supply chains)
- A supply chain competition. Martin Schwaighofer, the winner, created a recap video (20m43s).
- Finally, 8 posters on dependency introspection, diverse double compilation, dependency management, VEX and SBOM.
The full listing of the agenda is available on the workshop s website.
Mailing list updates
On our mailing list this month:
-
Luca DiMaio of Chainguard posted to the list reporting that they had successfully implemented reproducible filesystem images with both
ext4 and an EFI system partition. They go on to list the various methods, and the thread generated at least fifteen replies.
-
David Wheeler announced that the OpenSSF is building a glossary of sorts in order that they consistently use the same meaning for the same term and, moreover, that they have drafted a definition for reproducible build . The thread generated a significant number of replies on the definition, leading to a potential update to the Reproducible Build s own definition.
-
Lastly, kpcyrd posted to the list with a timely reminder and update on their
repro-env tool. As first reported in our July 2023 report, kpcyrd mentions that:
My initial interest in reproducible builds was how do I distribute pre-compiled binaries on GitHub without people raising security concerns about them . I ve cycled back to this original problem about 5 years later and built a tool that is meant to address this. [ ]
Canonicalization for Unreproducible Builds in Java
Aman Sharma, Benoit Baudry and Martin Monperrus have published a new scholarly study related to reproducible builds within Java. Titled Canonicalization for Unreproducible Builds in Java, the article s abstract is as follows:
[ ] Achieving reproducibility at scale remains difficult, especially in Java, due to a range of non-deterministic factors and caveats in the build process. In this work, we focus on reproducibility in Java-based software, archetypal of enterprise applications. We introduce a conceptual framework for reproducible builds, we analyze a large dataset from Reproducible Central and we develop a novel taxonomy of six root causes of unreproducibility. We study actionable mitigations: artifact and bytecode canonicalization using OSS-Rebuild and jNorm respectively. Finally, we present Chains-Rebuild, a tool that raises reproducibility success from 9.48% to 26.89% on 12,283 unreproducible artifacts. To sum up, our contributions are the first large-scale taxonomy of build unreproducibility causes in Java, a publicly available dataset of unreproducible builds, and Chains-Rebuild, a canonicalization tool for mitigating unreproducible builds in Java.
A full PDF of their article is available from arXiv.
OSS Rebuild adds new TUI features
OSS Rebuild aims to automate rebuilding upstream language packages (e.g. from PyPI, crates.io and npm registries) and publish signed attestations and build definitions for public use.
OSS Rebuild ships a text-based user interface (TUI) for viewing, launching, and debugging rebuilds. While previously requiring ownership of a full instance of OSS Rebuild s hosted infrastructure, the TUI now supports a fully local mode of build execution and artifact storage. Thanks to Giacomo Benedetti for his usage feedback and work to extend the local-only development toolkit.
Another feature added to the TUI was an experimental chatbot integration that provides interactive feedback on rebuild failure root causes and suggests fixes.
Distribution roundup
In Debian this month:
-
Roland Clobus posted another status report on reproducible ISO images on our mailing list this month, with the summary that all live images build reproducibly from the online Debian archive .
-
Debian developer Simon Josefsson published another two reproducibility-related blog posts this month, the first on the topic of Verified Reproducible Tarballs. Simon sardonically challenges the reader as follows: Do you want a supply-chain challenge for the Easter weekend? Pick some well-known software and try to re-create the official release tarballs from the corresponding Git checkout. Is anyone able to reproduce anything these days? After that, they also published a blog post on Building Debian in a GitLab Pipeline using their multi-stage rebuild approach.
-
Roland also posted to our mailing list to highlight that there is now another tool in Debian that generates reproducible output,
equivs . This is a tool to create trivial Debian packages that might Depend on other packages. As Roland writes, building the [equivs] package has been reproducible for a while, [but] now the output of the [tool] has become reproducible as well .
-
Lastly, 9 reviews of Debian packages were added, 10 were updated and 10 were removed this month adding to our extensive knowledge about identified issues.
The IzzyOnDroid Android APK repository made more progress in April. Thanks to funding by NLnet and Mobifree, the project was also to put more time into their tooling. For instance, developers can now easily run their own verification builder in less than 5 minutes . This currently supports Debian-based systems, but support for RPM-based systems is incoming.
-
The
rbuilder_setup tool can now setup the entire framework within less than five minutes. The process is configurable, too, so everything from just the basics to verify builds up to a fully-fledged RB environment is also possible.
-
This tool works on Debian, RedHat and Arch Linux, as well as their derivates. The project has received successful reports from Debian, Ubuntu, Fedora and some Arch Linux derivates so far.
-
Documentation on how to work with reproducible builds (making apps reproducible, debugging unreproducible packages, etc) is available in the project s wiki page.
-
Future work is also in the pipeline, including documentation, guidelines and helpers for debugging.
NixOS defined an Outreachy project for improving build reproducibility. In the application phase, NixOS saw some strong candidates providing contributions, both on the NixOS side and upstream: guider-le-ecit analyzed a libpinyin issue. Tessy James fixed an issue in arandr and helped analyze one in libvlc that led to a proposed upstream fix. Finally, 3pleX fixed an issue which was accepted in upstream kitty, one in upstream maturin, one in upstream python-sip and one in the Nix packaging of python-libbytesize. Sadly, the funding for this internship fell through, so NixOS were forced to abandon their search.
Lastly, in openSUSE news, Bernhard M. Wiedemann posted another monthly update for their work there.
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 a number of versions to Debian:
- Use the
--walk argument over the potentially dangerous alternative --scan when calling out to zipdetails(1). [ ]
- Correct a longstanding issue where many
>-based version tests used in conditional fixtures were broken. This was used to ensure that specific tests were only run when the version on the system was newer than a particular number. Thanks to Colin Watson for the report (Debian bug #1102658) [ ]
- Address a long-hidden issue in the
test_versions testsuite as well, where we weren t actually testing the greater-than comparisons mentioned above, as it was masked by the tests for equality. [ ]
- Update copyright years. [ ]
In strip-nondeterminism, however, Holger Levsen updated the Continuous Integration (CI) configuration in order to use the standard Debian pipelines via debian/salsa-ci.yml instead of using .gitlab-ci.yml. [ ]
Website updates
Once again, there were a number of improvements made to our website this month including:
-
Aman Sharma added OSS-Rebuild s
stabilize tool to the Tools page. [ ][ ]
-
Chris Lamb added a
configure.ac (GNU Autotools) example for using SOURCE_DATE_EPOCH. [ ]. Chris also updated the SOURCE_DATE_EPOCH snippet and move the archive metadata to a more suitable location. [ ]
-
Denis Carikli added GNU Boot to our ever-evolving Projects 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 April, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add armel.reproduce.debian.net to support the
armel architecture. [ ][ ]
- Add a new ARM node,
codethink05. [ ][ ]
- Add ppc64el.reproduce.debian.net to support testing of the
ppc64el architecture. [ ][ ][ ]
- Improve the reproduce.debian.net front page. [ ][ ]
- Make various changes to the
ppc64el nodes. [ ][ ]9[ ][ ]
- Make various changes to the
arm64 and armhf nodes. [ ][ ][ ][ ]
- Various changes related to the
rebuilderd-worker entry point. [ ][ ][ ]
- Create and deploy a
pkgsync script. [ ][ ][ ][ ][ ][ ][ ][ ]
- Fix the monitoring of the
riscv64 architecture. [ ][ ]
- Make a number of changes related to starting the
rebuilderd service. [ ][ ][ ][ ]
-
Backup-related:
-
Misc:
In addition:
-
Jochen Sprickerhof fixed the
risvc64 host names [ ] and requested access to all the rebuilderd nodes [ ].
-
Mattia Rizzolo updated the self-serve rebuild scheduling tool, replacing the deprecated SSO -style authentication with OpenIDC which authenticates against salsa.debian.org. [ ][ ][ ]
-
Roland Clobus updated the configuration for the
osuosl3 node to designate 4 workers for bigger builds. [ ]
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:
-
Bernhard M. Wiedemann
-
Chris Hofstaedtler:
- #1104512 filed against
command-not-found.
- #1104517 filed against
command-not-found.
- #1104535 filed against
cc65.
-
Chris Lamb:
- #1102659 filed against
vcsh.
- #1103797 filed against
schism.
- #1103798 filed against
magic-wormhole-mailbox-server.
- #1103800 filed against
openvpn3-client.
-
James Addison:
-
Jochen Sprickerhof:
- #1103288 filed against
courier.
- #1103563 filed against
cross-toolchain-base.
Finally, 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
maven-lockfile (Lockfiles for Java and Maven)observer (Generating SBOMs for C/C++)dirty-waters (Transparency checks for software supply chains)-
Luca DiMaio of Chainguard posted to the list reporting that they had successfully implemented reproducible filesystem images with both
ext4and an EFI system partition. They go on to list the various methods, and the thread generated at least fifteen replies. - David Wheeler announced that the OpenSSF is building a glossary of sorts in order that they consistently use the same meaning for the same term and, moreover, that they have drafted a definition for reproducible build . The thread generated a significant number of replies on the definition, leading to a potential update to the Reproducible Build s own definition.
-
Lastly, kpcyrd posted to the list with a timely reminder and update on their
repro-envtool. As first reported in our July 2023 report, kpcyrd mentions that:My initial interest in reproducible builds was how do I distribute pre-compiled binaries on GitHub without people raising security concerns about them . I ve cycled back to this original problem about 5 years later and built a tool that is meant to address this. [ ]
Canonicalization for Unreproducible Builds in Java
Aman Sharma, Benoit Baudry and Martin Monperrus have published a new scholarly study related to reproducible builds within Java. Titled Canonicalization for Unreproducible Builds in Java, the article s abstract is as follows:
[ ] Achieving reproducibility at scale remains difficult, especially in Java, due to a range of non-deterministic factors and caveats in the build process. In this work, we focus on reproducibility in Java-based software, archetypal of enterprise applications. We introduce a conceptual framework for reproducible builds, we analyze a large dataset from Reproducible Central and we develop a novel taxonomy of six root causes of unreproducibility. We study actionable mitigations: artifact and bytecode canonicalization using OSS-Rebuild and jNorm respectively. Finally, we present Chains-Rebuild, a tool that raises reproducibility success from 9.48% to 26.89% on 12,283 unreproducible artifacts. To sum up, our contributions are the first large-scale taxonomy of build unreproducibility causes in Java, a publicly available dataset of unreproducible builds, and Chains-Rebuild, a canonicalization tool for mitigating unreproducible builds in Java.
A full PDF of their article is available from arXiv.
OSS Rebuild adds new TUI features
OSS Rebuild aims to automate rebuilding upstream language packages (e.g. from PyPI, crates.io and npm registries) and publish signed attestations and build definitions for public use.
OSS Rebuild ships a text-based user interface (TUI) for viewing, launching, and debugging rebuilds. While previously requiring ownership of a full instance of OSS Rebuild s hosted infrastructure, the TUI now supports a fully local mode of build execution and artifact storage. Thanks to Giacomo Benedetti for his usage feedback and work to extend the local-only development toolkit.
Another feature added to the TUI was an experimental chatbot integration that provides interactive feedback on rebuild failure root causes and suggests fixes.
Distribution roundup
In Debian this month:
-
Roland Clobus posted another status report on reproducible ISO images on our mailing list this month, with the summary that all live images build reproducibly from the online Debian archive .
-
Debian developer Simon Josefsson published another two reproducibility-related blog posts this month, the first on the topic of Verified Reproducible Tarballs. Simon sardonically challenges the reader as follows: Do you want a supply-chain challenge for the Easter weekend? Pick some well-known software and try to re-create the official release tarballs from the corresponding Git checkout. Is anyone able to reproduce anything these days? After that, they also published a blog post on Building Debian in a GitLab Pipeline using their multi-stage rebuild approach.
-
Roland also posted to our mailing list to highlight that there is now another tool in Debian that generates reproducible output,
equivs . This is a tool to create trivial Debian packages that might Depend on other packages. As Roland writes, building the [equivs] package has been reproducible for a while, [but] now the output of the [tool] has become reproducible as well .
-
Lastly, 9 reviews of Debian packages were added, 10 were updated and 10 were removed this month adding to our extensive knowledge about identified issues.
The IzzyOnDroid Android APK repository made more progress in April. Thanks to funding by NLnet and Mobifree, the project was also to put more time into their tooling. For instance, developers can now easily run their own verification builder in less than 5 minutes . This currently supports Debian-based systems, but support for RPM-based systems is incoming.
-
The
rbuilder_setup tool can now setup the entire framework within less than five minutes. The process is configurable, too, so everything from just the basics to verify builds up to a fully-fledged RB environment is also possible.
-
This tool works on Debian, RedHat and Arch Linux, as well as their derivates. The project has received successful reports from Debian, Ubuntu, Fedora and some Arch Linux derivates so far.
-
Documentation on how to work with reproducible builds (making apps reproducible, debugging unreproducible packages, etc) is available in the project s wiki page.
-
Future work is also in the pipeline, including documentation, guidelines and helpers for debugging.
NixOS defined an Outreachy project for improving build reproducibility. In the application phase, NixOS saw some strong candidates providing contributions, both on the NixOS side and upstream: guider-le-ecit analyzed a libpinyin issue. Tessy James fixed an issue in arandr and helped analyze one in libvlc that led to a proposed upstream fix. Finally, 3pleX fixed an issue which was accepted in upstream kitty, one in upstream maturin, one in upstream python-sip and one in the Nix packaging of python-libbytesize. Sadly, the funding for this internship fell through, so NixOS were forced to abandon their search.
Lastly, in openSUSE news, Bernhard M. Wiedemann posted another monthly update for their work there.
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 a number of versions to Debian:
- Use the
--walk argument over the potentially dangerous alternative --scan when calling out to zipdetails(1). [ ]
- Correct a longstanding issue where many
>-based version tests used in conditional fixtures were broken. This was used to ensure that specific tests were only run when the version on the system was newer than a particular number. Thanks to Colin Watson for the report (Debian bug #1102658) [ ]
- Address a long-hidden issue in the
test_versions testsuite as well, where we weren t actually testing the greater-than comparisons mentioned above, as it was masked by the tests for equality. [ ]
- Update copyright years. [ ]
In strip-nondeterminism, however, Holger Levsen updated the Continuous Integration (CI) configuration in order to use the standard Debian pipelines via debian/salsa-ci.yml instead of using .gitlab-ci.yml. [ ]
Website updates
Once again, there were a number of improvements made to our website this month including:
-
Aman Sharma added OSS-Rebuild s
stabilize tool to the Tools page. [ ][ ]
-
Chris Lamb added a
configure.ac (GNU Autotools) example for using SOURCE_DATE_EPOCH. [ ]. Chris also updated the SOURCE_DATE_EPOCH snippet and move the archive metadata to a more suitable location. [ ]
-
Denis Carikli added GNU Boot to our ever-evolving Projects 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 April, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add armel.reproduce.debian.net to support the
armel architecture. [ ][ ]
- Add a new ARM node,
codethink05. [ ][ ]
- Add ppc64el.reproduce.debian.net to support testing of the
ppc64el architecture. [ ][ ][ ]
- Improve the reproduce.debian.net front page. [ ][ ]
- Make various changes to the
ppc64el nodes. [ ][ ]9[ ][ ]
- Make various changes to the
arm64 and armhf nodes. [ ][ ][ ][ ]
- Various changes related to the
rebuilderd-worker entry point. [ ][ ][ ]
- Create and deploy a
pkgsync script. [ ][ ][ ][ ][ ][ ][ ][ ]
- Fix the monitoring of the
riscv64 architecture. [ ][ ]
- Make a number of changes related to starting the
rebuilderd service. [ ][ ][ ][ ]
-
Backup-related:
-
Misc:
In addition:
-
Jochen Sprickerhof fixed the
risvc64 host names [ ] and requested access to all the rebuilderd nodes [ ].
-
Mattia Rizzolo updated the self-serve rebuild scheduling tool, replacing the deprecated SSO -style authentication with OpenIDC which authenticates against salsa.debian.org. [ ][ ][ ]
-
Roland Clobus updated the configuration for the
osuosl3 node to designate 4 workers for bigger builds. [ ]
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:
-
Bernhard M. Wiedemann
-
Chris Hofstaedtler:
- #1104512 filed against
command-not-found.
- #1104517 filed against
command-not-found.
- #1104535 filed against
cc65.
-
Chris Lamb:
- #1102659 filed against
vcsh.
- #1103797 filed against
schism.
- #1103798 filed against
magic-wormhole-mailbox-server.
- #1103800 filed against
openvpn3-client.
-
James Addison:
-
Jochen Sprickerhof:
- #1103288 filed against
courier.
- #1103563 filed against
cross-toolchain-base.
Finally, 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
OSS Rebuild aims to automate rebuilding upstream language packages (e.g. from PyPI, crates.io and npm registries) and publish signed attestations and build definitions for public use.
OSS Rebuild ships a text-based user interface (TUI) for viewing, launching, and debugging rebuilds. While previously requiring ownership of a full instance of OSS Rebuild s hosted infrastructure, the TUI now supports a fully local mode of build execution and artifact storage. Thanks to Giacomo Benedetti for his usage feedback and work to extend the local-only development toolkit.
Another feature added to the TUI was an experimental chatbot integration that provides interactive feedback on rebuild failure root causes and suggests fixes.
Distribution roundup
In Debian this month:
-
Roland Clobus posted another status report on reproducible ISO images on our mailing list this month, with the summary that all live images build reproducibly from the online Debian archive .
-
Debian developer Simon Josefsson published another two reproducibility-related blog posts this month, the first on the topic of Verified Reproducible Tarballs. Simon sardonically challenges the reader as follows: Do you want a supply-chain challenge for the Easter weekend? Pick some well-known software and try to re-create the official release tarballs from the corresponding Git checkout. Is anyone able to reproduce anything these days? After that, they also published a blog post on Building Debian in a GitLab Pipeline using their multi-stage rebuild approach.
-
Roland also posted to our mailing list to highlight that there is now another tool in Debian that generates reproducible output,
equivs . This is a tool to create trivial Debian packages that might Depend on other packages. As Roland writes, building the [equivs] package has been reproducible for a while, [but] now the output of the [tool] has become reproducible as well .
-
Lastly, 9 reviews of Debian packages were added, 10 were updated and 10 were removed this month adding to our extensive knowledge about identified issues.
The IzzyOnDroid Android APK repository made more progress in April. Thanks to funding by NLnet and Mobifree, the project was also to put more time into their tooling. For instance, developers can now easily run their own verification builder in less than 5 minutes . This currently supports Debian-based systems, but support for RPM-based systems is incoming.
-
The
rbuilder_setup tool can now setup the entire framework within less than five minutes. The process is configurable, too, so everything from just the basics to verify builds up to a fully-fledged RB environment is also possible.
-
This tool works on Debian, RedHat and Arch Linux, as well as their derivates. The project has received successful reports from Debian, Ubuntu, Fedora and some Arch Linux derivates so far.
-
Documentation on how to work with reproducible builds (making apps reproducible, debugging unreproducible packages, etc) is available in the project s wiki page.
-
Future work is also in the pipeline, including documentation, guidelines and helpers for debugging.
NixOS defined an Outreachy project for improving build reproducibility. In the application phase, NixOS saw some strong candidates providing contributions, both on the NixOS side and upstream: guider-le-ecit analyzed a libpinyin issue. Tessy James fixed an issue in arandr and helped analyze one in libvlc that led to a proposed upstream fix. Finally, 3pleX fixed an issue which was accepted in upstream kitty, one in upstream maturin, one in upstream python-sip and one in the Nix packaging of python-libbytesize. Sadly, the funding for this internship fell through, so NixOS were forced to abandon their search.
Lastly, in openSUSE news, Bernhard M. Wiedemann posted another monthly update for their work there.
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 a number of versions to Debian:
- Use the
--walk argument over the potentially dangerous alternative --scan when calling out to zipdetails(1). [ ]
- Correct a longstanding issue where many
>-based version tests used in conditional fixtures were broken. This was used to ensure that specific tests were only run when the version on the system was newer than a particular number. Thanks to Colin Watson for the report (Debian bug #1102658) [ ]
- Address a long-hidden issue in the
test_versions testsuite as well, where we weren t actually testing the greater-than comparisons mentioned above, as it was masked by the tests for equality. [ ]
- Update copyright years. [ ]
In strip-nondeterminism, however, Holger Levsen updated the Continuous Integration (CI) configuration in order to use the standard Debian pipelines via debian/salsa-ci.yml instead of using .gitlab-ci.yml. [ ]
Website updates
Once again, there were a number of improvements made to our website this month including:
-
Aman Sharma added OSS-Rebuild s
stabilize tool to the Tools page. [ ][ ]
-
Chris Lamb added a
configure.ac (GNU Autotools) example for using SOURCE_DATE_EPOCH. [ ]. Chris also updated the SOURCE_DATE_EPOCH snippet and move the archive metadata to a more suitable location. [ ]
-
Denis Carikli added GNU Boot to our ever-evolving Projects 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 April, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add armel.reproduce.debian.net to support the
armel architecture. [ ][ ]
- Add a new ARM node,
codethink05. [ ][ ]
- Add ppc64el.reproduce.debian.net to support testing of the
ppc64el architecture. [ ][ ][ ]
- Improve the reproduce.debian.net front page. [ ][ ]
- Make various changes to the
ppc64el nodes. [ ][ ]9[ ][ ]
- Make various changes to the
arm64 and armhf nodes. [ ][ ][ ][ ]
- Various changes related to the
rebuilderd-worker entry point. [ ][ ][ ]
- Create and deploy a
pkgsync script. [ ][ ][ ][ ][ ][ ][ ][ ]
- Fix the monitoring of the
riscv64 architecture. [ ][ ]
- Make a number of changes related to starting the
rebuilderd service. [ ][ ][ ][ ]
-
Backup-related:
-
Misc:
In addition:
-
Jochen Sprickerhof fixed the
risvc64 host names [ ] and requested access to all the rebuilderd nodes [ ].
-
Mattia Rizzolo updated the self-serve rebuild scheduling tool, replacing the deprecated SSO -style authentication with OpenIDC which authenticates against salsa.debian.org. [ ][ ][ ]
-
Roland Clobus updated the configuration for the
osuosl3 node to designate 4 workers for bigger builds. [ ]
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:
-
Bernhard M. Wiedemann
-
Chris Hofstaedtler:
- #1104512 filed against
command-not-found.
- #1104517 filed against
command-not-found.
- #1104535 filed against
cc65.
-
Chris Lamb:
- #1102659 filed against
vcsh.
- #1103797 filed against
schism.
- #1103798 filed against
magic-wormhole-mailbox-server.
- #1103800 filed against
openvpn3-client.
-
James Addison:
-
Jochen Sprickerhof:
- #1103288 filed against
courier.
- #1103563 filed against
cross-toolchain-base.
Finally, 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
equivs . This is a tool to create trivial Debian packages that might Depend on other packages. As Roland writes, building the [equivs] package has been reproducible for a while, [but] now the output of the [tool] has become reproducible as well .
rbuilder_setup tool can now setup the entire framework within less than five minutes. The process is configurable, too, so everything from just the basics to verify builds up to a fully-fledged RB environment is also possible.
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 a number of versions to Debian:
- Use the
--walkargument over the potentially dangerous alternative--scanwhen calling out tozipdetails(1). [ ] - Correct a longstanding issue where many
>-based version tests used in conditional fixtures were broken. This was used to ensure that specific tests were only run when the version on the system was newer than a particular number. Thanks to Colin Watson for the report (Debian bug #1102658) [ ] - Address a long-hidden issue in the
test_versionstestsuite as well, where we weren t actually testing the greater-than comparisons mentioned above, as it was masked by the tests for equality. [ ] - Update copyright years. [ ]
debian/salsa-ci.yml instead of using .gitlab-ci.yml. [ ]
Website updates
Once again, there were a number of improvements made to our website this month including:
-
Aman Sharma added OSS-Rebuild s
stabilize tool to the Tools page. [ ][ ]
-
Chris Lamb added a
configure.ac (GNU Autotools) example for using SOURCE_DATE_EPOCH. [ ]. Chris also updated the SOURCE_DATE_EPOCH snippet and move the archive metadata to a more suitable location. [ ]
-
Denis Carikli added GNU Boot to our ever-evolving Projects 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 April, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add armel.reproduce.debian.net to support the
armel architecture. [ ][ ]
- Add a new ARM node,
codethink05. [ ][ ]
- Add ppc64el.reproduce.debian.net to support testing of the
ppc64el architecture. [ ][ ][ ]
- Improve the reproduce.debian.net front page. [ ][ ]
- Make various changes to the
ppc64el nodes. [ ][ ]9[ ][ ]
- Make various changes to the
arm64 and armhf nodes. [ ][ ][ ][ ]
- Various changes related to the
rebuilderd-worker entry point. [ ][ ][ ]
- Create and deploy a
pkgsync script. [ ][ ][ ][ ][ ][ ][ ][ ]
- Fix the monitoring of the
riscv64 architecture. [ ][ ]
- Make a number of changes related to starting the
rebuilderd service. [ ][ ][ ][ ]
-
Backup-related:
-
Misc:
In addition:
-
Jochen Sprickerhof fixed the
risvc64 host names [ ] and requested access to all the rebuilderd nodes [ ].
-
Mattia Rizzolo updated the self-serve rebuild scheduling tool, replacing the deprecated SSO -style authentication with OpenIDC which authenticates against salsa.debian.org. [ ][ ][ ]
-
Roland Clobus updated the configuration for the
osuosl3 node to designate 4 workers for bigger builds. [ ]
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:
-
Bernhard M. Wiedemann
-
Chris Hofstaedtler:
- #1104512 filed against
command-not-found.
- #1104517 filed against
command-not-found.
- #1104535 filed against
cc65.
-
Chris Lamb:
- #1102659 filed against
vcsh.
- #1103797 filed against
schism.
- #1103798 filed against
magic-wormhole-mailbox-server.
- #1103800 filed against
openvpn3-client.
-
James Addison:
-
Jochen Sprickerhof:
- #1103288 filed against
courier.
- #1103563 filed against
cross-toolchain-base.
Finally, 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
stabilize tool to the Tools page. [ ][ ]
configure.ac (GNU Autotools) example for using SOURCE_DATE_EPOCH. [ ]. Chris also updated the SOURCE_DATE_EPOCH snippet and move the archive metadata to a more suitable location. [ ]
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 April, a number of changes were made by Holger Levsen, including:
-
reproduce.debian.net-related:
- Add armel.reproduce.debian.net to support the
armelarchitecture. [ ][ ] - Add a new ARM node,
codethink05. [ ][ ] - Add ppc64el.reproduce.debian.net to support testing of the
ppc64elarchitecture. [ ][ ][ ] - Improve the reproduce.debian.net front page. [ ][ ]
- Make various changes to the
ppc64elnodes. [ ][ ]9[ ][ ] - Make various changes to the
arm64andarmhfnodes. [ ][ ][ ][ ] - Various changes related to the
rebuilderd-workerentry point. [ ][ ][ ] - Create and deploy a
pkgsyncscript. [ ][ ][ ][ ][ ][ ][ ][ ] - Fix the monitoring of the
riscv64architecture. [ ][ ] - Make a number of changes related to starting the
rebuilderdservice. [ ][ ][ ][ ]
- Add armel.reproduce.debian.net to support the
- Backup-related:
- Misc:
-
Jochen Sprickerhof fixed the
risvc64host names [ ] and requested access to all therebuilderdnodes [ ]. - Mattia Rizzolo updated the self-serve rebuild scheduling tool, replacing the deprecated SSO -style authentication with OpenIDC which authenticates against salsa.debian.org. [ ][ ][ ]
-
Roland Clobus updated the configuration for the
osuosl3node to designate 4 workers for bigger builds. [ ]
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:
-
Bernhard M. Wiedemann
-
Chris Hofstaedtler:
- #1104512 filed against
command-not-found.
- #1104517 filed against
command-not-found.
- #1104535 filed against
cc65.
-
Chris Lamb:
- #1102659 filed against
vcsh.
- #1103797 filed against
schism.
- #1103798 filed against
magic-wormhole-mailbox-server.
- #1103800 filed against
openvpn3-client.
-
James Addison:
-
Jochen Sprickerhof:
- #1103288 filed against
courier.
- #1103563 filed against
cross-toolchain-base.
Finally, 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
- #1104512 filed against
command-not-found. - #1104517 filed against
command-not-found. - #1104535 filed against
cc65.
- #1102659 filed against
vcsh. - #1103797 filed against
schism. - #1103798 filed against
magic-wormhole-mailbox-server. - #1103800 filed against
openvpn3-client.
- #1103288 filed against
courier. - #1103563 filed against
cross-toolchain-base.
#reproducible-builds on irc.oftc.net.
rb-general@lists.reproducible-builds.org
Dear Debian community,
This is bits from the DPL for April.
End of 10
I am sure I was speaking in the interest of the whole project when
joining the 
Like each month, have a look at the work funded by
Last year, I decided to start participating in the Debian LTS and ELTS projects. It was a great opportunity to engage in
something new within the Debian community. I had been following these projects for many years, observing their evolution
and how they gained traction both within the ecosystem and across the industry.
I was curious to explore how contributors were working internally especially how they managed security patching and
remediation for older software. I ve always felt this was a particularly challenging area, and I was fortunate to
experience it firsthand.
As of April 2025, the
After careful consideration, I ve decided to embark on a new chapter in my professional journey. I ve left my position at AWS to dedicate at least the next six months to developing open source software and strengthening digital ecosystems. My focus will be on contributing to Linux distributions (primarily Debian) and other critical infrastructure components that our modern society depends on, but which may not receive adequate attention or resources.
Fun with -fsanitize=undefined and Picolibc
Both GCC and Clang support the -fsanitize=undefined flag which
instruments the generated code to detect places where the program
wanders into parts of the C language specification which are either
undefined or implementation defined. Many of these are also common
programming errors. It would be great if there were sanitizers for
other easily detected bugs, but for now, at least the undefined
sanitizer does catch several useful problems.
Supporting the sanitizer
The sanitizer can be built to either trap on any error or call
handlers. In both modes, the same problems are identified, but when
trap mode is enabled, the compiler inserts a trap instruction and
doesn't expect the program to continue running. When handlers are in
use, each identified issue is tagged with a bunch of useful data and
then a specific sanitizer handling function is called.
The specific functions are not all that well documented, nor are the
parameters they receive. Maybe this is because both compilers provide
an implementation of all of the functions they use and don't really
expect external implementations to exist? However, to make these useful in an
embedded environment, picolibc needs to provide a complete set of
handlers that support all versions both gcc and clang as the
compiler-provided versions depend upon specific C (and C++) libraries.
Of course, programs can be built in trap-on-error mode, but that makes
it much more difficult to figure out what went wrong.
Fixing Sanitizer Issues
Once the sanitizer handlers were implemented, picolibc could be
built with them enabled and all of the picolibc tests run to uncover
issues within the library.
As with the static analyzer adventure from last year, the vast bulk of
sanitizer complaints came from invoking undefined or
implementation-defined behavior in harmless ways:
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,
This year's
Getting things ready for the event.
Intro to GELOS talk.
A ~~not so~~ Brief Introdution to the Debian Project talk.
Everyone already knew Debian!
Debian and the Free Culture talk
People in the auditorium space.
Free Software: the paths to a free life talk
Coffee Break.
The FOSS Ecosystem and You talk.
Group photo.
Celebration goes on in the bar.
So there are only 2 web browser engines, and it seems likely there will
soon only be 1, and making a whole new web browser from the ground up is
effectively impossible because the browsers vendors have weaponized web
standards complexity against any newcomers. Maybe eventually someone will
succeed and there will be 2 again. Best case. What a situation.
So throw out all the web standards. Make a browser that just runs WASM
blobs, and gives them a surface to use, sorta like Wayland does. It has
tabs, and a throbber, and urls, but no HTML, no javascript, no CSS.
Just HTTP of WASM blobs.
This is where the web browser is going eventually anyway, except in the
current line of evolution it will be WASM with all the web standards
complexity baked in and reinforcing the current situation.
Would this be a mass of proprietary software? Have you looked at any
corporate website's "source" lately? But what's important is that this
would make it easy enough to build new browsers that they would stop
being a point of control.
Want a browser that natively supports RSS? Poll the feeds, make a UI,
download the WASM enclosures to view the posts. Want a browser that
supports IPFS or gopher? Fork any browser and add it, the mantenance load
will be minimal. Want to provide access to GPIO pins or something? Add an
extension that can be accessed via the WASI component model. This would
allow for so many things like that which won't and can't happen with the
current market duopoly browser situation.
And as for your WASM web pages, well you can still use HTML if you like. Use
the WASI component model to pull in a HTML engine. It doesn't need to
support everything, just the parts of web standards that you want to use.
Or you can do something entitely different in your WASM that is not HTML
based at all but a better paradigm (oh hi Spritely or display postscript
or gemini capsules or whatever).
Dual innovation sources or duopoly? I know which I'd prefer. This is not my
project to build though.
I can t remember exactly the joke I was making at the time in my
A maintenance release of our