| 9 May 2026 |
Infinidoge 🏳️⚧️ | Would have to test though | 18:15:38 |
emily | IDE support? | 18:17:08 |
Infinidoge 🏳️⚧️ | I believe so, not entirely sure how to interpret that as a question | 18:18:06 |
emily | as in, perhaps src.zip is used for looking up things in the stdlib from IDEs | 18:19:13 |
emily | (that's what the Rust source code gets used for at least) | 18:19:21 |
msgilligan | According to Claude:
The location within the JDK image is a committed upstream interface. OpenJDK explicitly defines src.zip (alongside things like jrt-fs.jar) as a file at a path intended for external use, contrasted with the contents of lib/ which are private implementation. So when you build OpenJDK, the build system produces src.zip as part of the standard image layout.
| 18:23:27 |
msgilligan | and:
It exists so that IDEs and debuggers can show you the actual source of, say, ArrayList.add() when you step into it or hit "Go to definition," instead of just decompiled bytecode or stub signatures. IDEs like Eclipse and IntelliJ pick it up from $JAVA_HOME and attach it as the source for the runtime classes, which is what makes "view source" work for JDK classes out of the box.
| 18:24:00 |
msgilligan | and:
There's nothing Nix-specific going on — removing it would actually be the unusual choice, and it would break IDE source navigation for anyone pointing their IDE at the Nix-built JDK. Some Linux distros do split it out into a separate -source package (as the Bazel issue above shows for Ubuntu), but Nixpkgs keeps the upstream layout intact.
| 18:24:21 |
msgilligan |
If you're trying to slim down a closure and don't need IDE source attachment, you can drop it in a postInstall hook on an override, but for a general-purpose JDK package keeping it is the right default.
| 18:24:42 |
Infinidoge 🏳️⚧️ | Suffice it to say no need to drop it l | 18:24:58 |
Infinidoge 🏳️⚧️ | * Suffice it to say no need to drop it | 18:25:08 |
Infinidoge 🏳️⚧️ | Maybe add a withSrc override or something in case someone needs it, but default to having it | 18:25:27 |
dish [Fox/It/She] | okay yeah, let's just not bother with dropping it since adding the option would trigger rebuilds fafaik | 19:32:14 |
dish [Fox/It/She] | thanks for the clarification on its use @msgilligan | 19:32:30 |
dish [Fox/It/She] | In reply to @msgilligan:matrix.org
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
];
working on this now, we have to bootstrap from ant -> maven 3.3.9(last version that can be built with ant) -> hopefully just the latest maven version | 19:43:53 |
Infinidoge 🏳️⚧️ | In reply to @pyrox:pyrox.dev okay yeah, let's just not bother with dropping it since adding the option would trigger rebuilds fafaik I don't think adding the option with on by default should change it? | 20:00:33 |
Infinidoge 🏳️⚧️ | Can test when I'm not in the middle of moving though | 20:00:46 |
dish [Fox/It/She] | In reply to @pyrox:pyrox.dev working on this now, we have to bootstrap from ant -> maven 3.3.9(last version that can be built with ant) -> hopefully just the latest maven version okay maven central seems to hate me so just never mind 🙃 | 20:30:46 |
msgilligan | What happened? | 20:52:22 |
dish [Fox/It/She] | when im trying to build a dependencies FOD for 3.3.9 (just as a starting point) it keeps failing to pull from central | 21:08:31 |
dish [Fox/It/She] | I tried a few different things but can't figure out why it fails since I'm not a java dev normally lol | 21:08:52 |
msgilligan | What kind of errors are you getting? | 21:11:04 |
| 11 May 2026 |
Matt McHenry |
https://github.com/NixOS/nixpkgs/pull/484741 rebuild-linux:1001-2500 🫠
yeah I was kinda floored by that too. :) But since temurin bootstraps OpenJDK, basically anything that uses Java is affected.
I took a look at a couple (gnome-shell and python-vlc) and both have plausible-seeming explanations (gnome-shell depends on libphonenumber, which apparently uses Java for some of its test cases; python-vlc depends on libbluray, and Java is part of the BluRay platform as I recall from some excited JavaOne announcement a couple decades ago :) ).
I could not find a plausible explanation for a third package I looked at, pylatex. But, I don't think there's a way around a mass-rebuild here.
| 20:55:51 |
| 13 May 2026 |
msgilligan | It looks like the jextract build has been broken on Darwin for almost a year. Here's a fix:
- https://github.com/NixOS/nixpkgs/pull/519643
| 15:12:01 |
| Jon Hermansen joined the room. | 16:44:00 |
| 14 May 2026 |
msgilligan | And once the above fix is merged, https://github.com/NixOS/nixpkgs/pull/519958 can be merged to remove jextract-21 which is obsolete and unmaintained. (cc: emily ) | 00:23:40 |
| Pol changed their display name from Pol to Pol (out, touching grass). | 07:38:38 |
| Pol changed their display name from Pol (out, touching grass) to Pol. | 16:32:49 |
| 21 May 2026 |
msgilligan | In this comment on a PR to update maven, Benedikt Ritter (britter) says:
a ton of seemingly unrelated packages are being rebuilt, because igraph (a C library for analysis of networks) depends on Apache FOP (an XML formatter) which is built with maven. igraph only requires FOP for building it's documentation but this dependency still has rippling effects, e.g. the python packages now have a transitive dependency to maven because of that.
I've been doing some investigation and think I have a fix.
| 18:22:58 |
msgilligan | It turns out that igraph is simply copying its DocBook source to it's doc output and is not running either the html or pdf CMake targets that render the documentation. So I want to make a PR to do the following:
- Actually enable the rendering of the HTML documentation.
- Remove the dependency on FOP.
This should stop a lot of rebuilds (especially in Python packages) based on fop <- maven <- jdk.
| 18:26:19 |