- Package name: jextract
- Latest released version: Build
22-jextract+6-47 (2024/9/10)
- Current version on the unstable channel:
unstable-2024-03-13 (JDK 22-based and broken)
- Current version on the stable/release channel:
unstable-2024-03-13
Note that jextract-21 is based on JDK 21 (LTS) and seems to be working.
The current package.nix file for jextract has the lines:
# Not yet updated for JDK 23
broken = true;
This means when you try to use it you get errors like this:
error:
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:34:12:
33|
34| strict = derivationStrict drvAttrs;
| ^
35|
… while evaluating derivation 'nix-shell'
whose name attribute is located at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/pkgs/stdenv/generic/make-derivation.nix:336:7
… while evaluating attribute 'nativeBuildInputs' of derivation 'nix-shell'
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/pkgs/stdenv/generic/make-derivation.nix:380:7:
379| depsBuildBuild = elemAt (elemAt dependencies 0) 0;
380| nativeBuildInputs = elemAt (elemAt dependencies 0) 1;
| ^
381| depsBuildTarget = elemAt (elemAt dependencies 0) 2;
(stack trace truncated; use '--show-trace' to show the full, detailed trace)
error: Package ‘jextract-unstable-2024-03-13’ in /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/pkgs/by-name/je/jextract/package.nix:46 is marked as broken, refusing to evaluate.
a) To temporarily allow broken packages, you can use an environment variable
for a single invocation of the nix tools.
$ export NIXPKGS_ALLOW_BROKEN=1
Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake,
then pass `--impure` in order to allow use of environment variables.
b) For `nixos-rebuild` you can set
{ nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.
c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
{ allowBroken = true; }
to ~/.config/nixpkgs/config.nix.
Given that jdk22 was removed from NixPkgs (I feel that it shouldn't have been, but that's a separate issue) we will need a version of jextract that works with JDK 23. The current early access binary here is Build 22-jextract+6-47 (2024/9/10) so will not work build with JDK 23.
I think the best thing to do would be to take the latest commit on the master branch and try that. We've done this in the past, though I prefer to have the source (roughly) match a supported binary release from OpenJDK.
@SharzyL @SpriteOvO @jlesquembre
22-jextract+6-47(2024/9/10)unstable-2024-03-13(JDK 22-based andbroken)unstable-2024-03-13Note that
jextract-21is based on JDK 21 (LTS) and seems to be working.The current
package.nixfile forjextracthas the lines:This means when you try to use it you get errors like this:
Given that jdk22 was removed from NixPkgs (I feel that it shouldn't have been, but that's a separate issue) we will need a version of
jextractthat works with JDK 23. The current early access binary here isBuild 22-jextract+6-47 (2024/9/10)so will notworkbuild with JDK 23.I think the best thing to do would be to take the latest commit on the
masterbranch and try that. We've done this in the past, though I prefer to have the source (roughly) match a supported binary release from OpenJDK.@SharzyL @SpriteOvO @jlesquembre