Repository: NixOS/nixpkgs
Pull request #397129: openjdk24: init at 24+36
Author: login: dtomvan
Labels: name: 10.rebuild-linux: 1-10
description: This PR causes between 1 and 10 packages to rebuild on Linux.
name: 10.rebuild-darwin: 1-10
description: This PR causes between 1 and 10 packages to rebuild on Darwin.
name: 6.topic: java
description: Including JDK, tooling, other languages, other VMs
name: 12.approvals: 1
description: This PR was reviewed and approved by one person.
name: 12.approved-by: package-maintainer
description: This PR was reviewed and approved by a maintainer listed in any of the changed packages.
Created: 2025-04-08T15:12:16Z | Merged: 2025-05-06T10:41:32Z

Adds openjdk24, openjfx24, zulu24.

Source: https://github.com/openjdk/jdk24u/tree/jdk-24%2B36

Homepage: https://jdk.java.net/24/ and https://wiki.openjdk.org/display/JDKUpdates/JDK+24u

Changelog: https://jdk.java.net/24/release-notes

I tried my best to change the patch files. The build at least passes this way,
and I think they are correct, but they are always finicky (at least to me).

Also `$out/lib/openjdk/man` isn't present, so I just disabled the link to that to make the build pass. That's obviously a big hack.

Still kind of awesome how simple it is to "just package the latest JDK". :tada:
<!--
^ Please summarise the changes you have done and explain why they are necessary here ^

For package updates please link to a changelog or describe changes, this helps your fellow maintainers discover breaking updates.
For new packages please briefly describe the package or provide a link to its homepage.
-->

Fixes #402478

## Things done

<!-- Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers. -->

- Built on platform(s)
  - [x] x86_64-linux
  - [ ] aarch64-linux
  - [ ] x86_64-darwin
  - [ ] aarch64-darwin
- For non-Linux: Is sandboxing enabled in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))
  - [ ] `sandbox = relaxed`
  - [ ] `sandbox = true`
- [ ] Tested, as applicable:
  - [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
  - and/or [package tests](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests)
  - or, for functions and "core" functionality, tests in [lib/tests](https://github.com/NixOS/nixpkgs/blob/master/lib/tests) or [pkgs/test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/test)
  - made sure NixOS tests are [linked](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#linking-nixos-module-tests-to-a-package) to the relevant packages
- [ ] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)
- [x] Tested basic functionality of all binary files (usually in `./result/bin/`)
- [25.05 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2505.section.md) (or backporting [24.11](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2411.section.md) and [25.05](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2505.section.md) Release notes)
  - [ ] (Package updates) Added a release notes entry if the change is major or breaking
  - [ ] (Module updates) Added a release notes entry if the change is significant
  - [ ] (Module addition) Added a release notes entry if adding a new NixOS module
- [x] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).

<!--
To help with the large amounts of pull requests, we would appreciate your
reviews of other pull requests, especially simple package updates. Just leave a
comment describing what you have tested in the relevant package/service.
Reviewing helps to reduce the average time-to-merge for everyone.
Thanks a lot if you do!

List of open PRs: https://github.com/NixOS/nixpkgs/pulls
Reviewing guidelines: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#reviewing-contributions
-->

---

Add a :+1: [reaction] to [pull requests you find important].

[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[pull requests you find important]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+sort%3Areactions-%2B1-desc


Linked issue #402478: Update Request: openjdk 23.0.2+7 → 24.0.1
### Nixpkgs version

- Unstable (25.05)

### Package name

openjdk

### Upstream version

24.0.1

### Nixpkgs version

23.0.2+7

### Changelog

_No response_

### Additional context

_No response_

### Notify maintainers

@edwtjo @Infinidoge @chayleaf @FliegendeWurst @Infinidoge @tomodachi94

---

**Note for maintainers:** Please tag this issue in your pull request description. (i.e. `Resolves #ISSUE`.)


### I assert that this issue is relevant for Nixpkgs

- [x] I assert that this package update does not yet exist in an [open pull request](https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+package+%28update%29%22) or in [Nixpkgs Unstable](https://search.nixos.org/packages?channel=unstable).
- [x] I assert that this is not a [duplicate of any known issue](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+label%3A%229.needs%3A+package+%28update%29%22).
- [x] I assert that I have read the [NixOS Code of Conduct](https://github.com/NixOS/.github/blob/master/CODE_OF_CONDUCT.md) and agree to abide by it.

### Is this issue important to you?

Add a :+1: [reaction] to [issues you find important].

[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc


Diff:
diff --git a/pkgs/by-name/op/openjfx/24/deps.json b/pkgs/by-name/op/openjfx/24/deps.json
new file mode 100644
index 0000000000000..55263fae58fea
--- /dev/null
+++ b/pkgs/by-name/op/openjfx/24/deps.json
@@ -0,0 +1,161 @@
+{
+ "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
+ "!version": 1,
+ "https://download.eclipse.org": {
+  "eclipse/updates/4.30/R-4.30-202312010110/plugins/org.eclipse.swt.gtk.linux.x86_64_3.124.200.v20231113-1355": {
+   "jar": "sha256-Q048o4oWnZ9Y33AxXiSxbxEeayfbWOf1HoxtoLS4SIs="
+  },
+  "eclipse/updates/4.30/R-4.30-202312010110/plugins/org.eclipse.swt.gtk.linux.aarch64_3.124.200.v20231113-1355": {
+   "jar": "sha256-j98ySq5bTxFHbDJKzWMZP+kfUqekWU1jYUJNDyNg9js="
+  }
+ },
+ "https://github.com": {
+  "unicode-org/icu/releases/download/release-74-2/icu4c-74_2-data-bin-l": {
+   "zip": "sha256-Ks2xuYIigECWPRg7LdnTISUsYT4PTbIT1LvBBBfN5Wk="
+  }
+ },
+ "https://repo.maven.apache.org/maven2": {
+  "com/ibm/icu#icu4j/61.1": {
+   "jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=",
+   "pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs="
+  },
+  "junit#junit/4.13.2": {
+   "jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
+   "pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
+  },
+  "net/java#jvnet-parent/3": {
+   "pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o="
+  },
+  "org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
+   "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
+   "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
+  },
+  "org/antlr#ST4/4.1": {
+   "jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=",
+   "pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw="
+  },
+  "org/antlr#antlr-master/3.5.2": {
+   "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
+  },
+  "org/antlr#antlr-runtime/3.5.2": {
+   "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
+   "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
+  },
+  "org/antlr#antlr4-master/4.7.2": {
+   "pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE="
+  },
+  "org/antlr#antlr4-runtime/4.7.2": {
+   "jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=",
+   "pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs="
+  },
+  "org/antlr#antlr4/4.7.2": {
+   "pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E="
+  },
+  "org/antlr#antlr4/4.7.2/complete": {
+   "jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ="
+  },
+  "org/apache#apache/13": {
+   "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
+  },
+  "org/apache/lucene#lucene-core/7.7.3": {
+   "jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=",
+   "pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo="
+  },
+  "org/apache/lucene#lucene-grouping/7.7.3": {
+   "jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=",
+   "pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU="
+  },
+  "org/apache/lucene#lucene-parent/7.7.3": {
+   "pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU="
+  },
+  "org/apache/lucene#lucene-queries/7.7.3": {
+   "jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=",
+   "pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA="
+  },
+  "org/apache/lucene#lucene-queryparser/7.7.3": {
+   "jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=",
+   "pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI="
+  },
+  "org/apache/lucene#lucene-sandbox/7.7.3": {
+   "jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=",
+   "pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI="
+  },
+  "org/apache/lucene#lucene-solr-grandparent/7.7.3": {
+   "pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4="
+  },
+  "org/apiguardian#apiguardian-api/1.1.2": {
+   "jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
+   "module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
+   "pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
+  },
+  "org/glassfish#javax.json/1.0.4": {
+   "jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=",
+   "pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ="
+  },
+  "org/glassfish#json/1.0.4": {
+   "pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY="
+  },
+  "org/hamcrest#hamcrest-core/1.3": {
+   "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
+   "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
+  },
+  "org/hamcrest#hamcrest-parent/1.3": {
+   "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
+  },
+  "org/junit#junit-bom/5.11.3": {
+   "module": "sha256-S/D1PO6nx5D9+9JNujyeBM3FGGQnnuv8V6qkc+vKA4A=",
+   "pom": "sha256-8T3y5Mrx/rzlZ2Z+fDeBAaAzHVPRMk1uLf467Psfd3Q="
+  },
+  "org/junit/jupiter#junit-jupiter-api/5.11.3": {
+   "jar": "sha256-XYFHpg9JRTlz4lDtaHAbf/BVlk/iRi/Cyx7B1tRIibo=",
+   "module": "sha256-zC4yvwDuZDSpoZ3P2fJ6z2ZaPdYy03fkdhgNies+8n0=",
+   "pom": "sha256-8Zr+CSOwGTXEDy5+ltZgN+IAi3AXkXzHBRM4N3hJYY4="
+  },
+  "org/junit/jupiter#junit-jupiter-engine/5.11.3": {
+   "jar": "sha256-5iQgyZ98DVmiFZou9j5hh36cgL1yLAPKi/O9zqBQpYk=",
+   "module": "sha256-s3w9vEFSbrpeVMz/ROxUf0hVYstDyj0J2p+n2hmjBl4=",
+   "pom": "sha256-eJ43jTfEndhlTWbjrTreQY5YhK5vSHI5Ad0758nsngM="
+  },
+  "org/junit/jupiter#junit-jupiter-params/5.11.3": {
+   "jar": "sha256-D3mOvsdExOZgX9TyBy9BqOmJ4tRp4h21qmfPeZwLUew=",
+   "module": "sha256-sLUYC9HX9NFhsKCF+7JP2hbNcKfQX2Ni4asuSS0cq+w=",
+   "pom": "sha256-zOw0JKBxSUTGd7lP1QP9DByiQ84VxAFg1gzmKKr6Nf8="
+  },
+  "org/junit/jupiter#junit-jupiter/5.11.3": {
+   "jar": "sha256-rHV47+0WI2fD3cAGM44H1FcVEP2YZmQuqT1bnk7S9mU=",
+   "module": "sha256-a5pr3dlKOPEmUmh67HyBJisZkf6+vEjKmP6rxWOhKwE=",
+   "pom": "sha256-y+nzhaChO2/tjGxu0fFtxgWpJlfzslsZaDjHPZdoSAY="
+  },
+  "org/junit/platform#junit-platform-commons/1.11.3": {
+   "jar": "sha256-viYpZLC2tI3pd8YdT5Md+M9h6A51DMPzoKOc3SHBAIw=",
+   "module": "sha256-l531zqTESC/fxZCK3ItGq2q/ADbpmk0CzBjAdDyLggc=",
+   "pom": "sha256-gW69MkSncNkV2cHUDTtGUf40j0L4m3y369De4gnFIEA="
+  },
+  "org/junit/platform#junit-platform-engine/1.11.3": {
+   "jar": "sha256-AEP3L2EWZHNdqNyaMIvxLs0iNrBTOTUcR0HttNj6sNo=",
+   "module": "sha256-K5UnTIxw3eS9vEmQnxxY61qSLlQcXdO+qpx68rv6Qaw=",
+   "pom": "sha256-/ibcXakRuUtowSsiQSV6IIE1u7m4yRzBoTQzqAp6eR4="
+  },
+  "org/junit/platform#junit-platform-launcher/1.11.3": {
+   "jar": "sha256-tHJ0WSAbABG+sHQr2AdCGh/IQmsRYZMDHth4JbwtTwQ=",
+   "module": "sha256-cqqtIKPLIsFMA9WYDgJZZ1KmWe3EaylHH35c/yJWbow=",
+   "pom": "sha256-ElFDZ7k84oUOXa4jt8PWSjZuVMuLgjf5FNiD/Z26G/o="
+  },
+  "org/junit/vintage#junit-vintage-engine/5.11.3": {
+   "jar": "sha256-1YAiQZvHaz309Hmis1mdleJEZM1o+3wiZ/GhqHEhXEc=",
+   "module": "sha256-/ruKwpJtQhhJUQhtKDFqn0AfjEoUMhW4QleXCHEGBoQ=",
+   "pom": "sha256-Js5pMwDkTPg5mu0wujw7kBA6inM8/wH5DfCMDyvs2CA="
+  },
+  "org/opentest4j#opentest4j/1.3.0": {
+   "jar": "sha256-SOLfY2yrZWPO1k3N/4q7I1VifLI27wvzdZhoLd90Lxs=",
+   "module": "sha256-SL8dbItdyU90ZSvReQD2VN63FDUCSM9ej8onuQkMjg0=",
+   "pom": "sha256-m/fP/EEPPoNywlIleN+cpW2dQ72TfjCUhwbCMqlDs1U="
+  },
+  "org/sonatype/oss#oss-parent/7": {
+   "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
+  },
+  "org/sonatype/oss#oss-parent/9": {
+   "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
+  }
+ }
+}
diff --git a/pkgs/by-name/op/openjfx/24/source.json b/pkgs/by-name/op/openjfx/24/source.json
new file mode 100644
index 0000000000000..d9f8d4ef2aaf1
--- /dev/null
+++ b/pkgs/by-name/op/openjfx/24/source.json
@@ -0,0 +1,6 @@
+{
+  "hash": "sha256-pXQCzNcucQAYv0Da1uE5xG6pGqxQXrTDzvFqrn7H92M=",
+  "owner": "openjdk",
+  "repo": "jfx24u",
+  "rev": "refs/tags/24+29"
+}
diff --git a/pkgs/by-name/op/openjfx/package.nix b/pkgs/by-name/op/openjfx/package.nix
index 08cd2edbec5ca..aef6b92888fc2 100644
--- a/pkgs/by-name/op/openjfx/package.nix
+++ b/pkgs/by-name/op/openjfx/package.nix
@@ -36,11 +36,13 @@
   jdk17_headless,
   jdk21_headless,
   jdk23_headless,
+  jdk24_headless,
   jdk-bootstrap ?
     {
       "17" = jdk17_headless;
       "21" = jdk21_headless;
       "23" = jdk23_headless;
+      "24" = jdk24_headless;
     }
     .${featureVersion},
 }:
diff --git a/pkgs/development/compilers/openjdk/24/patches/fix-java-home-jdk24.patch b/pkgs/development/compilers/openjdk/24/patches/fix-java-home-jdk24.patch
new file mode 100644
index 0000000000000..8196ffba753c8
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/24/patches/fix-java-home-jdk24.patch
@@ -0,0 +1,13 @@
+--- a/src/hotspot/os/linux/os_linux.cpp	2025-04-08 14:43:06.765198522 +0200
++++ b/src/hotspot/os/linux/os_linux.cpp	2025-04-08 14:43:27.890301990 +0200
+@@ -2758,9 +2758,7 @@
+   assert(ret, "cannot locate libjvm");
+   char *rp = nullptr;
+   if (ret && dli_fname[0] != '\0') {
+-    rp = os::realpath(dli_fname, buf, buflen);
+-  }
+-  if (rp == nullptr) {
++    snprintf(buf, buflen, "%s", dli_fname);
+     return;
+   }
+ 
diff --git a/pkgs/development/compilers/openjdk/24/patches/read-truststore-from-env-jdk24.patch b/pkgs/development/compilers/openjdk/24/patches/read-truststore-from-env-jdk24.patch
new file mode 100644
index 0000000000000..7ca74359c529a
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/24/patches/read-truststore-from-env-jdk24.patch
@@ -0,0 +1,30 @@
+--- a/src/java.base/share/classes/sun/security/ssl/TrustStoreManager.java	2017-06-26 21:48:25.000000000 -0400
++++ b/src/java.base/share/classes/sun/security/ssl/TrustStoreManager.java	2017-07-05 20:45:57.491295030 -0400
+@@ -71,6 +71,7 @@
+      *
+      * The preference of the default trusted KeyStore is:
+      *    javax.net.ssl.trustStore
++     *    system environment variable JAVAX_NET_SSL_TRUSTSTORE
+      *    jssecacerts
+      *    cacerts
+      */
+@@ -125,7 +126,8 @@
+         static TrustStoreDescriptor run() {
+             // Get the system properties for trust store.
+             String storePropName = System.getProperty(
+-                    "javax.net.ssl.trustStore", jsseDefaultStore);
++                    "javax.net.ssl.trustStore",
++                    System.getenv("JAVAX_NET_SSL_TRUSTSTORE"));
+             String storePropType = System.getProperty(
+                     "javax.net.ssl.trustStoreType",
+                     KeyStore.getDefaultType());
+@@ -137,6 +139,9 @@
+             String temporaryName = "";
+             File temporaryFile = null;
+             long temporaryTime = 0L;
++            if (storePropName == null) {
++                storePropName = jsseDefaultStore;
++            }
+             if (!"NONE".equals(storePropName)) {
+                 String[] fileNames =
+                         new String[] {storePropName, defaultStore};
diff --git a/pkgs/development/compilers/openjdk/24/source.json b/pkgs/development/compilers/openjdk/24/source.json
new file mode 100644
index 0000000000000..7bc62f8b38bfd
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/24/source.json
@@ -0,0 +1,6 @@
+{
+  "hash": "sha256-ogWq6oLyZzzvxGTqEEoPMXdtfbobUyXcC5bXXxBxfuo=",
+  "owner": "openjdk",
+  "repo": "jdk24u",
+  "rev": "refs/tags/jdk-24+36"
+}
diff --git a/pkgs/development/compilers/openjdk/generic.nix b/pkgs/development/compilers/openjdk/generic.nix
index 21395f979b6d0..2ec03b2d5df5a 100644
--- a/pkgs/development/compilers/openjdk/generic.nix
+++ b/pkgs/development/compilers/openjdk/generic.nix
@@ -13,6 +13,7 @@
   lndir,
   unzip,
   ensureNewerSourcesForZipFilesHook,
+  pandoc,
 
   cpio,
   file,
@@ -58,11 +59,13 @@
   openjfx17,
   openjfx21,
   openjfx23,
+  openjfx24,
   openjfx_jdk ?
     {
       "17" = openjfx17;
       "21" = openjfx21;
       "23" = openjfx23;
+      "24" = openjfx24;
     }
     .${featureVersion} or (throw "JavaFX is not supported on OpenJDK ${featureVersion}"),
 
@@ -76,6 +79,7 @@
   temurin-bin-17,
   temurin-bin-21,
   temurin-bin-23,
+  temurin-bin-24,
   jdk-bootstrap ?
     {
       "8" = temurin-bin-8.__spliced.buildBuild or temurin-bin-8;
@@ -83,6 +87,7 @@
       "17" = temurin-bin-17.__spliced.buildBuild or temurin-bin-17;
       "21" = temurin-bin-21.__spliced.buildBuild or temurin-bin-21;
       "23" = temurin-bin-23.__spliced.buildBuild or temurin-bin-23;
+      "24" = temurin-bin-24.__spliced.buildBuild or temurin-bin-24;
     }
     .${featureVersion},
 }:
@@ -98,6 +103,7 @@ let
   atLeast17 = lib.versionAtLeast featureVersion "17";
   atLeast21 = lib.versionAtLeast featureVersion "21";
   atLeast23 = lib.versionAtLeast featureVersion "23";
+  atLeast24 = lib.versionAtLeast featureVersion "24";
 
   tagPrefix = if atLeast11 then "jdk-" else "jdk";
   version = lib.removePrefix "refs/tags/${tagPrefix}" source.src.rev;
@@ -143,7 +149,9 @@ stdenv.mkDerivation (finalAttrs: {
   patches =
     [
       (
-        if atLeast21 then
+        if atLeast24 then
+          ./24/patches/fix-java-home-jdk24.patch
+        else if atLeast21 then
           ./21/patches/fix-java-home-jdk21.patch
         else if atLeast11 then
           ./11/patches/fix-java-home-jdk10.patch
@@ -151,7 +159,9 @@ stdenv.mkDerivation (finalAttrs: {
           ./8/patches/fix-java-home-jdk8.patch
       )
       (
-        if atLeast11 then
+        if atLeast24 then
+          ./24/patches/read-truststore-from-env-jdk24.patch
+        else if atLeast11 then
           ./11/patches/read-truststore-from-env-jdk10.patch
         else
           ./8/patches/read-truststore-from-env-jdk8.patch
@@ -254,6 +264,9 @@ stdenv.mkDerivation (finalAttrs: {
     ]
     ++ lib.optionals atLeast21 [
       ensureNewerSourcesForZipFilesHook
+    ]
+    ++ lib.optionals atLeast24 [
+      pandoc
     ];
 
   buildInputs =
@@ -475,10 +488,15 @@ stdenv.mkDerivation (finalAttrs: {
 
   doInstallCheck = atLeast23;
 
-  ${if atLeast17 then "postPatch" else null} = ''
-    chmod +x configure
-    patchShebangs --build configure
-  '';
+  ${if atLeast17 then "postPatch" else null} =
+    ''
+      chmod +x configure
+      patchShebangs --build configure
+    ''
+    + lib.optionalString atLeast24 ''
+      chmod +x make/scripts/*.{template,sh,pl}
+      patchShebangs --build make/scripts
+    '';
 
   ${if !atLeast17 then "preConfigure" else null} =
     ''
diff --git a/pkgs/development/compilers/zulu/24.nix b/pkgs/development/compilers/zulu/24.nix
new file mode 100644
index 0000000000000..28e876e4ca0be
--- /dev/null
+++ b/pkgs/development/compilers/zulu/24.nix
@@ -0,0 +1,58 @@
+{
+  callPackage,
+  enableJavaFX ? false,
+  ...
+}@args:
+
+let
+  # For 24 JDK FX is newer than regular JDK?
+  zuluVersion = if enableJavaFX then "24.28.85" else "24.28.83";
+in
+callPackage ./common.nix (
+  {
+    # Details from https://www.azul.com/downloads/?version=java-24&package=jdk
+    # Note that the latest build may differ by platform
+    dists = {
+      x86_64-linux = {
+        inherit zuluVersion;
+        jdkVersion = "24.0.0";
+        hash =
+          if enableJavaFX then
+            "sha256-y8jiE5yECh96pHYZFM0Q/JTiVcm5a0PONYJDLYydCT0="
+          else
+            "sha256-Kf6gF8A8ZFIhujEgjlENeuSPVzW6QWnVZcRst35/ZvI=";
+      };
+
+      aarch64-linux = {
+        inherit zuluVersion;
+        jdkVersion = "24.0.0";
+        hash =
+          if enableJavaFX then
+            "sha256-H6YD8uhk9rTpd+3/S1+7QVzpCi6jykWKyu7RPxMx/sI="
+          else
+            "sha256-6J7szd/ax9xCMNA9efw9Bhgv/VwQFXz5glWIoj+UYIc=";
+      };
+
+      x86_64-darwin = {
+        inherit zuluVersion;
+        jdkVersion = "24.0.0";
+        hash =
+          if enableJavaFX then
+            "sha256-lMdbPkUdXyNcye8uMxGIhZTErrTI0P0SnqMS+8+Rjqg="
+          else
+            "sha256-e7KJtJ9+mFFSdKCj68thfTXguWH5zXaSSb9phzXf/lQ=";
+      };
+
+      aarch64-darwin = {
+        inherit zuluVersion;
+        jdkVersion = "24.0.0";
+        hash =
+          if enableJavaFX then
+            "sha256-oR2x0vphBGgh3KkEkLAcmtIMNONny9/b32z9jLR98X0="
+          else
+            "sha256-7yXLOJCK0RZ8V1vsexOGxGR9NAwi/pCl95BlO8E8nGU=";
+      };
+    };
+  }
+  // builtins.removeAttrs args [ "callPackage" ]
+)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8d35d3f0b7e87..d38f873a5919d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6030,6 +6030,7 @@ with pkgs;
   openjfx17 = openjfx;
   openjfx21 = callPackage ../by-name/op/openjfx/package.nix { featureVersion = "21"; };
   openjfx23 = callPackage ../by-name/op/openjfx/package.nix { featureVersion = "23"; };
+  openjfx24 = callPackage ../by-name/op/openjfx/package.nix { featureVersion = "24"; };
 
   openjdk8-bootstrap = javaPackages.compiler.openjdk8-bootstrap;
   openjdk8 = javaPackages.compiler.openjdk8;
@@ -6061,6 +6062,11 @@ with pkgs;
   jdk23 = openjdk23;
   jdk23_headless = openjdk23_headless;
 
+  openjdk24 = javaPackages.compiler.openjdk24;
+  openjdk24_headless = javaPackages.compiler.openjdk24.headless;
+  jdk24 = openjdk24;
+  jdk24_headless = openjdk24_headless;
+
   # default JDK
   jdk = jdk21;
   jdk_headless = jdk21_headless;
@@ -6597,6 +6603,7 @@ with pkgs;
   zulu17 = callPackage ../development/compilers/zulu/17.nix { };
   zulu21 = callPackage ../development/compilers/zulu/21.nix { };
   zulu23 = callPackage ../development/compilers/zulu/23.nix { };
+  zulu24 = callPackage ../development/compilers/zulu/24.nix { };
   zulu = zulu21;
 
   ### DEVELOPMENT / INTERPRETERS
diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix
index a08cb4a55c7a3..770a29df445e6 100644
--- a/pkgs/top-level/java-packages.nix
+++ b/pkgs/top-level/java-packages.nix
@@ -49,6 +49,7 @@ with pkgs;
       openjdk17 = mkOpenjdk "17";
       openjdk21 = mkOpenjdk "21";
       openjdk23 = mkOpenjdk "23";
+      openjdk24 = mkOpenjdk "24";
 
       # Legacy aliases
       openjdk8-bootstrap = temurin-bin.jdk-8;


Reviews:
user: login: Infinidoge
body: One nitpick about spacing changes, but looks good to me!
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-30T23:00:58Z
user: login: dtomvan
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-01T08:35:36Z
user: login: dtomvan
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-01T09:23:51Z
user: login: Infinidoge
body: Everything looks good to me :)
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-01T13:17:56Z

Review comments:
diff_hunk: @@ -58,35 +59,36 @@
   openjfx17,
   openjfx21,
   openjfx23,
+  openjfx24,
   openjfx_jdk ?
     {
       "17" = openjfx17;
       "21" = openjfx21;
       "23" = openjfx23;
+      "24" = openjfx24;
     }
     .${featureVersion} or (throw "JavaFX is not supported on OpenJDK ${featureVersion}"),
-
   enableGtk ? true,
   gtk3,
   gtk2,
   glib,
-
   temurin-bin-8,
   temurin-bin-11,
   temurin-bin-17,
   temurin-bin-21,
   temurin-bin-23,
+  temurin-bin-24,
   jdk-bootstrap ?
     {
       "8" = temurin-bin-8.__spliced.buildBuild or temurin-bin-8;
       "11" = temurin-bin-11.__spliced.buildBuild or temurin-bin-11;
       "17" = temurin-bin-17.__spliced.buildBuild or temurin-bin-17;
       "21" = temurin-bin-21.__spliced.buildBuild or temurin-bin-21;
       "23" = temurin-bin-23.__spliced.buildBuild or temurin-bin-23;
+      "24" = temurin-bin-24.__spliced.buildBuild or temurin-bin-24;
     }
     .${featureVersion},
 }:
-
path: pkgs/development/compilers/openjdk/generic.nix
user: login: Infinidoge
body: Nitpick: Should generally avoid unnecessary space changes such as this. Was this changed by running `nixfmt`?
created_at: 2025-04-30T22:48:52Z
author_association: CONTRIBUTOR
diff_hunk: @@ -58,35 +59,36 @@
   openjfx17,
   openjfx21,
   openjfx23,
+  openjfx24,
   openjfx_jdk ?
     {
       "17" = openjfx17;
       "21" = openjfx21;
       "23" = openjfx23;
+      "24" = openjfx24;
     }
     .${featureVersion} or (throw "JavaFX is not supported on OpenJDK ${featureVersion}"),
-
   enableGtk ? true,
   gtk3,
   gtk2,
   glib,
-
   temurin-bin-8,
   temurin-bin-11,
   temurin-bin-17,
   temurin-bin-21,
   temurin-bin-23,
+  temurin-bin-24,
   jdk-bootstrap ?
     {
       "8" = temurin-bin-8.__spliced.buildBuild or temurin-bin-8;
       "11" = temurin-bin-11.__spliced.buildBuild or temurin-bin-11;
       "17" = temurin-bin-17.__spliced.buildBuild or temurin-bin-17;
       "21" = temurin-bin-21.__spliced.buildBuild or temurin-bin-21;
       "23" = temurin-bin-23.__spliced.buildBuild or temurin-bin-23;
+      "24" = temurin-bin-24.__spliced.buildBuild or temurin-bin-24;
     }
     .${featureVersion},
 }:
-
path: pkgs/development/compilers/openjdk/generic.nix
user: login: dtomvan
body: I have no idea how it slipped through, but I'll change that. Thanks!
created_at: 2025-05-01T08:35:36Z
author_association: CONTRIBUTOR
diff_hunk: @@ -58,35 +59,36 @@
   openjfx17,
   openjfx21,
   openjfx23,
+  openjfx24,
   openjfx_jdk ?
     {
       "17" = openjfx17;
       "21" = openjfx21;
       "23" = openjfx23;
+      "24" = openjfx24;
     }
     .${featureVersion} or (throw "JavaFX is not supported on OpenJDK ${featureVersion}"),
-
   enableGtk ? true,
   gtk3,
   gtk2,
   glib,
-
   temurin-bin-8,
   temurin-bin-11,
   temurin-bin-17,
   temurin-bin-21,
   temurin-bin-23,
+  temurin-bin-24,
   jdk-bootstrap ?
     {
       "8" = temurin-bin-8.__spliced.buildBuild or temurin-bin-8;
       "11" = temurin-bin-11.__spliced.buildBuild or temurin-bin-11;
       "17" = temurin-bin-17.__spliced.buildBuild or temurin-bin-17;
       "21" = temurin-bin-21.__spliced.buildBuild or temurin-bin-21;
       "23" = temurin-bin-23.__spliced.buildBuild or temurin-bin-23;
+      "24" = temurin-bin-24.__spliced.buildBuild or temurin-bin-24;
     }
     .${featureVersion},
 }:
-
path: pkgs/development/compilers/openjdk/generic.nix
user: login: dtomvan
body: Ah, I see, I use `difft` as my diff formatter, which parses the nix files using treesitter. After reverting the whitespace changes and staging it, I get:
```
[~/repos/nixpkgs/openjdk24]$ git diff --cached 42165fa8
pkgs/development/compilers/openjdk/generic.nix --- Nix
No syntactic changes.
```

Next time I'll review my changes with `--no-ext-diff` 😅 
created_at: 2025-05-01T09:23:51Z
author_association: CONTRIBUTOR

PR comments:
user: login: dtomvan
created_at: 2025-04-08T15:16:35Z
body: Whoops, CI fails that way, I guess apply it temporarily?
author_association: CONTRIBUTOR
user: login: dtomvan
created_at: 2025-04-08T15:20:38Z
body: That should work. For confirmation `nix-build -A jdk24` returns `/nix/store/dpl99cflng6xgg62x27z8cpswic6ls8w-openjdk-24+36`.
author_association: CONTRIBUTOR
user: login: dtomvan
created_at: 2025-04-09T10:41:41Z
body: zulu24 builds on x86_64-linux. I hope I did all the hashes correctly, as it was a very manual process.
author_association: CONTRIBUTOR
user: login: dtomvan
created_at: 2025-04-09T10:42:56Z
body: nixpkgs-vet:
>  - Attribute `pkgs.zulu24` is a new top-level package using `pkgs.callPackage ./pkgs/development/compilers/zulu/24.nix { /* ... */ }`.

I just followed the existing pattern. Should I actually do as it says?
author_association: CONTRIBUTOR
user: login: dtomvan
created_at: 2025-04-09T11:04:17Z
body: Whoops, didn't notice this was already being worked on in #391811... @raboof should I close this? Also, someone was adding just temurin in #397042. That's probably a dup of your PR, too.

But `pkgs/development/compilers/zulu/24.nix` differ between my branch and your branch. I think the azul website mentions different versions for JDK FX builds compared to regular JDK. Could you look at that?
author_association: CONTRIBUTOR
user: login: raboof
created_at: 2025-04-09T12:18:23Z
body: > Whoops, didn't notice this was already being worked on in #391811... @raboof should I close this? Also, someone was adding just temurin in #397042. That's probably a dup of your PR, too.

No worries, I closed mine

author_association: MEMBER
user: login: dtomvan
created_at: 2025-04-09T14:42:26Z
body: One important difference between this PR and yours is that this one is *additive* though. jdk23 isn't replaced here as of now. I saw some discussion in your thread. Is there a consensus on that?
author_association: CONTRIBUTOR
user: login: raboof
created_at: 2025-04-09T14:46:13Z
body: > One important difference between this PR and yours is that this one is _additive_ though. jdk23 isn't replaced here as of now. I saw some discussion in your thread. Is there a consensus on that?

I'm not sure about consensus per se, but doing only the step of adding 24 now seems noncontroversial, and how fast we drop jdk23 can be discussed further after that.
author_association: MEMBER
user: login: dtomvan
created_at: 2025-04-09T15:22:06Z
body: The rebuild count is huge. As it stands, I am running a `nixpkgs-review` on all *new* packages to verify the change is in a sane state. Then (I didn't realise a lot of the packages needed rebuilding because of this, as in theory nothing depends on a *new* package yet, right?) I suppose I'll move this over to `staging`?
author_association: CONTRIBUTOR
user: login: raboof
created_at: 2025-04-09T15:25:33Z
body: > The rebuild count is huge.

Perhaps it'd go down if you make the `FIXME: Man directory nowhere to be found in openjdk24` part optional in a way that other versions don't appear to be changed?
author_association: MEMBER
user: login: dtomvan
created_at: 2025-04-09T15:40:26Z
body: I popped it out of the string literal. Now this should result in equivalent derivations for existing `openjdk` packages, no?

Also I reordered the commits: the `openjdk24` commit depends on `temurin-bin-24` for the bootstrap and on `zulu24` for `jdk24.meta.platforms` (and the macos build I think). So hopefully that makes more sense to CI.
author_association: CONTRIBUTOR
user: login: dtomvan
created_at: 2025-04-09T16:56:42Z
body: A bit late, but this looks promising:

## `nixpkgs-review` result

Generated using [`nixpkgs-review-gha`](https://github.com/Defelo/nixpkgs-review-gha)

Command: `nixpkgs-review pr 397129`

Logs: https://github.com/dtomvan/nixpkgs-review-gha/actions/runs/14361427530


---
### `x86_64-linux`
<details>
  <summary>:white_check_mark: 7 packages built:</summary>
  <ul>
    <li>jdk24 (openjdk24)</li>
    <li>jdk24.debug (openjdk24.debug)</li>
    <li>jdk24_headless (openjdk24_headless)</li>
    <li>jdk24_headless.debug (openjdk24_headless.debug)</li>
    <li>temurin-bin-24</li>
    <li>temurin-jre-bin-24</li>
    <li>zulu24</li>
  </ul>
</details>


---
### `aarch64-linux`
<details>
  <summary>:white_check_mark: 7 packages built:</summary>
  <ul>
    <li>jdk24 (openjdk24)</li>
    <li>jdk24.debug (openjdk24.debug)</li>
    <li>jdk24_headless (openjdk24_headless)</li>
    <li>jdk24_headless.debug (openjdk24_headless.debug)</li>
    <li>temurin-bin-24</li>
    <li>temurin-jre-bin-24</li>
    <li>zulu24</li>
  </ul>
</details>


---
### `x86_64-darwin`
<details>
  <summary>:white_check_mark: 3 packages built:</summary>
  <ul>
    <li>jdk24 (jdk24_headless, openjdk24, openjdk24_headless, zulu24)</li>
    <li>temurin-bin-24</li>
    <li>temurin-jre-bin-24</li>
  </ul>
</details>


---
### `aarch64-darwin`
<details>
  <summary>:white_check_mark: 3 packages built:</summary>
  <ul>
    <li>jdk24 (jdk24_headless, openjdk24, openjdk24_headless, zulu24)</li>
    <li>temurin-bin-24</li>
    <li>temurin-jre-bin-24</li>
  </ul>
</details>
author_association: CONTRIBUTOR
user: login: dtomvan
created_at: 2025-04-09T16:59:20Z
body: One more thing (note to self if you will): I need to add openjfx packages, then I'll call this ready for review.
author_association: CONTRIBUTOR
user: login: dtomvan
created_at: 2025-04-09T17:55:44Z
body: Found the reason the manpages aren't created: (from `openjdk24` logs)
> checking for pandoc... no, cannot generate full docs

Then some 400-odd lines later:
> Warning: pandoc not found. Not generating man pages

Makes sense. Adding `pandoc` to `nativeBuildInputs` for `openjdk/generic.nix` I suppose.
author_association: CONTRIBUTOR
user: login: raboof
created_at: 2025-04-09T18:43:20Z
body: > [github-actions](https://github.com/apps/github-actions) bot added[ 10.rebuild-linux: 1-10 ](https://github.com/NixOS/nixpkgs/labels/10.rebuild-linux%3A%201-10)and removed 10.rebuild-linux: 1001-2500

nice ;)

> pandoc not found. Not generating man pages

ha, good find
author_association: MEMBER
user: login: dtomvan
created_at: 2025-04-09T19:03:14Z
body: I am now, however, bumping into a whole new problem:
> /build/source/build/linux-x86_64-server-release/buildtools/manpages/pandoc-troff-manpage-filter: createProcess: posix_spawnp: does not exist (No such file or directory)

`ENABLE_PANDOC` is true now in the [makefile jungle](https://github.com/openjdk/jdk24u/blob/jdk-24%2B36/make/CompileToolsJdk.gmk#L124), so some filter gets setup (which lives [here](https://github.com/openjdk/jdk24u/tree/jdk-24%2B36/make/jdk/src/classes/build/tools/pandocfilter)) and then it gets used [here](https://github.com/openjdk/jdk24u/blob/jdk-24+36/make/common/modules/LauncherCommon.gmk#L200) I think.

They mention it is written in Java*Script*, but actually it has been [rewritten in plain Java 5 years ago](https://github.com/openjdk/jdk24u/tree/jdk-24%2B36/make/jdk/src/classes/build/tools/pandocfilter), so I get the feeling this might just be an oversight after all and not much we could do about.

The actual filter code isn't even [30 lines](https://github.com/openjdk/jdk24u/blob/jdk-24%2B36/make/jdk/src/classes/build/tools/pandocfilter/PandocManPageTroffFilter.java) and it seems to only concern some aesthetic changes to the documentation, so I wouldn't be against patching it out for now...

I'll try to run a build outside of nix to try to find the culprit though. (kind-of annoying how nix doesn't let you look at /build after a failure)
author_association: CONTRIBUTOR
user: login: FliegendeWurst
created_at: 2025-04-26T12:52:23Z
body: > (kind-of annoying how nix doesn't let you look at /build after a failure)

You can use `--keep-failed`, then Nix won't delete the build directory.
author_association: MEMBER
user: login: dtomvan
created_at: 2025-04-30T10:46:34Z
body: Fixed the manpage stuff (error was due to `/bin/bash` shebang), builds on `x86_64-linux`, tested the result with `jshell`, manpages look good :+1:.
author_association: CONTRIBUTOR
user: login: FliegendeWurst
created_at: 2025-05-03T17:03:49Z
body: OpenJFX seems to fetch platform-specific gradle dependencies (here: ofborg an aarch64-linux)

```
* What went wrong:
Execution failed for task ':swt:compileJava'.
> Could not resolve all files for configuration ':swt:compileClasspath'.
   > Could not find :org.eclipse.swt.gtk.linux.aarch64_3.124.200.v20231113-1355:.
     Searched in the following locations:
       - https://download.eclipse.org/eclipse/updates/4.30/R-4.30-202312010110/plugins/org.eclipse.swt.gtk.linux.aarch64_3.124.200.v20231113-1355.jar
     Required by:
         project :swt
```
OpenJFX 23 and older build successfully.
author_association: MEMBER
user: login: dtomvan
created_at: 2025-05-03T22:11:42Z
body: So, does that mean we need a different mitmCache for each platform, then run the update script for each platform to fix that? Do I understand the problem here correctly? If so, I would need some help with that because I only really have `x86_64-linux` machines. I guess I could set up a QEMU VM for each target, so if that's the only option I will give that a shot...

I might be able to tweak the [nixpkgs-review-gha](https://github.com/dtomvan/nixpkgs-review-gha) to upload build artifacts to trick GitHub into doing it for me...
author_association: CONTRIBUTOR
user: login: FliegendeWurst
created_at: 2025-05-03T22:15:31Z
body: > So, does that mean we need a different mitmCache for each platform, then run the update script for each platform to fix that?

The caches can be merged. Anyway, I just had a look at the older versions. They only specify this dependency for x86, yet they build successfully for other platforms ...
author_association: MEMBER
user: login: danielfz
created_at: 2025-05-04T15:54:19Z
body: I'm a nix "newbie" (1 year using it) and really wanted JDK 24 and managed to compile it, and had to do some of the same tricks. I had the same pandoc error, and it seems very thorny - in pandoc's issue tracker, they even mention that it could have to do with CPU architecture... It was a great learning experience for me, but in the end I should have checked here first :P

For reference, I also found this, but I don't think it's related: https://github.com/openjdk/jdk24u/commit/cbe8448f28895b887157c1f23a0cf70070449509
Another interesting detail is that they are very specific about the pandoc version required (some 2.*) and in nixpkgs we seem to get 3.*

(Now, this is a personal note, far from me to know what's best for nixpkgs, but if this was a project at work, I'd not add the pandoc dependency as it increases maintenance issues with little benefit - the benefit is only that you get documentation, which you can already get online)
author_association: NONE
user: login: dtomvan
created_at: 2025-05-05T09:42:45Z
body: I just manually downloaded and hashed the jar from that `download.eclipse.org/eclipse/updates` repo, and I think this should work. Of course it's a GTK dependency, so I don't think I'd need to do anything for darwin.
author_association: CONTRIBUTOR
user: login: dtomvan
created_at: 2025-05-05T10:28:09Z
body: That should do it:

## `nixpkgs-review` result for [#397129](https://github.com/NixOS/nixpkgs/pull/397129)

Generated using [`nixpkgs-review-gha`](https://github.com/Defelo/nixpkgs-review-gha)

Command: `nixpkgs-review pr 397129`

Logs: https://github.com/dtomvan/nixpkgs-review-gha/actions/runs/14833590391


---
### `x86_64-linux`
<details>
  <summary>:white_check_mark: 1 package built:</summary>
  <ul>
    <li>openjfx24</li>
  </ul>
</details>


---
### `aarch64-linux`
<details>
  <summary>:white_check_mark: 1 package built:</summary>
  <ul>
    <li>openjfx24</li>
  </ul>
</details>


author_association: CONTRIBUTOR