!aRKdLCkUeIFjRPZuJT:nixos.org

NixOS JVM

142 Members
32 Servers

Load older messages


SenderMessageTime
5 May 2026
@infinidoge:inx.moeInfinidoge šŸ³ļøā€āš§ļø
In reply to @pyrox:pyrox.dev

has there been any work on the libre/binary-free bootstrap recently? Came across that discussion and at least to me doesn't seem like there's any movement on it

And if there isn't, would there be interest in me picking up that work? I've been looking at reducing nixpkgs' reliance on binary bootstraps in various places and openjdk/JDKs in general seem like a good place to do that for

Not really, at least to my knowledge.

I was the one who personally removed the previous bootstrap chain, because it was broken, unmaintained, and not even used.

If you want to look into it, be my guest, but you'll need to commit to maintaining it. I don't want to need to come back down the line and delete another bootstrap chain

19:06:54
@pyrox:pyrox.devdish [Fox/It/She]
In reply to @infinidoge:inx.moe

Not really, at least to my knowledge.

I was the one who personally removed the previous bootstrap chain, because it was broken, unmaintained, and not even used.

If you want to look into it, be my guest, but you'll need to commit to maintaining it. I don't want to need to come back down the line and delete another bootstrap chain

gotcha, thanks!
19:11:32
@msgilligan:matrix.orgmsgilliganI would personally love to see this, but I think it is not feasible at present. The limited bandwidth of current NixOS JVM contributors would be better spent elsewhere IMO. If you are interested in using or contributing to a libre/binary-free JDK bootstrap, GUIX is the place. GUIX (last I checked) is lagging behind on Maven support (for example) so they could use help, too.19:15:38
@jerith:matrix.orgMatt McHenry Hey all, I'm wondering if we could get some eyes on the PR to add Java 26 (Temurin) and its prerequisite? Thanks! 19:30:36
@britter:yatrix.orgBenedikt Ritter (britter)sorry if this is a dump question, but what is a libre/binary-free JDK bootstrap? Are we using JDK binary builds and patchElfing them? I never looked into those details šŸ˜‡ I'm surprised to learn about this. The JDK is completely open source, isn't it? What's the issue with building it from source in NixOS?19:54:04
@opna2608:matrix.orgPunacompletely binary-free?20:07:32
@opna2608:matrix.orgPunahttps://bootstrappable.org/projects/java.html20:07:43
@msgilligan:matrix.orgmsgilliganNo Gradle or Kotlin if you want binary-free20:08:30
@msgilligan:matrix.orgmsgilligan I’m searching for previous discussions that I remember 20:08:52
6 May 2026
@pyrox:pyrox.devdish [Fox/It/She]
In reply to @msgilligan:matrix.org

I would personally love to see this, but I think it is not feasible at present. The limited bandwidth of current NixOS JVM contributors would be better spent elsewhere IMO.

If you are interested in using or contributing to a libre/binary-free JDK bootstrap, GUIX is the place. GUIX (last I checked) is lagging behind on Maven support (for example) so they could use help, too.

i would contribute to guix except i do not like scheme-like languages
00:05:37
@msgilligan:matrix.orgmsgilligan Here's my comment that started the previous discussion. Benedikt Ritter (britter) can you find it in the scrollback? 00:46:41
@msgilligan:matrix.orgmsgilligan

If someone wants to work to make the JDK toolchain binary free, the place to start might be with Maven. It is currently:

    sourceProvenance = with lib.sourceTypes; [
      binaryBytecode
      binaryNativeCode
    ];
00:50:24
@msgilligan:matrix.orgmsgilligan *

If someone wants to work towards making the JDK toolchain binary free, a place to contribute might be with Maven. It is currently:

    sourceProvenance = with lib.sourceTypes; [
      binaryBytecode
      binaryNativeCode
    ];
00:51:10
@msgilligan:matrix.orgmsgilligan I have no idea how hard it is or if anyone has tried before. I just know that GUIX has done and Debian seems to do reasonable job of keeping Maven up-to-date (as opposed to their FrankenGradle 4.4.1) 00:53:14
@msgilligan:matrix.orgmsgilligan * I have no idea how hard it is or if anyone has tried before. I just know that GUIX has done it and Debian seems to do reasonable job of keeping Maven up-to-date (as opposed to their FrankenGradle 4.4.1) 00:53:27
@msgilligan:matrix.orgmsgilligan * I have no idea how hard it is or if anyone has tried before. I just know that GUIX has done it and Debian seems to do reasonable job of keeping Maven up-to-date (as opposed to their FrankenGradle 4.4.1) 00:54:25
@msgilligan:matrix.orgmsgilligan * I have no idea how hard it is or if anyone has tried before. I just know that GUIX has done it and Debian seems to do a reasonable job of keeping Maven up-to-date (as opposed to their FrankenGradle 4.4.1) 00:54:44
@britter:yatrix.orgBenedikt Ritter (britter)Thanks for providing those links. I've been part of the other side of the franken gradle discussion. The Gradle team just doesn't see any value in providing a bootstrap that is binary free. Especially since they've navigated themselves so deeply into a pkace where it's impossible recreate that chain: another layer of this issue is the gradle wrapper which is a binary checked into the repository that downloads a gradle version of a particular version. During development (and sometimes even when releasing milestones or RCs) they used to use snapshot distribution in order to dog food new features in their own build. Unfortunately distribution snapshots are evicted from the store after a period of time. So nowadays when you check out an old commit you can't even build it without modification šŸ¤·ā€ā™‚ļø05:57:24
@britter:yatrix.orgBenedikt Ritter (britter)I don't think the situation with maven is much better since it also builds with itself.05:57:50
@msgilligan:matrix.orgmsgilliganThe Debian developer that works on Gradle works very hard and never gives up. But he's still stuck at 4.4.1. I periodically read his reports. I think Maven can be built from earlier versions which can be built from source.06:01:25
@britter:yatrix.orgBenedikt Ritter (britter) I wonder if coming from old versions is the right approach here. maybe it's better to start from a recent version and try to generate a shell script that calls the java compiler on the various Gradle subprojects in the right order so create something that behaves like Gradle. Lets call this Bootstrap Gradle. Then you use that so run the real gradle distribution build.
Of course you need to somehow put Scala and Kotlin in the mix. But I think you could leave the former out in order to build the Bootstrap Gradle.
06:07:59
@msgilligan:matrix.orgmsgilligan My understanding is that Kotlin has very similar issues to Gradle. Although I generally prefer Gradle to Maven, I have decided that I want to move important/foundational/library projects (for me bitcoinj and secp256k1-jdk) from Gradle to Maven. But when you have Gradle working it's easy to put of the conversion and work on new features or cleaning up the actual Java code. But I expect both projects to move by the end of the year. 06:14:15
@msgilligan:matrix.orgmsgilliganThe other bootstrappability thing I need to learn how to do (with Nix) is pull in Java libraries built from source into the dependency chain. secp256k1-jdk has only 3 build-time/run-time dependencies: JSpecify and either Bouncy Castle or libsecp256k1 (C library) depending upon which run-time implementation you choose. (lib) secp256k1 is already in Nix and built from source. JSpecify is there, but with binary provenance. Bouncy Castle is not in Nixpkgs at all. So it seems doable. It's not on the top of my list, but maybe it will happen by the end of the year or early next year. 06:28:03
@msgilligan:matrix.orgmsgilliganHas anyone built or seen a Nixpkgs Java package that pulls one/some/all JAR dependencies from Nixpkgs rather than Maven Central?06:29:55
@msgilligan:matrix.orgmsgilligan(And both JSpecify and Bouncy Castle use Gradle for their builds so there would still be some binary turtles in there.)06:38:22
@britter:yatrix.orgBenedikt Ritter (britter)if the ability to bootstrap is a big concern to you then maven if probably an easier toolchain than Gradle. Although it's still not trivial.06:53:35
@britter:yatrix.orgBenedikt Ritter (britter)Regarding building Java from source: There are two things I've been thinking of. 1) a buildJava hook that can build a java application from source without going through another build tool. That would be great by itself to write small utilities in Java. 2) Far more complicated: providing a way to inject jars build by Nix into the dependency FODs of Maven or Gradle. I don't think either supports this. But it's probably what you need.06:55:24
@britter:yatrix.orgBenedikt Ritter (britter)Based on that we could have a java packages set like we have for python where you can essentially build the whole (java) dependency chain from source.06:56:09
@britter:yatrix.orgBenedikt Ritter (britter)Nice weekend project, I'd say.06:56:21
@msgilligan:matrix.orgmsgilliganIt looks like there is a mechanism to do something close to this with Ant: https://nixos.org/manual/nixpkgs/stable/#sec-language-java07:09:39

Show newer messages


Back to Room ListRoom Version: 6