Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Increase net.java.dev.jna:jna version ? #163

Closed
NicoKiaru opened this issue Feb 1, 2021 · 16 comments
Closed

Increase net.java.dev.jna:jna version ? #163

NicoKiaru opened this issue Feb 1, 2021 · 16 comments
Milestone

Comments

@NicoKiaru
Copy link
Contributor

Hello,

Do you think it would be possible to update net.java.dev.jna:jna to version 5.6.0 (or above) ?

Best,

Nicolas

@imagejan
Copy link
Member

imagejan commented Feb 23, 2021

What are the breaking changes with major version 5? @NicoKiaru what functionality do you require?

The following components (and maybe more) currently use jna in their pom.xml:

Some changes possibly required:

Edit:
Also, some of the above usage of JNA can maybe be replaced by https://github.com/scijava/native-lib-loader ? Don't know enough about it to judge though...

@NicoKiaru
Copy link
Contributor Author

NicoKiaru commented Feb 23, 2021

Ah! I need it for a CPU meter also:

https://github.com/BIOP/ijp-imagetoatlas/blob/master/src/main/java/ch/epfl/biop/ResourcesMonitor.java
I tested and jna is required if you want a cpu meter that (really) works on all platform. I didn't know there was already one.

However, thanks to your links, I see that jna is used in SPIM_registration to connect to CUDA. I don't know how much this function is used and how involved is the update, but for sure it's more important than a CPU meter.

So I think updating jna should be tested/done by @StephanPreibisch first in SPIM_registration, because its use of jna is more important than a CPU meter. But I'm not @StephanPreibisch has time to put in this, and since my use case is not super important, we'll probably stay this way until something more important comes up.

Thanks a lot @imagejan !

@ctrueden
Copy link
Member

Here are the components using jna I found in a quick search:

  • clij/clij-coremem
  • fiji/CPU_Meter
  • fiji/SPIM_Registration
  • uw-loci/curvelets-imagej
  • deepimagej/deepimagej-plugin
  • PreibischLab/multiview-reconstruction

I would love to update this across the board, but I don't have the bandwidth to do it right now unfortunately.

@mkitti
Copy link
Contributor

mkitti commented Jun 10, 2022

@mzouink, do you want to tackle this check list with me?

@mkitti
Copy link
Contributor

mkitti commented Jun 10, 2022

We need JNA 5.7 or 5.8 for upstream aarch64 support.

JNA 5.7 introduced a lipoed fat darwin binary:
java-native-access/jna#1297

JNA 5.8 split the darwin binaries into x86_64 and aarch64 versions
java-native-access/jna#1316

We should target JNA 5.8 at minimum for stable aarch64 support.

@ctrueden
Copy link
Member

I would substantially prefer to target the latest version, as long as we might be needing to update downstream projects anyway.

@mzouink
Copy link

mzouink commented Jun 13, 2022

Here are the components using jna I found in a quick search:

  • clij/clij-coremem
  • fiji/CPU_Meter
  • fiji/SPIM_Registration
  • uw-loci/curvelets-imagej
  • deepimagej/deepimagej-plugin
  • PreibischLab/multiview-reconstruction

I would love to update this across the board, but I don't have the bandwidth to do it right now unfortunately.

I tested PreibischLab/multiview-reconstruction with JNA 5.11.0 and it is working well. jna is used for cuda computing. So hopefully if other projects needs JNA for cuda it should be ok.

@mkitti
Copy link
Contributor

mkitti commented Jun 13, 2022

@mkitti
Copy link
Contributor

mkitti commented Jun 14, 2022

I just checked clij/clij-coremem, and it works with JNA 5.11.0. All tests passing. cc: @haesleinhuepf

<jna.version>5.11.0</jna.version>

@mkitti
Copy link
Contributor

mkitti commented Jun 14, 2022

Native.loadLibrary is deprecated but still functional. Use Native.load instead.

@mkitti
Copy link
Contributor

mkitti commented Jun 14, 2022

fiji/CPU_Meter#1

@mkitti
Copy link
Contributor

mkitti commented Jun 14, 2022

I cannot locate a public uw-loci/curvelets-imagej repo. Is it private?

@mkitti
Copy link
Contributor

mkitti commented Jun 14, 2022

I have checked compatibility with the following repositories.

  • clij/clij-coremem
  • fiji/CPU_Meter
  • fiji/SPIM_Registration
  • uw-loci/curvelets-imagej (repository not found)
  • deepimagej/deepimagej-plugin
  • PreibischLab/multiview-reconstruction

@imagesc-bot
Copy link

This issue has been mentioned on Image.sc Forum. There might be relevant details there:

https://forum.image.sc/t/timeline-for-the-next-fiji-update/69640/3

@ctrueden ctrueden modified the milestones: unscheduled, next-release Aug 27, 2022
@ctrueden
Copy link
Member

Ahh, in all the dust surrounding the pom-scijava 32.0.0 release, I forgot to upgrade jna. 🤦

The good news is: I ran the mega-melt just now with the latest pom-scijava plus jna 5.12.1, and there are no failures caused by the update! 🎉 So I updated it.

@ctrueden ctrueden modified the milestones: next-release, 33.0.0 Aug 27, 2022
@imagejan
Copy link
Member

imagejan commented Jan 12, 2023

I noticed that the FFMPEG update site (https://fiji.sc/~schindelin/ffmpeg-plugins/) still ships jna-3.2.7.jar and therefore possibly breaks other uses of JNA in Fiji. How involved is it to update that legacy site, i.e. the code on https://github.com/scifio/scifio-javacv/tree/ffmpeg/plugin/src/main/java/fiji/ffmpeg?

Also, there is https://sites.imagej.net/FFMPEG-javacv/, but it isn't listed on the list of update sites (yet). Is that site supposed to replace the old FFMPEG site?

/cc @ctrueden

(See this forum topic that triggered my post here.)

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

No branches or pull requests

6 participants