Skip to content

chore: Update bundled native libs to aiken-jna-wrapper v0.8.0 (unreleased)#27

Draft
matiwinnetou wants to merge 1 commit into
bloxbean:mainfrom
matiwinnetou:update-native-libs-to-latest
Draft

chore: Update bundled native libs to aiken-jna-wrapper v0.8.0 (unreleased)#27
matiwinnetou wants to merge 1 commit into
bloxbean:mainfrom
matiwinnetou:update-native-libs-to-latest

Conversation

@matiwinnetou
Copy link
Copy Markdown
Contributor

@matiwinnetou matiwinnetou commented Jun 4, 2026

Summary

Preparation PR to move the bundled native libraries to the next aiken-jna-wrapper release, v0.8.0, which brings that crate's maintenance/cleanup work and adds a new linux-aarch64 platform.

⚠️ Draft — prepared ahead of the release; do not merge yet. aiken-jna-wrapper v0.8.0 is not released yet, so the new binaries don't exist. This PR is parked until that release is cut, at which point it's finished (see "Two phases" below).

Two phases

  1. Now (this PR): update the download_libs.sh helper so it targets v0.8.0 and knows about the linux-aarch64 platform. No native binaries change here.
  2. At release time (follow-up commit on this branch): run ./download_libs.sh to download the released v0.8.0 libraries into native/ (including the new native/linux-aarch64/libaiken_jna_wrapper.so) and update native/version, then commit those binaries. The repo bundles the committed native/* files as resources, so that commit is what actually ships v0.8.0.

What changed in this PR (download_libs.sh)

  • Bumped tag v0.7.0v0.8.0 — points the helper at the upcoming wrapper release. (v0.6.0/v0.7.0 are already released; v0.8.0 is the next one, carrying the cleanup + the new ARM-Linux target.)
  • Added the linux-aarch64 platformnative/linux-aarch64/ + a download for linux-aarch64_libaiken_jna_wrapper.so.
  • Added a header comment documenting the layout and the release gating.

Scoped as a "refresh the native libs to latest" change — linux-aarch64 is the notable addition this round, with room for more as the wrapper evolves.

Why no Java / Gradle changes are needed

  • native/ is already a packaged resource root (build.gradle: srcDirs "src/main/resources", "native"), so a new native/linux-aarch64/ dir is bundled automatically.
  • LibraryUtil.getAikenWrapperLib() is arch-agnostic for Linux, and JNA selects the correct native/<resource-prefix>/ per platform at runtime — the bundled Platform/NativeUtils already handle aarch64.
  • The wrapper's exported FFI functions (eval_phase_two, apply_params_to_plutus_script, dropCharPointer) are unchanged in v0.8.0, so no interface changes are required.

Upstream dependency

The v0.8.0 wrapper release (incl. the linux-aarch64 artifact) comes from bloxbean/aiken-jna-wrapper#33.

Merge checklist

  • aiken-jna-wrapper v0.8.0 released, with a linux-aarch64_libaiken_jna_wrapper.so asset
  • ./download_libs.sh run; refreshed native/* binaries + native/version committed to this branch
  • (optional) verified loading on an aarch64 Linux host

🤖 Generated with Claude Code

@matiwinnetou matiwinnetou force-pushed the update-native-libs-to-latest branch 2 times, most recently from 8e40d91 to 02b4ba0 Compare June 4, 2026 16:04
Bumps download_libs.sh to v0.8.0 (the next, not-yet-released wrapper release)
and adds the new linux-aarch64 platform it introduces. native/ is packaged as
resources and JNA selects the right library per platform at runtime, so this
script change is all that is needed on the Java side — no Java or build.gradle
changes, and the wrapper's exported FFI functions are unchanged.

Gated on upstream: the v0.8.0 release (incl. the linux-aarch64 artifact) comes
from bloxbean/aiken-jna-wrapper#33. Do not merge until that release exists, or
the downloads (linux-aarch64 in particular) will 404.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@matiwinnetou matiwinnetou force-pushed the update-native-libs-to-latest branch from 02b4ba0 to 2c34ec6 Compare June 4, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant