| 18 Apr 2026 |
Benedikt Ritter (britter) | I wrote about Gradle build support a while ago, maybe this helps? https://britter.dev/blog/2025/01/02/gradle-nix/ | 15:41:39 |
Benedikt Ritter (britter) | Not exactly sure why. Maybe for AWT / Swing?
You can try building with jdk21_headless if you dont need desktop code. | 15:42:52 |
Alice | well, it's not untrue that headless variant is for headless operation, but it is still kinda weird that non-headless version depends on non-jvm desktop code? | 15:47:35 |
Ami | pretty sure it could've been an optional dependency, but nix doesn't really have such a concept | 17:14:12 |
msgilligan | I think overrides are the Nix way of doing “optional” dependencies | 17:15:30 |
msgilligan | (i.e. build-time rather than run-time) | 17:22:04 |
Alice | well, there are 3 -times, no? build-time install-time run-time? or for nix installation(/evaluation?) just runtime? | 17:39:12 |
samasaur | yea if you want no gtk you can do openjdk.override { enableGtk = false }, or use headless which also turns off jdk | 17:43:45 |
samasaur | there's not really the traditional install-time | 17:44:46 |
Alice | well, making a derivation(?) doesn't mentally fit into either runtime nor build time to us? | 17:46:00 |
samasaur | building a derivation ~= traditional build time and install time | 17:47:45 |
samasaur | more or less | 17:47:50 |
Alice | hmm, where would that go? | 18:01:41 |
samasaur | are you referencing openjdk directly or is it a dependency of something? | 18:04:19 |
Alice | it's a gradle build | 18:04:29 |
samasaur | so the latter? | 18:05:16 |
samasaur | like in your nix config you're not ever referencing openjdk | 18:05:28 |
Alice | yes (well, in the project flake) | 18:05:55 |
samasaur | ah yeah not necessarily a config, my bad | 18:06:07 |
samasaur | in that case you'll want to override the derivation that depends on openjdk to use the overridden one | 18:06:35 |
samasaur | e.g.
hello.override {
openjdk = openjdk.override {
enableGtk = false;
};
}
| 18:07:01 |
samasaur | the alternative to doing this on a case-by-case basis is to add an override to your instantiation of nixpkgs so that gtk is off for openjdk everywhere openjdk is used | 18:07:49 |
samasaur | which has wider-ranging implications obviously but i think shoujld be fine in this case | 18:08:08 |
Alice | we just, don't want nix to pull in dependencies which are not actually required | 18:08:23 |
samasaur | is this flake public somewhere | 18:08:49 |
Alice | (like, this flake we are making does not require gtk/graphics, but if some other thing on the system does, we don't want nix to pull openjdk and openjdk with disabled gtk | 18:09:48 |
Alice | well, the flake itself is pretty small, so, here, | 18:11:29 |
samasaur | well that's hard to do because the flake is pure and doesn't depend on the system | 18:11:28 |
Alice | Download flake.nix | 18:11:29 |
samasaur | there's no way for the flake to know whether the system already needs openjdk with GTK | 18:11:54 |