ctt-gob-es / clienteafirma

Cliente @firma
http://administracionelectronica.gob.es/ctt/clienteafirma
248 stars 120 forks source link

"default-jre" debería ser una dependencia del .deb #259

Open calaixera opened 2 years ago

calaixera commented 2 years ago

Autofirma es una aplicación en Java que no va a funcionar sin éste instalado, pero además, instalar el deb de Autofirma disponible en https://firmaelectronica.gob.es/Home/Descargas.html en una máquina sin Java (Debian Sid en este caso) resulta en el siguiente error que deja una instalación rota:

$ sudo dpkg -i AutoFirma_1_7_1.deb 
(S'està llegint la base de dades… hi ha 195184 fitxers i directoris instal·lats actualment.)
S'està preparant per a desempaquetar AutoFirma_1_7_1.deb…
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
Se ha borrado el certificado CA en el almacenamiento del sistema
S'està desempaquetant autofirma (1.7.1) sobre (1.7.1)…
Desinstalación completada con exito
S'està configurant autofirma (1.7.1)…
/var/lib/dpkg/info/autofirma.postinst: 3: java: not found
Generacion de certificados
Instalacion del certificado CA en el almacenamiento de Firefox y Chrome
Can't open /usr/lib/AutoFirma/AutoFirma_ROOT.cer for reading, No such file or directory
140525233296768:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:69:fopen('/usr/lib/AutoFirma/AutoFirma_ROOT.cer','rb')
140525233296768:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:76:
unable to load certificate
mv: ha fallat stat() sobre '/usr/lib/AutoFirma/AutoFirma_ROOT.pem': El fitxer o directori no existeix
cp: ha fallat stat() sobre '/usr/lib/AutoFirma/AutoFirma_ROOT.crt': El fitxer o directori no existeix
cp: ha fallat stat() sobre '/usr/lib/AutoFirma/AutoFirma_ROOT.crt': El fitxer o directori no existeix
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
Instalacion del certificado CA en el almacenamiento del sistema
rm: no s’ha pogut eliminar '/usr/lib/AutoFirma/script.sh': El fitxer o directori no existeix
rm: no s’ha pogut eliminar '/usr/lib/AutoFirma/AutoFirma_ROOT.crt': El fitxer o directori no existeix
S'estan processant els activadors per a mailcap (3.70+nmu1)…
$ AutoFirma 
/usr/bin/AutoFirma: línia 2: java: no s'ha trobat l'ordre

Aunque no he podido probarlo, seguramente la experiencia de usuario a la hora de instalarlo será mucho peor a la hora de instalarlo en Ubuntu o similares con gdebi o software-center o similar...

La buena noticia es que esto tiene fácil solución y es añadir "default-jre" como dependencia del deb. "default-jre" es un paquete virtual que en Debian y derivados instala automáticamente la versión de Java recomendada por la distribución, de forma portable y predecible entre versiones. A dia de hoy, en todas los lanzamientos soportados de Debian y Ubuntu, este instala automáticamente openjdk-11-jre (menos en Ubuntu Bionic, que aún tiene soporte e instala openjdk-8-jre). De actualizarse esta dependencia en un futuro, esta apuntará a la futura LTS, que es Java 17.

A día de hoy, la única dependencia del deb es "libnss3-tools"

chartre commented 2 years ago

Confirmo el problema de la dependencia de java en Ubuntu 22.04. No ha dado error desde el gestor de paquetes, pero no inicia porque, obviamente, no hay una instalación de Java...

Gamuci commented 2 years ago

El motivo por el que originalmente se indicó esa dependencia como recomendación en lugar de como obligatoria fue que había usuarios que preferían usar concretamente la JVM de Oracle, OpenJdk o algún otro fabricante, o incluso una versión concreta de Java que ya tuviesen instalada. Al indicar "default-jre" simplemente podían estar instalando algo distinto a lo que querían. ¿Alguna recomendación?

chartre commented 2 years ago

Desde un punto de vista totalmente inocente, al menos se podría enviar una notificación para alertar de la ausencia de Java. Algo como notify-send (desconozco si los .deb tienen algún mecanismo para notificaciones o pop-ups) Algo del estilo a: AutoFirma ha detectado ausencia de Java, por favor revise los requisitos en la documentación. Al menos así se pondrá sobre la pista del problema.