cedadev / jasmin_scivm

9 stars 0 forks source link

panoply graphical software #117

Closed sosprey closed 7 years ago

sosprey commented 7 years ago

I was wondering whether the Panoply Data viewing package could be added as an optional software package to the virtual machines, thanks.

https://www.giss.nasa.gov/tools/panoply/

This is very good software for the quick creation of camera-ready plots.

All the best, Scott Osprey.

alaniwi commented 7 years ago

Sorry for the long delay, Scott. About to look into this, but closing this ticket as a duplicate of #111.

alaniwi commented 7 years ago

Reopening as has more detail than the other. Will close that one instead.

alaniwi commented 7 years ago

Sorry, but panoply does not seem to be compatible with the java version.

$ ./panoply.sh 
Exception in thread "main" java.lang.UnsupportedClassVersionError: gov/nasa/giss/panoply/Panoply : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:648)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:272)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:68)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:207)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:201)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:200)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:325)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:296)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:270)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:406)
sosprey commented 7 years ago

Hi Alan,

thank you for chasing this up. Looking on the web it looks like the problem is linked with pointing to the wrong version of Java. Solutions seem to be to point to an earlier Java version which is supported (these should already be on the system).

All the best, Scott.

On 5 Jul 2017, at 13:48, Alan Iwi notifications@github.com wrote:

Sorry, but panoply does not seem to be compatible with the java version.

]$ ./panoply.sh Exception in thread "main" java.lang.UnsupportedClassVersionError: gov/nasa/giss/panoply/Panoply : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:648) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:272) at java.net.URLClassLoader.access$000(URLClassLoader.java:68) at java.net.URLClassLoader$1.run(URLClassLoader.java:207) at java.net.URLClassLoader$1.run(URLClassLoader.java:201) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:200) at java.lang.ClassLoader.loadClass(ClassLoader.java:325) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:296) at java.lang.ClassLoader.loadClass(ClassLoader.java:270) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:406) — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/cedadev/jasmin_scivm/issues/117#issuecomment-313092926, or mute the thread https://github.com/notifications/unsubscribe-auth/AFFBLYuNmDNGnNNWNgLs5hM5jNVmzBKNks5sK4YfgaJpZM4M1fwb.

alaniwi commented 7 years ago

I can now confirm that it seems to work with java-1.8.0, and I will sort out a way to package it so that it points at this.

alaniwi commented 7 years ago

As I see it, there is a licensing problem which will means that Panoply cannot legally be distributed. I did not find licensing information for Panoply itself on their website, but it contains a number of third-party packages that are listed with their licences at https://www.giss.nasa.gov/tools/panoply/credits.html

The key issue to note is that the available release of Panoply consists only of compiled binaries, and although I have not checked the terms and conditions of all the third-party licences, notably it includes one package which it claims is "Used under terms of the Lesser General Public License" (namely MacWidgets). The LGPL requires any distributions of the library in object form to be accompanied by the source code of the library or have the source available for download from the same place as the object code, so distribution of MacWidgets in object form without doing this is infringing on the author of that package. This could be fixed by obtaining the exact version of the library used by Panoply and including it in the distribution, but it is not the responsibility of CEDA to do this, or to go through checking whether other third-party packages have similar issues. That is something for NASA to do.

What I can do is try to install Panoply on JASMIN systems, outside of the JAP (under the /apps/contrib directory), as installing the software locally for users is not considered to be distributing it. What we cannot do at present is to publish it the the JAP repository.

alaniwi commented 7 years ago

Tagging @msdsoftware for info.

alaniwi commented 7 years ago

I further note that because the macwidgets object code appears to be contained in Panoply.jar instead of in its own jar file, the whole of Panoply.jar classes as a Derivative Work under the LGPL, so it would be necessary to provide source code from which the whole of Panoply.jar can be recompiled, including the parts that are not directly part of MacWidgets. If MacWidgets was self-contained in its own object file and merely called by Panoply, then it would only be necessary to provide the source code for MacWidgets itself.

As I mentioned, I have not checked the status of any other third-party packages.

alaniwi commented 7 years ago

Noting here that the correct version of Java will also need to be provided under /apps. As we are not packaging as an RPM and using RPM dependencies to pull in Java, we cannot rely on the relevant Java RPM being installed on all hosts that mount /apps.

alaniwi commented 7 years ago

This is now installed on JASMIN under /apps. To use it, type:

module add contrib/panoply

(or module add contrib/panoply/4.8.1 to specify version, currently the only version installed)

followed by panoply.

For reasons already discussed, we will not be distributing it in the JAP. For use outside the JASMIN systems, system managers of external machines running the JAP will have to make their own separate arrangements if they wish to install Panoply.