italia / cie-middleware-linux

Middleware della CIE (Carta di Identità Elettronica) per Linux
BSD 3-Clause "New" or "Revised" License
39 stars 12 forks source link

Specificare dipendenza dalla versione del JRE #44

Open mavoga opened 2 years ago

mavoga commented 2 years ago

Non sono state indicate dipendenze verso alcun runtime Java: per assurdo, l'utente potrebbe installare il pacchetto cie-middleware senza avere alcun interprete java installato sul sistema.

La soluzione di questa issue potrebbe portare alla soluzione della issue #43 . Esempio su Debian (valido anche su Ubuntu): se fosse specificata una dipendenza verso il pacchetto openjdk-8-jre, il file /usr/share/applications/cieid.desktop potrebbe invocare /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java invece che semplicemente java, scongiurando il rischio di eseguire l'applicazione con versioni runtime incompatibili.

lukepozen commented 2 years ago

Ho riscontrato la stessa difficoltà su Elementary OS.

Il pacchetto non dipende da alcun ambiente java. E' stato sufficiente installare il pacchetto openjdk-17-jre perché il software partisse senza alcun problema.

Grazie per il commento, spero che la dipendenza venga implementata quanto prima, proprio perché indispensabile per gli utenti base come me :)

Grazie!

tiol11 commented 2 years ago

Idem su Debian bullseye amd64: dopo aver installato CIE-Middleware-1.4.3-2.amd64.deb , il programma non parte senza indicazione alcuna in interfaccia grafica. Da riga di comando

$ java -Xms1G -Xmx1G -Djna.library.path=".:/usr/local/lib" -classpath "/usr/share/CIEID/cieid.jar" it.ipzs.cieid.MainApplication Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2633) at java.base/java.lang.Runtime.load0(Runtime.java:768) at java.base/java.lang.System.load(System.java:1837) at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method) at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2445) at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2501) at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2700) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2651) at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830) at java.base/java.lang.System.loadLibrary(System.java:1873) at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1399) at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1397) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1396) at java.desktop/java.awt.Toolkit.(Toolkit.java:1429) at java.desktop/java.awt.EventQueue.invokeLater(EventQueue.java:1312) at it.ipzs.cieid.MainApplication.main(MainApplication.java:27)

e la libreria richiesta si trova in openjdk-11-jre , trovato da packages.debian.org

Come dai commenti precedenti, non andrebbe presupposto che il cittadino abbia la capacità di condurre queste analisi: il pacchetto .deb di installazione dovrebbe richiamare la dipendenza verso default-jre