Reproducible Builds: Reproducible Builds in December 2025
Welcome to the December 2025 from the Reproducible Builds project!
Our monthly reports outline what we ve been up to over the past month, highlighting items of news from elsewhere in the increasingly-important area of software supply-chain security. As ever, if you are interested in contributing to the Reproducible Builds project, please see the Contribute page on our website.
- New orig-check service to validate Debian upstream tarballs
- Distribution work
- disorderfs updated to FUSE 3
- Mailing list updates
- Three new academic papers published
- Website updates
- Upstream patches
New orig-check service to validate Debian upstream tarballs
This month, Debian Developer Lucas Nussbaum announced the orig-check service, which attempts to automatically reproduce the generation upstream tarballs (ie. the original source component of a Debian source package), comparing that to the upstream tarball actually shipped with Debian.
As of the time of writing, it is possible for a Debian developer to upload a source archive that does not actually correspond to upstream s version. Whilst this is not inherently malicious (it typically indicates some tooling/process issue), the very possibility that a maintainer s version may differ potentially permits a maintainer to make (malicious) changes that would be misattributed to upstream.
This service therefore nicely complements the whatsrc.org service, which was reported in our reports for both April and August. The orig-check is dedicated to Lunar, who sadly passed away a year ago.
Distribution work
In Arch Linux this month, Robin Candau and Mark Hegreberg worked at making the Arch Linux WSL image bit-for-bit reproducible. Robin also shared some implementation details and future related work on our mailing list.
Continuing a series reported in these reports for March, April and July 2025 (etc.), Simon Josefsson has published another interesting article this month, itself a followup to a post Simon published in December 2024 regarding GNU Guix Container Images that are hosted on GitLab.
In Debian this month, Micha Lenk posted to the debian-backports-announce mailing list with the news that the Backports archive will now discard binaries generated and uploaded by maintainers: The benefit is that all binary packages [will] get built by the Debian buildds before we distribute them within the archive.
Felix Moessbauer of Siemens then filed a bug in the Debian bug tracker to signal their intention to package debsbom, a software bill of materials (SBOM) generator for distributions based on Debian. This generated a discussion on the bug inquiring about the output format as well as a question about how these SBOMs might be distributed.
Holger Levsen merged a number of significant changes written by Alper Nebi Yasak to the Debian Installer in order to improve its reproducibility. As noted in Alper s merge request, These are the reproducibility fixes I looked into before bookworm release, but was a bit afraid to send as it s just before the release, because the things like the xorriso conversion changes the content of the files to try to make them reproducible.
In addition, 76 reviews of Debian packages were added, 8 were updated and 27 were removed this month adding to our knowledge about identified issues. A new different_package_content_when_built_with_nocheck issue type was added by Holger Levsen. [ ]
Arnout Engelen posted to our mailing list reporting that they successfully reproduced the NixOS minimal installation ISO for the 25.11 release without relying on a pre-compiled package archive, with more details on their blog.
Lastly, Bernhard M. Wiedemann posted another openSUSE monthly update for his work there.
disorderfs updated to FUSE 3
disorderfs is our FUSE-based filesystem that deliberately introduces non-determinism into system calls to reliably flush out reproducibility issues.
This month, however, Roland Clobus upgraded disorderfs* from FUSE 2 to FUSE 3 after its package automatically got removed from Debian testing. Some tests in Debian currently require disorderfs to make the Debian live images reproducible, although disorderfs is not a Debian-specific tool.
Mailing list updates
On our mailing list this month:
- Jelle van der Waa followed up to a thread started late in November by Simon Mudd who was Looking for reproducible RPM building / rebuilding tooling. In their followup, Jelle mentions fedora-repro-build noting that it is designed to work with Koji, Fedora s build service.
-
Luca Di Maio announced stampdalf, a filesystem timestamp preservation tool that wraps arbitrary commands and ensures filesystem timestamp reproducibility :
stampdalf allows you to run any command that modifies files in a directory tree, then automatically resets all timestamps back to their original values. Any new files created during command execution are set to [the UNIX epoch] or a custom timestamp via SOURCE_DATE_EPOCH.
The project s GitHub page helpfully reveals that the project is pronounced: stamp-dalf (stamp like time-stamp, dalf like Gandalf the wizard) as it s a wizard of time and stamps .)
-
Lastly, Reproducible Builds developer cen1 posted to our list announcing that early/experimental/alpha support for FreeBSD was added to rebuilderd. In their post, cen1 reports that the initial builds are in progress and look quite decent . cen1 also interestingly notes that since the upstream is currently not technically reproducible I had to relax the bit-for-bit identical requirement of rebuilderd [ ] I consider the pkg to be reproducible if the tar is content-identical (via diffoscope), ignoring timestamps and some of the manifest files. .
Three new academic papers published
Yogya Gamage and Benoit Baudry of Universit de Montr al, Canada together with Deepika Tiwari and Martin Monperrus of KTH Royal Institute of Technology, Sweden published a paper on The Design Space of Lockfiles Across Package Managers:
Most package managers also generate a lockfile, which records the exact set of resolved dependency versions. Lockfiles are used to reduce build times; to verify the integrity of resolved packages; and to support build reproducibility across environments and time. Despite these beneficial features, developers often struggle with their maintenance, usage, and interpretation. In this study, we unveil the major challenges related to lockfiles, such that future researchers and engineers can address them. [ ]
A PDF of their paper is available online.
Benoit Baudry also posted an announcement to our mailing list, which generated a number of replies.
Betul Gokkaya, Leonardo Aniello and Basel Halak of the University of Southampton then published a paper on the A taxonomy of attacks, mitigations and risk assessment strategies within the software supply chain:
While existing studies primarily focus on software supply chain attacks prevention and detection methods, there is a need for a broad overview of attacks and comprehensive risk assessment for software supply chain security. This study conducts a systematic literature review to fill this gap. By analyzing 96 papers published between 2015-2023, we identified 19 distinct SSC attacks, including 6 novel attacks highlighted in recent studies. Additionally, we developed 25 specific security controls and established a precisely mapped taxonomy that transparently links each control to one or more specific attacks. [ ]
A PDF of the paper is available online via the article s canonical page.
Aman Sharma and Martin Monperrus of the KTH Royal Institute of Technology, Sweden along with Benoit Baudry of Universit de Montr al, Canada published a paper this month on Causes and Canonicalization of Unreproducible Builds in Java. The abstract of the paper 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. [ ]
A PDF of the paper is available online.
Website updates
Once again, there were a number of improvements made to our website this month including:
-
Chris Lamb updated a number of IzzyOnDroid links. [ ]
-
Luca Di Maio updated the System images page to document how to create reproducible XFS filesystems. [ ]
-
Robert Stupp made a number of useful changes, fixing and reorganising the Groovy / Kotlin pages [ ][ ][ ] as well adding a note about potential non-deterministic behaviour to the JVM page [ ].
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:
-
Chris Lamb:
- #1121794 filed against
golang-github-spf13-afero.
- #1121795 filed against
golang-github-appleboy-easyssh-proxy.
- #1121796 filed against
circlator.
- #1121797 filed against
golang-github-jhoonb-archivex.
- #1121798 filed against
golang-github-jonas-p-go-shp.
- #1121800 filed against
golang-github-foxboron-go-uefi.
- #1121801 filed against
in-toto-golang.
- #1121802 filed against
lua-penlight.
- #1121803 filed against
rust-fslock.
- #1121804 filed against
fff.
- #1121858 filed against
golang-github-notaryproject-notation-go.
- #1121859 filed against
golang-github-google-go-tpm.
- #1121860 filed against
golang-github-foxboron-go-tpm-keyfiles.
- #1121862 filed against
goobook.
- #1121865 filed against
fortran-regex.
- #1122014 filed against
golang-github-yudai-gojsondiff.
- #1122019 filed against
golang-github-tjfoc-gmsm.
- #1122020 filed against
golang-github-otiai10-copy.
- #1122021 filed against
golang-k8s-sigs-kustomize-cmd-config.
- #1122022 filed against
golang-github-artyom-mtab.
- #1122218 filed against
golang-k8s-sigs-release-utils.
- #1122219 filed against
golang-github-theupdateframework-go-tuf.
- #1122221 filed against
php-dompdf.
- #1122222 filed against
golang-github-viant-toolbox.
- #1122223 filed against
microbiomeutil.
- #1122224 filed against
python-openstep-plist.
- #1122225 filed against
rust-xdg.
- #1122226 filed against
bibtexparser.
- #1122227 filed against
plyara.
- #1122228 filed against
golang-github-valyala-fasthttp.
- #1122229 filed against
golang-github-issue9-identicon.
- #1122230 filed against
golang-github-cue-lang-cue.
- #1122231 filed against
sigstore-go.
- #1122232 filed against
golang-github-apptainer-sif.
- #1122376 filed against
golang-github-gin-gonic-gin.
- #1122383 filed against
rust-rustpython-parser.
- #1122384 filed against
golang-github-reviewdog-errorformat.
- #1122385 filed against
geoalchemy2.
- #1122386 filed against
golang-github-shenwei356-breader.
- #1122388 filed against
golang-github-ulikunitz-xz.
- #1122389 filed against
golang-mvdan-editorconfig.
- #1122390 filed against
golang-github-digitorus-timestamp.
- #1122392 filed against
golang-forgejo-forgejo-levelqueue.
- #1122816 filed against
golang-github-kr-binarydist.
- #1122817 filed against
golang-github-kshedden-dstream.
- #1122818 filed against
golang-github-google-go-pkcs11.
- #1122819 filed against
golang-github-akavel-rsrc.
- #1122820 filed against
golang-github-go-macaron-toolbox.
- #1122821 filed against
golang-goptlib.
- #1122822 filed against
golang-github-dreamitgetit-statuscake.
- #1122824 filed against
golang-github-google-go-attestation.
- #1122999 filed against
python-pyshortcuts.
- #1123002 filed against
graudit.
- #1123003 filed against
golang-github-roaringbitmap-roaring.
- #1123004 filed against
golang-github-linkedin-goavro.
- #1123005 filed against
golang-github-cznic-ql.
- #1123006 filed against
golang-github-muesli-termenv.
- #1123007 filed against
golang-github-jung-kurt-gofpdf.
- #1123008 filed against
tdiary.
- #1123603 filed against
authselect.
- #1123663 filed against
node-convert-source-map.
- #1123664 filed against
zope.deferredimport.
- #1124271 filed against
golang-k8s-apimachinery.
-
Arnout Engelen:
kirigami (qml)
libplasma (qml)
powerdevil (qml)
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
In Arch Linux this month, Robin Candau and Mark Hegreberg worked at making the Arch Linux WSL image bit-for-bit reproducible. Robin also shared some implementation details and future related work on our mailing list.
Continuing a series reported in these reports for March, April and July 2025 (etc.), Simon Josefsson has published another interesting article this month, itself a followup to a post Simon published in December 2024 regarding GNU Guix Container Images that are hosted on GitLab.
In Debian this month, Micha Lenk posted to the debian-backports-announce mailing list with the news that the Backports archive will now discard binaries generated and uploaded by maintainers: The benefit is that all binary packages [will] get built by the Debian buildds before we distribute them within the archive.
Felix Moessbauer of Siemens then filed a bug in the Debian bug tracker to signal their intention to package debsbom, a software bill of materials (SBOM) generator for distributions based on Debian. This generated a discussion on the bug inquiring about the output format as well as a question about how these SBOMs might be distributed.
Holger Levsen merged a number of significant changes written by Alper Nebi Yasak to the Debian Installer in order to improve its reproducibility. As noted in Alper s merge request, These are the reproducibility fixes I looked into before bookworm release, but was a bit afraid to send as it s just before the release, because the things like the xorriso conversion changes the content of the files to try to make them reproducible.
In addition, 76 reviews of Debian packages were added, 8 were updated and 27 were removed this month adding to our knowledge about identified issues. A new different_package_content_when_built_with_nocheck issue type was added by Holger Levsen. [ ]
Arnout Engelen posted to our mailing list reporting that they successfully reproduced the NixOS minimal installation ISO for the 25.11 release without relying on a pre-compiled package archive, with more details on their blog.
Lastly, Bernhard M. Wiedemann posted another openSUSE monthly update for his work there.
disorderfs updated to FUSE 3
disorderfs is our FUSE-based filesystem that deliberately introduces non-determinism into system calls to reliably flush out reproducibility issues.
This month, however, Roland Clobus upgraded disorderfs* from FUSE 2 to FUSE 3 after its package automatically got removed from Debian testing. Some tests in Debian currently require disorderfs to make the Debian live images reproducible, although disorderfs is not a Debian-specific tool.
Mailing list updates
On our mailing list this month:
- Jelle van der Waa followed up to a thread started late in November by Simon Mudd who was Looking for reproducible RPM building / rebuilding tooling. In their followup, Jelle mentions fedora-repro-build noting that it is designed to work with Koji, Fedora s build service.
-
Luca Di Maio announced stampdalf, a filesystem timestamp preservation tool that wraps arbitrary commands and ensures filesystem timestamp reproducibility :
stampdalf allows you to run any command that modifies files in a directory tree, then automatically resets all timestamps back to their original values. Any new files created during command execution are set to [the UNIX epoch] or a custom timestamp via SOURCE_DATE_EPOCH.
The project s GitHub page helpfully reveals that the project is pronounced: stamp-dalf (stamp like time-stamp, dalf like Gandalf the wizard) as it s a wizard of time and stamps .)
-
Lastly, Reproducible Builds developer cen1 posted to our list announcing that early/experimental/alpha support for FreeBSD was added to rebuilderd. In their post, cen1 reports that the initial builds are in progress and look quite decent . cen1 also interestingly notes that since the upstream is currently not technically reproducible I had to relax the bit-for-bit identical requirement of rebuilderd [ ] I consider the pkg to be reproducible if the tar is content-identical (via diffoscope), ignoring timestamps and some of the manifest files. .
Three new academic papers published
Yogya Gamage and Benoit Baudry of Universit de Montr al, Canada together with Deepika Tiwari and Martin Monperrus of KTH Royal Institute of Technology, Sweden published a paper on The Design Space of Lockfiles Across Package Managers:
Most package managers also generate a lockfile, which records the exact set of resolved dependency versions. Lockfiles are used to reduce build times; to verify the integrity of resolved packages; and to support build reproducibility across environments and time. Despite these beneficial features, developers often struggle with their maintenance, usage, and interpretation. In this study, we unveil the major challenges related to lockfiles, such that future researchers and engineers can address them. [ ]
A PDF of their paper is available online.
Benoit Baudry also posted an announcement to our mailing list, which generated a number of replies.
Betul Gokkaya, Leonardo Aniello and Basel Halak of the University of Southampton then published a paper on the A taxonomy of attacks, mitigations and risk assessment strategies within the software supply chain:
While existing studies primarily focus on software supply chain attacks prevention and detection methods, there is a need for a broad overview of attacks and comprehensive risk assessment for software supply chain security. This study conducts a systematic literature review to fill this gap. By analyzing 96 papers published between 2015-2023, we identified 19 distinct SSC attacks, including 6 novel attacks highlighted in recent studies. Additionally, we developed 25 specific security controls and established a precisely mapped taxonomy that transparently links each control to one or more specific attacks. [ ]
A PDF of the paper is available online via the article s canonical page.
Aman Sharma and Martin Monperrus of the KTH Royal Institute of Technology, Sweden along with Benoit Baudry of Universit de Montr al, Canada published a paper this month on Causes and Canonicalization of Unreproducible Builds in Java. The abstract of the paper 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. [ ]
A PDF of the paper is available online.
Website updates
Once again, there were a number of improvements made to our website this month including:
-
Chris Lamb updated a number of IzzyOnDroid links. [ ]
-
Luca Di Maio updated the System images page to document how to create reproducible XFS filesystems. [ ]
-
Robert Stupp made a number of useful changes, fixing and reorganising the Groovy / Kotlin pages [ ][ ][ ] as well adding a note about potential non-deterministic behaviour to the JVM page [ ].
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:
-
Chris Lamb:
- #1121794 filed against
golang-github-spf13-afero.
- #1121795 filed against
golang-github-appleboy-easyssh-proxy.
- #1121796 filed against
circlator.
- #1121797 filed against
golang-github-jhoonb-archivex.
- #1121798 filed against
golang-github-jonas-p-go-shp.
- #1121800 filed against
golang-github-foxboron-go-uefi.
- #1121801 filed against
in-toto-golang.
- #1121802 filed against
lua-penlight.
- #1121803 filed against
rust-fslock.
- #1121804 filed against
fff.
- #1121858 filed against
golang-github-notaryproject-notation-go.
- #1121859 filed against
golang-github-google-go-tpm.
- #1121860 filed against
golang-github-foxboron-go-tpm-keyfiles.
- #1121862 filed against
goobook.
- #1121865 filed against
fortran-regex.
- #1122014 filed against
golang-github-yudai-gojsondiff.
- #1122019 filed against
golang-github-tjfoc-gmsm.
- #1122020 filed against
golang-github-otiai10-copy.
- #1122021 filed against
golang-k8s-sigs-kustomize-cmd-config.
- #1122022 filed against
golang-github-artyom-mtab.
- #1122218 filed against
golang-k8s-sigs-release-utils.
- #1122219 filed against
golang-github-theupdateframework-go-tuf.
- #1122221 filed against
php-dompdf.
- #1122222 filed against
golang-github-viant-toolbox.
- #1122223 filed against
microbiomeutil.
- #1122224 filed against
python-openstep-plist.
- #1122225 filed against
rust-xdg.
- #1122226 filed against
bibtexparser.
- #1122227 filed against
plyara.
- #1122228 filed against
golang-github-valyala-fasthttp.
- #1122229 filed against
golang-github-issue9-identicon.
- #1122230 filed against
golang-github-cue-lang-cue.
- #1122231 filed against
sigstore-go.
- #1122232 filed against
golang-github-apptainer-sif.
- #1122376 filed against
golang-github-gin-gonic-gin.
- #1122383 filed against
rust-rustpython-parser.
- #1122384 filed against
golang-github-reviewdog-errorformat.
- #1122385 filed against
geoalchemy2.
- #1122386 filed against
golang-github-shenwei356-breader.
- #1122388 filed against
golang-github-ulikunitz-xz.
- #1122389 filed against
golang-mvdan-editorconfig.
- #1122390 filed against
golang-github-digitorus-timestamp.
- #1122392 filed against
golang-forgejo-forgejo-levelqueue.
- #1122816 filed against
golang-github-kr-binarydist.
- #1122817 filed against
golang-github-kshedden-dstream.
- #1122818 filed against
golang-github-google-go-pkcs11.
- #1122819 filed against
golang-github-akavel-rsrc.
- #1122820 filed against
golang-github-go-macaron-toolbox.
- #1122821 filed against
golang-goptlib.
- #1122822 filed against
golang-github-dreamitgetit-statuscake.
- #1122824 filed against
golang-github-google-go-attestation.
- #1122999 filed against
python-pyshortcuts.
- #1123002 filed against
graudit.
- #1123003 filed against
golang-github-roaringbitmap-roaring.
- #1123004 filed against
golang-github-linkedin-goavro.
- #1123005 filed against
golang-github-cznic-ql.
- #1123006 filed against
golang-github-muesli-termenv.
- #1123007 filed against
golang-github-jung-kurt-gofpdf.
- #1123008 filed against
tdiary.
- #1123603 filed against
authselect.
- #1123663 filed against
node-convert-source-map.
- #1123664 filed against
zope.deferredimport.
- #1124271 filed against
golang-k8s-apimachinery.
-
Arnout Engelen:
kirigami (qml)
libplasma (qml)
powerdevil (qml)
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
- Jelle van der Waa followed up to a thread started late in November by Simon Mudd who was Looking for reproducible RPM building / rebuilding tooling. In their followup, Jelle mentions fedora-repro-build noting that it is designed to work with Koji, Fedora s build service.
-
Luca Di Maio announced stampdalf, a filesystem timestamp preservation tool that wraps arbitrary commands and ensures filesystem timestamp reproducibility :
stampdalf allows you to run any command that modifies files in a directory tree, then automatically resets all timestamps back to their original values. Any new files created during command execution are set to [the UNIX epoch] or a custom timestamp via
The project s GitHub page helpfully reveals that the project is pronounced: stamp-dalf (stamp like time-stamp, dalf like Gandalf the wizard) as it s a wizard of time and stamps .)SOURCE_DATE_EPOCH. - Lastly, Reproducible Builds developer cen1 posted to our list announcing that early/experimental/alpha support for FreeBSD was added to rebuilderd. In their post, cen1 reports that the initial builds are in progress and look quite decent . cen1 also interestingly notes that since the upstream is currently not technically reproducible I had to relax the bit-for-bit identical requirement of rebuilderd [ ] I consider the pkg to be reproducible if the tar is content-identical (via diffoscope), ignoring timestamps and some of the manifest files. .
Three new academic papers published
Yogya Gamage and Benoit Baudry of Universit de Montr al, Canada together with Deepika Tiwari and Martin Monperrus of KTH Royal Institute of Technology, Sweden published a paper on The Design Space of Lockfiles Across Package Managers:
Most package managers also generate a lockfile, which records the exact set of resolved dependency versions. Lockfiles are used to reduce build times; to verify the integrity of resolved packages; and to support build reproducibility across environments and time. Despite these beneficial features, developers often struggle with their maintenance, usage, and interpretation. In this study, we unveil the major challenges related to lockfiles, such that future researchers and engineers can address them. [ ]
A PDF of their paper is available online.
Benoit Baudry also posted an announcement to our mailing list, which generated a number of replies.
Betul Gokkaya, Leonardo Aniello and Basel Halak of the University of Southampton then published a paper on the A taxonomy of attacks, mitigations and risk assessment strategies within the software supply chain:
While existing studies primarily focus on software supply chain attacks prevention and detection methods, there is a need for a broad overview of attacks and comprehensive risk assessment for software supply chain security. This study conducts a systematic literature review to fill this gap. By analyzing 96 papers published between 2015-2023, we identified 19 distinct SSC attacks, including 6 novel attacks highlighted in recent studies. Additionally, we developed 25 specific security controls and established a precisely mapped taxonomy that transparently links each control to one or more specific attacks. [ ]
A PDF of the paper is available online via the article s canonical page.
Aman Sharma and Martin Monperrus of the KTH Royal Institute of Technology, Sweden along with Benoit Baudry of Universit de Montr al, Canada published a paper this month on Causes and Canonicalization of Unreproducible Builds in Java. The abstract of the paper 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. [ ]
A PDF of the paper is available online.
Website updates
Once again, there were a number of improvements made to our website this month including:
-
Chris Lamb updated a number of IzzyOnDroid links. [ ]
-
Luca Di Maio updated the System images page to document how to create reproducible XFS filesystems. [ ]
-
Robert Stupp made a number of useful changes, fixing and reorganising the Groovy / Kotlin pages [ ][ ][ ] as well adding a note about potential non-deterministic behaviour to the JVM page [ ].
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:
-
Chris Lamb:
- #1121794 filed against
golang-github-spf13-afero.
- #1121795 filed against
golang-github-appleboy-easyssh-proxy.
- #1121796 filed against
circlator.
- #1121797 filed against
golang-github-jhoonb-archivex.
- #1121798 filed against
golang-github-jonas-p-go-shp.
- #1121800 filed against
golang-github-foxboron-go-uefi.
- #1121801 filed against
in-toto-golang.
- #1121802 filed against
lua-penlight.
- #1121803 filed against
rust-fslock.
- #1121804 filed against
fff.
- #1121858 filed against
golang-github-notaryproject-notation-go.
- #1121859 filed against
golang-github-google-go-tpm.
- #1121860 filed against
golang-github-foxboron-go-tpm-keyfiles.
- #1121862 filed against
goobook.
- #1121865 filed against
fortran-regex.
- #1122014 filed against
golang-github-yudai-gojsondiff.
- #1122019 filed against
golang-github-tjfoc-gmsm.
- #1122020 filed against
golang-github-otiai10-copy.
- #1122021 filed against
golang-k8s-sigs-kustomize-cmd-config.
- #1122022 filed against
golang-github-artyom-mtab.
- #1122218 filed against
golang-k8s-sigs-release-utils.
- #1122219 filed against
golang-github-theupdateframework-go-tuf.
- #1122221 filed against
php-dompdf.
- #1122222 filed against
golang-github-viant-toolbox.
- #1122223 filed against
microbiomeutil.
- #1122224 filed against
python-openstep-plist.
- #1122225 filed against
rust-xdg.
- #1122226 filed against
bibtexparser.
- #1122227 filed against
plyara.
- #1122228 filed against
golang-github-valyala-fasthttp.
- #1122229 filed against
golang-github-issue9-identicon.
- #1122230 filed against
golang-github-cue-lang-cue.
- #1122231 filed against
sigstore-go.
- #1122232 filed against
golang-github-apptainer-sif.
- #1122376 filed against
golang-github-gin-gonic-gin.
- #1122383 filed against
rust-rustpython-parser.
- #1122384 filed against
golang-github-reviewdog-errorformat.
- #1122385 filed against
geoalchemy2.
- #1122386 filed against
golang-github-shenwei356-breader.
- #1122388 filed against
golang-github-ulikunitz-xz.
- #1122389 filed against
golang-mvdan-editorconfig.
- #1122390 filed against
golang-github-digitorus-timestamp.
- #1122392 filed against
golang-forgejo-forgejo-levelqueue.
- #1122816 filed against
golang-github-kr-binarydist.
- #1122817 filed against
golang-github-kshedden-dstream.
- #1122818 filed against
golang-github-google-go-pkcs11.
- #1122819 filed against
golang-github-akavel-rsrc.
- #1122820 filed against
golang-github-go-macaron-toolbox.
- #1122821 filed against
golang-goptlib.
- #1122822 filed against
golang-github-dreamitgetit-statuscake.
- #1122824 filed against
golang-github-google-go-attestation.
- #1122999 filed against
python-pyshortcuts.
- #1123002 filed against
graudit.
- #1123003 filed against
golang-github-roaringbitmap-roaring.
- #1123004 filed against
golang-github-linkedin-goavro.
- #1123005 filed against
golang-github-cznic-ql.
- #1123006 filed against
golang-github-muesli-termenv.
- #1123007 filed against
golang-github-jung-kurt-gofpdf.
- #1123008 filed against
tdiary.
- #1123603 filed against
authselect.
- #1123663 filed against
node-convert-source-map.
- #1123664 filed against
zope.deferredimport.
- #1124271 filed against
golang-k8s-apimachinery.
-
Arnout Engelen:
kirigami (qml)
libplasma (qml)
powerdevil (qml)
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
Once again, there were a number of improvements made to our website this month including:
- Chris Lamb updated a number of IzzyOnDroid links. [ ]
- Luca Di Maio updated the System images page to document how to create reproducible XFS filesystems. [ ]
- Robert Stupp made a number of useful changes, fixing and reorganising the Groovy / Kotlin pages [ ][ ][ ] as well adding a note about potential non-deterministic behaviour to the JVM page [ ].
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:
-
Chris Lamb:
- #1121794 filed against
golang-github-spf13-afero.
- #1121795 filed against
golang-github-appleboy-easyssh-proxy.
- #1121796 filed against
circlator.
- #1121797 filed against
golang-github-jhoonb-archivex.
- #1121798 filed against
golang-github-jonas-p-go-shp.
- #1121800 filed against
golang-github-foxboron-go-uefi.
- #1121801 filed against
in-toto-golang.
- #1121802 filed against
lua-penlight.
- #1121803 filed against
rust-fslock.
- #1121804 filed against
fff.
- #1121858 filed against
golang-github-notaryproject-notation-go.
- #1121859 filed against
golang-github-google-go-tpm.
- #1121860 filed against
golang-github-foxboron-go-tpm-keyfiles.
- #1121862 filed against
goobook.
- #1121865 filed against
fortran-regex.
- #1122014 filed against
golang-github-yudai-gojsondiff.
- #1122019 filed against
golang-github-tjfoc-gmsm.
- #1122020 filed against
golang-github-otiai10-copy.
- #1122021 filed against
golang-k8s-sigs-kustomize-cmd-config.
- #1122022 filed against
golang-github-artyom-mtab.
- #1122218 filed against
golang-k8s-sigs-release-utils.
- #1122219 filed against
golang-github-theupdateframework-go-tuf.
- #1122221 filed against
php-dompdf.
- #1122222 filed against
golang-github-viant-toolbox.
- #1122223 filed against
microbiomeutil.
- #1122224 filed against
python-openstep-plist.
- #1122225 filed against
rust-xdg.
- #1122226 filed against
bibtexparser.
- #1122227 filed against
plyara.
- #1122228 filed against
golang-github-valyala-fasthttp.
- #1122229 filed against
golang-github-issue9-identicon.
- #1122230 filed against
golang-github-cue-lang-cue.
- #1122231 filed against
sigstore-go.
- #1122232 filed against
golang-github-apptainer-sif.
- #1122376 filed against
golang-github-gin-gonic-gin.
- #1122383 filed against
rust-rustpython-parser.
- #1122384 filed against
golang-github-reviewdog-errorformat.
- #1122385 filed against
geoalchemy2.
- #1122386 filed against
golang-github-shenwei356-breader.
- #1122388 filed against
golang-github-ulikunitz-xz.
- #1122389 filed against
golang-mvdan-editorconfig.
- #1122390 filed against
golang-github-digitorus-timestamp.
- #1122392 filed against
golang-forgejo-forgejo-levelqueue.
- #1122816 filed against
golang-github-kr-binarydist.
- #1122817 filed against
golang-github-kshedden-dstream.
- #1122818 filed against
golang-github-google-go-pkcs11.
- #1122819 filed against
golang-github-akavel-rsrc.
- #1122820 filed against
golang-github-go-macaron-toolbox.
- #1122821 filed against
golang-goptlib.
- #1122822 filed against
golang-github-dreamitgetit-statuscake.
- #1122824 filed against
golang-github-google-go-attestation.
- #1122999 filed against
python-pyshortcuts.
- #1123002 filed against
graudit.
- #1123003 filed against
golang-github-roaringbitmap-roaring.
- #1123004 filed against
golang-github-linkedin-goavro.
- #1123005 filed against
golang-github-cznic-ql.
- #1123006 filed against
golang-github-muesli-termenv.
- #1123007 filed against
golang-github-jung-kurt-gofpdf.
- #1123008 filed against
tdiary.
- #1123603 filed against
authselect.
- #1123663 filed against
node-convert-source-map.
- #1123664 filed against
zope.deferredimport.
- #1124271 filed against
golang-k8s-apimachinery.
-
Arnout Engelen:
kirigami (qml)
libplasma (qml)
powerdevil (qml)
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
- #1121794 filed against
golang-github-spf13-afero. - #1121795 filed against
golang-github-appleboy-easyssh-proxy. - #1121796 filed against
circlator. - #1121797 filed against
golang-github-jhoonb-archivex. - #1121798 filed against
golang-github-jonas-p-go-shp. - #1121800 filed against
golang-github-foxboron-go-uefi. - #1121801 filed against
in-toto-golang. - #1121802 filed against
lua-penlight. - #1121803 filed against
rust-fslock. - #1121804 filed against
fff. - #1121858 filed against
golang-github-notaryproject-notation-go. - #1121859 filed against
golang-github-google-go-tpm. - #1121860 filed against
golang-github-foxboron-go-tpm-keyfiles. - #1121862 filed against
goobook. - #1121865 filed against
fortran-regex. - #1122014 filed against
golang-github-yudai-gojsondiff. - #1122019 filed against
golang-github-tjfoc-gmsm. - #1122020 filed against
golang-github-otiai10-copy. - #1122021 filed against
golang-k8s-sigs-kustomize-cmd-config. - #1122022 filed against
golang-github-artyom-mtab. - #1122218 filed against
golang-k8s-sigs-release-utils. - #1122219 filed against
golang-github-theupdateframework-go-tuf. - #1122221 filed against
php-dompdf. - #1122222 filed against
golang-github-viant-toolbox. - #1122223 filed against
microbiomeutil. - #1122224 filed against
python-openstep-plist. - #1122225 filed against
rust-xdg. - #1122226 filed against
bibtexparser. - #1122227 filed against
plyara. - #1122228 filed against
golang-github-valyala-fasthttp. - #1122229 filed against
golang-github-issue9-identicon. - #1122230 filed against
golang-github-cue-lang-cue. - #1122231 filed against
sigstore-go. - #1122232 filed against
golang-github-apptainer-sif. - #1122376 filed against
golang-github-gin-gonic-gin. - #1122383 filed against
rust-rustpython-parser. - #1122384 filed against
golang-github-reviewdog-errorformat. - #1122385 filed against
geoalchemy2. - #1122386 filed against
golang-github-shenwei356-breader. - #1122388 filed against
golang-github-ulikunitz-xz. - #1122389 filed against
golang-mvdan-editorconfig. - #1122390 filed against
golang-github-digitorus-timestamp. - #1122392 filed against
golang-forgejo-forgejo-levelqueue. - #1122816 filed against
golang-github-kr-binarydist. - #1122817 filed against
golang-github-kshedden-dstream. - #1122818 filed against
golang-github-google-go-pkcs11. - #1122819 filed against
golang-github-akavel-rsrc. - #1122820 filed against
golang-github-go-macaron-toolbox. - #1122821 filed against
golang-goptlib. - #1122822 filed against
golang-github-dreamitgetit-statuscake. - #1122824 filed against
golang-github-google-go-attestation. - #1122999 filed against
python-pyshortcuts. - #1123002 filed against
graudit. - #1123003 filed against
golang-github-roaringbitmap-roaring. - #1123004 filed against
golang-github-linkedin-goavro. - #1123005 filed against
golang-github-cznic-ql. - #1123006 filed against
golang-github-muesli-termenv. - #1123007 filed against
golang-github-jung-kurt-gofpdf. - #1123008 filed against
tdiary. - #1123603 filed against
authselect. - #1123663 filed against
node-convert-source-map. - #1123664 filed against
zope.deferredimport. - #1124271 filed against
golang-k8s-apimachinery.
kirigami(qml)libplasma(qml)powerdevil(qml)
#reproducible-builds on irc.oftc.net.
rb-general@lists.reproducible-builds.org
Screenshot of Wikipedia edit metadata on Special:RecentChanges with RCFilters enabled. Highlighted edits with a colored circle to the left side of other metadata are flagged by ORES. Different circle and highlight colors (white, yellow, orange, and red in the figure) correspond to different levels of confidence that the edit is damaging. RCFilters does not specifically flag edits by new accounts or unregistered editors, but does support filtering changes by editor types.
Charts showing the probability that an edit will be reverted as a function of ORES scores in the neighborhood of the discontinuous threshold that triggers the RCfilters flag. The jump in the increase in reversion chances is larger for registered editors compared to unregistered editors at both thresholds.
Here are my favourite books and movies that I read and watched throughout 2025.








Toolboxes and Hammers Be YouEveryone has a story. We all started from somewhere, and we re all going somewhere.Ten years ago this summer, I first heard of Ubuntu. It took me time to learn how to properly pronounce the word, although I m glad I learned that early on. I was less fortunate when it came to the pronunciation of the acronym for the Ubuntu Code of Conduct. I had spent time and time again breaking my computer, and I d wanted to start fresh.I ve actually talked about this in an interview before, which you can find here (skip to 5:02 6:12 for my short explanation, I m in orange):
I'm going to
My trek to Toulouse was seamless. I hopped on a bus from my home in Bristol to the airport, then took a short flight. I luxuriated in seat 1A, making me the first to disembark a mere ten minutes later, I was already on the bus heading to my hotel.
Once settled, I wasted no time exploring the charms of Toulouse. Just a short stroll from my hotel, I found myself beside a tranquil canal, its waters mirroring the golden hues of the trees lining its banks. Autumn in Toulouse painted the city in warm oranges and reds, creating a picturesque backdrop that was a joy to wander through. Every corner of the street revealed more of the city's rich cultural tapestry and striking architecture. Known affectionately as 'La Ville Rose' (The Pink City) for its unique terracotta brickwork, Toulouse captivated me with its blend of historical allure and vibrant modern life.
Prior to the main event, the MiniDebCamp provided two days of hacking at
The hospitality was exceptional. Our lunches boasted a delicious array of quiches, an enticing charcuterie board, and a superb selection of cheeses, all perfectly complemented by exquisite petite fours. Each item was not only a feast for the eyes but also a delight for the palate.
Leftovers from these gourmet feasts fuelled our impromptu cheese and wine party on Thursday evening a highlight where informal chats blended seamlessly with serious software discussions.
The enchantment of Toulouse doesn't dim with the setting sun; instead, it transforms. My evening strolls took me along the banks of the Garonne, under a sky just turning from twilight to velvet blue. The river, a dark mirror, perfectly reflected the illuminated grandeur of the city's architecture. Notably, the dome of the
The MiniDebConf itself, part of the larger Capitole du Libre event, was a fantastic immersion into the world of free software. Unlike the ticket-free FOSDEM, this conference required QR codes for entry and even had bag searches, adding an unusual layer of security for a software conference.
Highlights included the crepe-making by the organisers, reminiscent of street food scenes from larger festivals. The availability of crepes for MiniDebConf attendees and the presence of food trucks added a festive air, albeit with the inevitable long queues familiar to any festival-goer.
The city's
Toulouse's markets were a delightful discovery. From a spontaneous visit to a market near my hotel upon arrival, to cycling past bustling marketplaces, each day presented new local flavours and crafts to explore.
The
Our conference wrapped up with a spontaneous gathering at La Brasserie Les Arcades in Place du Capitole. Finding a caf that could accommodate 30 of us on a Sunday evening without a booking felt like striking gold. What began with coffee and ice cream smoothly transitioned into dinner, where I enjoyed a delicious braised duck leg with green peppercorn sauce. This meal rounded off the trip with lively conversations and shared experiences.
Returning from Toulouse, I found myself once again in seat 1A, offering the advantage of being the first off the plane, both on departure and arrival. My flight touched down in Bristol ahead of schedule, and within ten minutes, I was on the A1 bus, making my way back into the heart of Bristol.












A short status update of what happened on my side last month. A broken
gcovr in Debian triggered a bit of busy work but 0.39.0 came out
nicely nevertheless. We also reduced build time quiet a bit in phosh
and phoc.














Witch Wells AZ Sunset


I have been working on the rather massive Apparmor bug
The Rcpp Core Team is once again thrilled to announce a new release
1.0.12 of the