bitcoinj / secp256k1-jdk

Java library providing Bitcoin-related Elliptic Curve Cryptography
Apache License 2.0
9 stars 3 forks source link

flake.{nix,lock}: Update to JDK23 (and temporarily un-include jextract) #96

Closed msgilligan closed 2 weeks ago

msgilligan commented 2 weeks ago

NixPkgs has removed JDK 22 as "unsupported" and now provides jdk23. The jextract package has not been upgraded and is marked as broken.

Given that jextract is not needed to build secp256k1-jdk from source, it is commented out for now. (jextract is included in the nix develop environment for updating the generated wrapper manually)

The flake.lock file is also updated to the latest hashes.

craigraw commented 2 weeks ago

Does this mean secp256k1-jdk will require Java 23 to run? Or can the target compatibility for class files be set to 22?

msgilligan commented 2 weeks ago

Does this mean secp256k1-jdk will require Java 23 to run?

No.

Or can the target compatibility for class files be set to 22?

That target compatibility for the class files is set to 22 (for secp-ffm) and earlier for some of the the other JARs. This is set in the root build.gradle.

I plan to continue to migrate the build to the latest supported JDK without changing the target compatibility. Although when Sparrow moves to a newer JDK, we can consider bumping the class file version of secp-ffm if there is a useful JVM feature -- though I'm imaging a 1.0 release would not advance beyond JDK 25 ("LTS")

The Gradle build by default still tries to use JDK 22 (via the toolchains mechanism.) The GItHub Actions build overrides this setting on the command-line to use JDK 23 (as we know it is available there.) This PR just updates the Nix build (which is currently not the official build.)

schildbach commented 2 weeks ago

I'm not sure if/how this overlaps with #99, but I'm sure you'll merge it in the right order if necessary.

msgilligan commented 2 weeks ago

I'm not sure if/how this overlaps with #99, but I'm sure you'll merge it in the right order if necessary.

After Nixpkgs bumped to JDK23 and prior to #99, I was actually manually adding the -PjavaToolchainVersion=23 when building in the Nix environment.

I'll merge this one last.