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

{vis}[system/system] Fiji v2.14.0 w/ Java 8 #22196

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

sassy-crick
Copy link
Collaborator

@sassy-crick sassy-crick commented Jan 22, 2025

(created using eb --new-pr)
Requires:

This PR is using the latest Java-8 version as Fiji is still tied to Java-8, at least for now.
See here for more information

Copy link

Updated software Fiji-2.14.0-Java-8.eb

Diff against Fiji-2.14.0-Java-11.eb

easybuild/easyconfigs/f/Fiji/Fiji-2.14.0-Java-11.eb

diff --git a/easybuild/easyconfigs/f/Fiji/Fiji-2.14.0-Java-11.eb b/easybuild/easyconfigs/f/Fiji/Fiji-2.14.0-Java-8.eb
index 6e3f4cddae..4cf9eca7af 100644
--- a/easybuild/easyconfigs/f/Fiji/Fiji-2.14.0-Java-11.eb
+++ b/easybuild/easyconfigs/f/Fiji/Fiji-2.14.0-Java-8.eb
@@ -1,3 +1,6 @@
+# Changed to Java-8 to avoid errors until Fiji can user newer Java Versions
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
 easyblock = 'PackedBinary'
 
 name = 'Fiji'
@@ -15,24 +18,24 @@ source_urls = ['https://downloads.imagej.net/fiji/releases/%(version)s']
 sources = ['%(namelower)s-%(version)s-nojre.zip']
 checksums = ['1dcf6efd7a2c99b70ab921bea3b9e7c74ef99acf35b9857199de7f9c424187db']
 
-dependencies = [('Java', '11', '', SYSTEM)]
+dependencies = [('Java', '8', '', SYSTEM)]
 
 postinstallcmds = [
     # Remove binaries for other platforms
     'rm %(installdir)s/{ImageJ-win32.exe,ImageJ-win64.exe}',
     # Enable any update site (edit existing site with same parameters to enable it)
     # Full list at https://imagej.github.io/list-of-update-sites/
-    '%(installdir)s/ImageJ-linux64 --default-gc --java-home "$EBROOTJAVA/lib/server/" --headless'
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless'
     ' --update edit-update-site "ImageScience" https://sites.imagej.net/ImageScience/',
-    '%(installdir)s/ImageJ-linux64 --default-gc --java-home "$EBROOTJAVA/lib/server/" --headless'
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless'
     ' --update edit-update-site "3D ImageJ Suite" https://sites.imagej.net/Tboudier/',
-    '%(installdir)s/ImageJ-linux64 --default-gc --java-home "$EBROOTJAVA/lib/server/" --headless'
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless'
     ' --update edit-update-site "ilastik" https://sites.imagej.net/Ilastik/',
     # Add a new update site
     # '%(installdir)s/ImageJ-linux64 --headless --update add-update-site "New Name"'
     # ' https://site.url/NewName/',
     # Update the installation
-    '%(installdir)s/ImageJ-linux64 --default-gc --java-home "$EBROOTJAVA/lib/server/" --headless --update update',
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless --update update',
 ]
 
 sanity_check_paths = {
@@ -44,9 +47,8 @@ modloadmsg = """
 Additional plugins can be installed in your $HOME/.plugins folder or requested to user support
 Use ImageJ/Fiji in headless mode in your scripts with the command `ImageJ-linux64 --headless`
 More information at https://imagej.net/Headless
-Also for Fiji 2.14.0 the arguments `--default-gc --java-home "$EBROOTJAVA/lib/server/"`
-should always be used when running `ImageJ-linux64` commands to avoid errors like:
-`Could not load Java library` and `Unrecognized option: -Xincgc`.
+Also for Fiji 2.14.0 the arguments `--default-gc` should always be used when running
+`ImageJ-linux64` commands to avoid error messages
 """
 
 moduleclass = 'vis'
Diff against Fiji-2.9.0-Java-8.eb

easybuild/easyconfigs/f/Fiji/Fiji-2.9.0-Java-8.eb

diff --git a/easybuild/easyconfigs/f/Fiji/Fiji-2.9.0-Java-8.eb b/easybuild/easyconfigs/f/Fiji/Fiji-2.14.0-Java-8.eb
index a025352372..4cf9eca7af 100644
--- a/easybuild/easyconfigs/f/Fiji/Fiji-2.9.0-Java-8.eb
+++ b/easybuild/easyconfigs/f/Fiji/Fiji-2.14.0-Java-8.eb
@@ -1,19 +1,22 @@
+# Changed to Java-8 to avoid errors until Fiji can user newer Java Versions
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
 easyblock = 'PackedBinary'
 
 name = 'Fiji'
-version = '2.9.0'
+version = '2.14.0'
 versionsuffix = '-Java-%(javaver)s'
 
-homepage = 'https://fiji.sc'
+homepage = 'https://fiji.sc/'
 description = """Fiji is an image processing package—a 'batteries-included' distribution of
  ImageJ, bundling a lot of plugins which facilitate scientific image analysis.
 This release is based on ImageJ-2.1.0 and Fiji-2.1.1"""
 
 toolchain = SYSTEM
 
-source_urls = ['https://downloads.imagej.net/fiji/releases/%(version)s/']
-sources = ['fiji-%(version)s-nojre.zip']
-checksums = ['970fb80cf2a4fe8bfcecc2cc9a8617b9ab28f19fbe229ea6ae2f7f42674c8a42']
+source_urls = ['https://downloads.imagej.net/fiji/releases/%(version)s']
+sources = ['%(namelower)s-%(version)s-nojre.zip']
+checksums = ['1dcf6efd7a2c99b70ab921bea3b9e7c74ef99acf35b9857199de7f9c424187db']
 
 dependencies = [('Java', '8', '', SYSTEM)]
 
@@ -22,17 +25,17 @@ postinstallcmds = [
     'rm %(installdir)s/{ImageJ-win32.exe,ImageJ-win64.exe}',
     # Enable any update site (edit existing site with same parameters to enable it)
     # Full list at https://imagej.github.io/list-of-update-sites/
-    '%(installdir)s/ImageJ-linux64 --headless --update edit-update-site "ImageScience"'
-    ' https://sites.imagej.net/ImageScience/',
-    '%(installdir)s/ImageJ-linux64 --headless --update edit-update-site "3D ImageJ Suite"'
-    ' https://sites.imagej.net/Tboudier/',
-    '%(installdir)s/ImageJ-linux64 --headless --update edit-update-site "ilastik"'
-    ' https://sites.imagej.net/Ilastik/',
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless'
+    ' --update edit-update-site "ImageScience" https://sites.imagej.net/ImageScience/',
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless'
+    ' --update edit-update-site "3D ImageJ Suite" https://sites.imagej.net/Tboudier/',
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless'
+    ' --update edit-update-site "ilastik" https://sites.imagej.net/Ilastik/',
     # Add a new update site
     # '%(installdir)s/ImageJ-linux64 --headless --update add-update-site "New Name"'
     # ' https://site.url/NewName/',
     # Update the installation
-    '%(installdir)s/ImageJ-linux64 --headless --update update',
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless --update update',
 ]
 
 sanity_check_paths = {
@@ -44,6 +47,8 @@ modloadmsg = """
 Additional plugins can be installed in your $HOME/.plugins folder or requested to user support
 Use ImageJ/Fiji in headless mode in your scripts with the command `ImageJ-linux64 --headless`
 More information at https://imagej.net/Headless
+Also for Fiji 2.14.0 the arguments `--default-gc` should always be used when running
+`ImageJ-linux64` commands to avoid error messages
 """
 
 moduleclass = 'vis'
Diff against Fiji-2.9.0-Java-1.8.eb

easybuild/easyconfigs/f/Fiji/Fiji-2.9.0-Java-1.8.eb

diff --git a/easybuild/easyconfigs/f/Fiji/Fiji-2.9.0-Java-1.8.eb b/easybuild/easyconfigs/f/Fiji/Fiji-2.14.0-Java-8.eb
index c655cd1654..4cf9eca7af 100644
--- a/easybuild/easyconfigs/f/Fiji/Fiji-2.9.0-Java-1.8.eb
+++ b/easybuild/easyconfigs/f/Fiji/Fiji-2.14.0-Java-8.eb
@@ -1,38 +1,41 @@
+# Changed to Java-8 to avoid errors until Fiji can user newer Java Versions
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
 easyblock = 'PackedBinary'
 
 name = 'Fiji'
-version = '2.9.0'
+version = '2.14.0'
 versionsuffix = '-Java-%(javaver)s'
 
-homepage = 'https://fiji.sc'
+homepage = 'https://fiji.sc/'
 description = """Fiji is an image processing package—a 'batteries-included' distribution of
  ImageJ, bundling a lot of plugins which facilitate scientific image analysis.
 This release is based on ImageJ-2.1.0 and Fiji-2.1.1"""
 
 toolchain = SYSTEM
 
-source_urls = ['https://downloads.imagej.net/fiji/releases/%(version)s/']
-sources = ['fiji-%(version)s-nojre.zip']
-checksums = ['970fb80cf2a4fe8bfcecc2cc9a8617b9ab28f19fbe229ea6ae2f7f42674c8a42']
+source_urls = ['https://downloads.imagej.net/fiji/releases/%(version)s']
+sources = ['%(namelower)s-%(version)s-nojre.zip']
+checksums = ['1dcf6efd7a2c99b70ab921bea3b9e7c74ef99acf35b9857199de7f9c424187db']
 
-dependencies = [('Java', '1.8', '', SYSTEM)]
+dependencies = [('Java', '8', '', SYSTEM)]
 
 postinstallcmds = [
     # Remove binaries for other platforms
     'rm %(installdir)s/{ImageJ-win32.exe,ImageJ-win64.exe}',
     # Enable any update site (edit existing site with same parameters to enable it)
     # Full list at https://imagej.github.io/list-of-update-sites/
-    '%(installdir)s/ImageJ-linux64 --headless --update edit-update-site "ImageScience"'
-    ' https://sites.imagej.net/ImageScience/',
-    '%(installdir)s/ImageJ-linux64 --headless --update edit-update-site "3D ImageJ Suite"'
-    ' https://sites.imagej.net/Tboudier/',
-    '%(installdir)s/ImageJ-linux64 --headless --update edit-update-site "ilastik"'
-    ' https://sites.imagej.net/Ilastik/',
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless'
+    ' --update edit-update-site "ImageScience" https://sites.imagej.net/ImageScience/',
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless'
+    ' --update edit-update-site "3D ImageJ Suite" https://sites.imagej.net/Tboudier/',
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless'
+    ' --update edit-update-site "ilastik" https://sites.imagej.net/Ilastik/',
     # Add a new update site
     # '%(installdir)s/ImageJ-linux64 --headless --update add-update-site "New Name"'
     # ' https://site.url/NewName/',
     # Update the installation
-    '%(installdir)s/ImageJ-linux64 --headless --update update',
+    '%(installdir)s/ImageJ-linux64 --default-gc --headless --update update',
 ]
 
 sanity_check_paths = {
@@ -44,6 +47,8 @@ modloadmsg = """
 Additional plugins can be installed in your $HOME/.plugins folder or requested to user support
 Use ImageJ/Fiji in headless mode in your scripts with the command `ImageJ-linux64 --headless`
 More information at https://imagej.net/Headless
+Also for Fiji 2.14.0 the arguments `--default-gc` should always be used when running
+`ImageJ-linux64` commands to avoid error messages
 """
 
 moduleclass = 'vis'

@smoors
Copy link
Contributor

smoors commented Jan 23, 2025

This PR is using the latest Java-8 version as Fiji is still tied to Java-8, at least for now.

shouldn't we remove Fiji-2.14.0-Java-11.eb then?

@sassy-crick
Copy link
Collaborator Author

This PR is using the latest Java-8 version as Fiji is still tied to Java-8, at least for now.

shouldn't we remove Fiji-2.14.0-Java-11.eb then?

Good question. I am not the expert on Fiji but I am half-inclined to say yes, given the problems one of our user had. I find both solutions a bit half baked:

  • either you are using Java-8 with all the security issues which might be around it
    or
  • use Java-11 and all the problems it comes with it.
    The proper solution would be for Fiji to release a version build against a more modern Java in my opinion.
    We had an internal discussion and settled on the Java-8 solution.

@boegel what is your take here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants