Installing jive on Debian Stretch

Hello,

we're trying to get Tango up and running on a new Debian 9 system. However, jive does not seem to be in any of the packages listed in the manual:

http://tango-controls.readthedocs.io/en/latest/installation/tango-on-linux.html

Which is especially ironic since jive is referenced further down in the manual smile.

The download link on http://tango-controls.readthedocs.io/en/latest/tools-and-extensions/jive/index.html also seems to be a dead-end. It goes to a bintray site that does not have any downloads.

What's the recommended way to install jive on Debian 9 right now?

Cheers,
Marius
Hi Marius,

you are right this is not obvious! The Java based tools are not available as official Debian packages because of an long standing issue with the use of JacORB which has a licence which is not compatible with Debian. The licence will not be changed because it depends on some code from the OMG which it has stopped supporting i.e. will not change.

What I do on my laptop is to install the source code package of Tango which install jive and all the other java based tools as well. You can find the source code here: https://sourceforge.net/projects/tango-cs/files/tango-9.2.5a.tar.gz/download

I would still use the binary packages for the libraries and database server.

Providing binary Jive packages on bintray is on our TODO list. If someone wants to help us that would be great!

Andy
Well, the binaries are already on the bintray, look under files:

Jive 7.18



Download the jar-with-dependencies and run as following:


TANGO_HOST=localhost:10000 java -jar Jive-7.18-jar-with-dependencies.jar
Hi Marius,

You can also download the libtango-java Debian package available here: https://people.debian.org/~picca/libtango-java_9.2.5a-1_all.deb

You can then install it using dpkg:
sudo dpkg -i ./whereyoudownload/libtango-java.XX.version.deb

I found this trick advertised in the following page describing how to install Tango on a Raspberry PI:
http://www.tango-controls.org/developers/howto/how-install-tango-raspberry-pi-one-line-command/

This works as well on other Debian-like operating systems.

Hoping this helps,
Reynald
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
Very interesting - I will try this out on my laptop.

Is this updated with the latest jive?

Andy
This is built from the source distribution, so you will get the same version as in Tango 9.2.5a source distribution.
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
I have added this recipe for the Java binaries to the Linux Debian installation section in the manual:

http://tango-controls.readthedocs.io/en/latest/installation/tango-on-linux.html

Andy
Hej, I was just trying to get Jive running on Linux Mint 19 Beta system but got the following error when using the deb-package (installation without problems):

Exception in thread "main" java.lang.NoClassDefFoundError: javax/rmi/CORBA/Stub
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1009)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801)
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
	at org.jacorb.orb.ORB._getDelegate(ORB.java:563)
	at org.jacorb.orb.ORB.string_to_object(ORB.java:2378)
	at fr.esrf.TangoApi.ConnectionDAODefaultImpl.createDevice(ConnectionDAODefaultImpl.java:337)
	at fr.esrf.TangoApi.ConnectionDAODefaultImpl.connect_to_dbase(ConnectionDAODefaultImpl.java:613)
	at fr.esrf.TangoApi.ConnectionDAODefaultImpl.init(ConnectionDAODefaultImpl.java:104)
	at fr.esrf.TangoApi.Connection.<init>(Connection.java:159)
	at fr.esrf.TangoApi.Database.<init>(Database.java:97)
	at fr.esrf.TangoApi.ApiUtilDAODefaultImpl.get_db_obj(ApiUtilDAODefaultImpl.java:131)
	at fr.esrf.TangoApi.ApiUtil.get_db_obj(ApiUtil.java:130)
	at jive3.MainPanel.initComponents(MainPanel.java:154)
	at jive3.MainPanel.<init>(MainPanel.java:123)
	at jive3.MainPanel.<init>(MainPanel.java:107)
	at jive3.MainPanel.main(MainPanel.java:1335)
Caused by: java.lang.ClassNotFoundException: javax.rmi.CORBA.Stub
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
	… 22 more

Any ideas to solve this issue?

Best

Daniel
Hi Daniel,

very strange. I don't recall encountering this issue before. It looks like a problem with the CORBA classes. Which version of the jdk are you using - open-jdk or oracle-jdk? I will try to reproduce your problem on ubuntu 18.04.

Would it help if you have a dockerised version of jive?

Andy
Hi Daniel,

You are probably using a recent version of java (>=9) where java.corba module is deprecated (https://docs.oracle.com/javase/9/docs/api/java.corba-summary.html).
This question on stackoverflow might give you some hints:
https://stackoverflow.com/questions/28983922/alternative-for-deprecated-endorsed-standards-override-mechanism-and-extension-m

It looks like there are some ways to work around this issue by specifying additional options when invoking java (–add-module "java.corba" –add-exports=…, …).

The easiest way to solve this problem would be to install java 8 and start jive using java 8.

Hoping this helps,
Reynald
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
 
Register or login to create to post a reply.