09 Jan 2026
Planet Debian
Russell Coker: LEAF ZE1 After 6 Months
About 6 months ago I got a Nissan LEAF ZE1 (2019 model) [1]. Generally it's going well and I'm happy with most things about it.
One issue is that as there isn't a lot of weight in the front with the batteries in the centre of the car the front wheels slip easily when accelerating. It's a minor thing but a good reason for wanting AWD in an electric car.
When I got the car I got two charging devices, the one to charge from a regular 240V 10A power point (often referred to as a "granny charger") and a cable with a special EV charging connector on each end. The cable with an EV connector on each end is designed for charging that's faster than the "granny charger" but not as fast as the rapid chargers which have the cable connected to the supply so the cable temperature can be monitored and/or controlled. That cable can be used if you get a fast charger setup at your home (which I never plan to do) and apparently at some small hotels and other places with home-style EV charging. I'm considering just selling that cable on ebay as I don't think I have any need to personally own a cable other than the "granny charger".
The key fob for the LEAF has a battery installed, it's either CR2032 or CR2025 - mine has CR2025. Some reports on the Internet suggest that you can stuff a CR2032 battery in anyway but that didn't work for me as the thickness of the battery stopped some of the contacts from making a good connection. I think I could have got it going by putting some metal in between but the batteries aren't expensive enough to make it worth the effort and risk. It would be nice if I could use batteries from my stockpile of CR2032 batteries that came from old PCs but I can afford to spend a few dollars on it.
My driveway is short and if I left the charger out it would be visible from the street and at risk of being stolen. I'm thinking of chaining the charger to a tree and having some sort of waterproof enclosure for it so I don't have to go to the effort of taking it out of the boot every time I use it. Then I could also configure the car to only charge during the peak sunlight hours when the solar power my home feeds into the grid has a negative price (we have so much solar power that it's causing grid problems).
The cruise control is a pain to use, so much so that I haven't yet got it to work usefully ever. The features look good in the documentation but in practice it's not as good as the Kia one I've used previously where I could just press one button to turn it on, another button to set the current speed as the cruise control speed, and then just have it work.
The electronic compass built in to the dash turned out to be surprisingly useful. I regret not gluing a compass to the dash of previous cars. One example is when I start google navigation for a journey and it says "go South on street X" and I need to know which direction is South so I don't start in the wrong direction. Another example is when I know that I'm North of a major road that I need to take to get to my destination so I just need to go roughly South and that is enough to get me to a road I recognise.
In the past when there is a bird in the way I don't do anything different, I keep driving at the same speed and rely on the bird to see me and move out of the way. Birds have faster reactions than humans and have evolved to move at the speeds cars travel on all roads other than freeways, also birds that are on roads are usually ones that have an eye in each side of their head so they can't not see my car approaching. For decades this has worked, but recently a bird just stood on the road and got squashed. So I guess that I should honk when there's birds on the road.
Generally everything about the car is fine and I'm happy to keep driving it.
09 Jan 2026 3:32am GMT
08 Jan 2026
Planet Debian
Dima Kogan: Meshroom packaged for Debian
Like the title says, I just packaged Meshroom (and all the adjacent dependencies) for Debian! This is a fancy photogrammetry toolkit that uses modern software development methods. "Modern" meaning that it has a multitude of dependencies that come from lots of disparate places, which make it impossible for a mere mortal to build the thing. The Linux "installer" is 13GB and probably is some sort of container, or something.
But now, if you have a Debian/sid box with the non-free repos enabled, you can
sudo apt install meshroom
And then you can generate and 3D-print a life-size, geometrically-accurate statue of your cat. The colmap package does a similar thing, and has been in Debian for a while. I think it can't do as many things, but it's good to have both tools easily available.
These packages are all in contrib, because they depend on a number of non-free things, most notably CUDA.
This is currently in Debian/sid, but should be picked up by the downstream distros as they're released. The next noteworthy one is Ubuntu 26.04. Testing and feedback welcome.
08 Jan 2026 11:34pm GMT
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.
- #1121794 filed against
-
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-buildsonirc.oftc.net. -
Mastodon: @reproducible_builds@fosstodon.org
-
Mailing list:
rb-general@lists.reproducible-builds.org
08 Jan 2026 10:51pm GMT










