On Thursday, 11 June 2026 23:18:11 British Summer Time Juan M. Méndez Rey wrote: > Hi David, > > Thanks for coming into discussion specially if it helps on > simplifying the process! I had a look to the VirtusLab approach. > > So, please,let me see if what I gathered clarifies, then a question, > because I think that option is not fully possible for > the Debian approach. > > 1. The 3.9 library: noted, thanks. I'd been assuming "Scala 3 = the 2.13 > stdlib", which holds to 3.8 but not 3.9's own _3 library. > It only affects the future Scala 3 layer; but for 2.12/2.13 and its > ecosystem are unchanged. I think that 3.8 also uses the scala_3 library. 3.8 was a kind of RC for 3.9 so they wanted to make the breaking changes first before jumping to what it an LTS release. > > 2. On "sbt + scala-cli bring the libraries": > > As far as I can see that works because they fetch deps from Maven Central > via Coursier > (https://scala-cli.virtuslab.org/docs/guides/introduction/dependencies/). > > The Debian archive build targets must not attempt network access, so I > believe this path is not possible. > > If we were to package sbt/scala-cli that still needs every library packaged > from source under /usr/share/maven-repo; that download model > is exactly what would prevent VirtusLab's .debs out of the archive, > hence why I suggested the approach proposed in this thread. > > Question: can you confirm the VirtusLab .debs work that way. Like, they rely > on Coursier pulling dependencies at first use, rather than shipping them > from the archive? SBT and Scala-CLI will always use the cached versions of the libraries it finds from Maven (or which ever repository you specify), and if you update the dependencies on your build file or script it will always go and fetch the new version from the repository. The cache lives in the user's directory, and I don't think there is a system wide cache that debian packages could populate.
This also applies to the compiler and all its support libraries. So yes, the virtuslabs .debs do not try to package libraries, just the sbt and scalacli. Because that is the way the scala build system works. Packaging the compiler and the libraries is only of use if you want to run them manually, and no-one does that. > > Just want to be sure I'm describing them accurately. > > Best, > Juan

