Welcome! Please see the About page for a little more info on how this works.

0 votes
ago in Clojure by

Debian now requires packages to be reproducible: https://lists.debian.org/debian-devel-announce/2026/05/msg00001.html and I thought I recalled that compilation, at least, couldn't produce reproducible output (e.g. with respect to variable naming in the class files), and some testing suggests that might still be the case (tested with 1.12.0 via https://diffoscope.org/).

I assume that for Clojure related packages to remain in the next Debian release, we'll need to address the requirement one way or another, if we can, so I wanted to ask about the situation upstream first.

Offhand, I think the main concern is with AOT compilation, which Debian only uses for "leaf" applications, packaged as an uberjar (e.g. leiningen, puppetserver, puppetdb, etc.), and Debian already has infrastructure to make sure that jars are otherwise reproducible (with respect to timestamps, etc.), so the issue there is mostly "just" regarding the file content.

Thanks

2 Answers

0 votes
ago by

AOT and uberjars are orthogonal. You can still have a "leaf" app packaged neatly in an uberjar and without any AOT - it will be reproducible because it's just an archive, completely independent of how compile works.

ago by
Sure (assuming you make the jar reproducible via strip-nondeterminism or similar).  As mentioned, I think the main concern is with AOT, which Debian does right now for clojure, leiningen, puppetdb, etc.  I believe that was done because startup was substantially slower otherwise.  And at the moment I'm just trying to understand what the current situation/options are before we start trying to decide what to do.
ago by
Similar questions are asked periodically by different people, roughly once a year. You're correct that compilation results are not repeatable, and it doesn't seem like something that will be changed any time soon, if ever.
0 votes
ago by

Reproducible compilation is not currently a priority for us. But happy to leave this open to hear more reasons why that is important and collect votes.

ago by
OK, appreciate the answer.  Thanks.
...