Come installare GoSign Desktop

Ho necessità di utilizzare il software GoSign di InforCert.
Purtroppo InfoCert fornisce per Linux solo un pacchetto in formato DEB.

Ho provato a convertirlo in RPM con alien, ma poi risulta che mancano delle librerie (non ricordo se durante l’installazione del pacchetto rpm o durante l’esecuzione del programma, che comunque non si arriva ad avviare).

Ho provato ad installare la versione per Windows con PlayOnLinux, ma ho scoperto che ques’ultimo non riesce proprio a partire, che sarebbe argomento per un’altra domanda.

Ho provato anche a utilizzare GoSign da Web, ma lì si presenta un errore che non viene nemmno spiegato.

Eh, sono software un po’ del cavolo, senza offesa. Arubasign, Dike, Gosign, ecc. Purtroppo siamo ancora lì che Windows è il privilegiato e il resto è di seconda classe.
Anche su altri sistemi Debian e derivati (a cui è destinato il .deb), a volte danno rogne.
Una strada potrebbe essere quella di usare Distrobox.
Crei un container Ubuntu e installi il deb lì dentro. Non so però se il deb è fatto bene, ossia i pacchetti mancanti nell’immagine scheletrica del container, apt se li tira giù come dipendenze.

1 Like

Grazie della risposta, che mi ha fatto venire in mente di provare qualcosa tipo realizzare un AppImage a partire dal pacchetto deb. Dopo un po’ di tribolazione ci sono riuscito, installato su Fedora e funziona.

Magari quando ho un po’ di tempo posto le istruzioni, potrebbe servire a qualcun altro.

1 Like

La soluzione è stata la seguente, step by step:

  • scaricare deb2appimage da qui
    che nel mio caso corrisponde alla versione 0.0.5

    curl -sL https://github.com/simoniz0r/deb2appimage/releases/download/v0.0.5/deb2appimage-0.0.5-x86_64.AppImage \
      -o deb2appimage.AppImage
    
  • renderlo eseguibile

    chmod +x deb2appimage.AppImage
    
  • eseguirlo sul file json riportato alla fine del messaggio

    ./deb2appimage.AppImage -j file.json -o ./
    
  • se tutto va bene, viene generato il file GoSignDesktop-linux-x86_64.AppImage

  • supponendo di avere AppImageLauncher già installato, eseguire il file .AppImage appena generato e selezionare “Lancia e Integra”

  • è necessario modificare il file .desktop associato per consentirgli di gestire i parametri sulla linea di comando, altrimenti non funziona l’autenticazione tramite browser:

    sed -i 's/\(^Exec=.*\)/\1 %U/' \
      ~/.local/share/applications/*GoSign_Desktop.desktop
    
  • infine, perché sia visualizzata correttamente l’icona del programma, è necessario copiare l’icona in altra posizione:

    cp -a .local/share/icons/default/96x96 .local/share/icons/hicolor/
    

Di seguito riporto il contenuto del file.json

{
    "buildinfo": [
    {
        "prerun": [
            "curl -sL https://rinnovofirma.infocert.it/gosign/download/linux/latest/ -o ~/.cache/deb2appimage/debs/gosigndesktop.deb"
        ],
        "name": "GoSignDesktop",
        "version": "linux",
        "deps": "libgtk-3-0,libnotify4,libnss3,libxtst6,xdg-utils,libatspi2.0-0,libxss1,libglib2.0-bin,libpcsclite1,pcscd,libbz2-1.0",
        "repoarch": "amd64,amd64,amd64,amd64,all,amd64,amd64,amd64,amd64,amd64,amd64",
        "distrorepo": "Debian",
        "repoversion": "bookworm",
        "binarypath": "/usr/bin/gosigndesktop",
        "desktoppath": "/usr/share/applications/gosigndesktop.desktop",
        "iconpath": "/usr/share/pixmaps/gosigndesktop.png",
        "usewrapper": "false",
        "postrun": [
            null
        ]
    }
    ],
    "apprunconf": [
    {
        "setpath": "true",
        "setlibpath": "true",
        "setpythonpath": "false",
        "setpythonhome": "false",
        "setpythondontwritebytecode": "false",
        "setxdgdatadirs": "false",
        "setperllib": "false",
        "setgsettingsschemadir": "false",
        "setqtpluginpath": "false",
        "exec": "/usr/bin/gosigndesktop"
    }
    ],
    "authors": [
    {
        "type": "Author",
        "author": "InfoCert S.p.a.",
        "url": "https://www.firma.infocert.it"
    },
    {
        "type": "AppImage Maintainer",
        "author": "enzotib",
        "url": "no-url"
    }
    ]
}
1 Like

Salve Vincenzo, grazie innanzitutto per la preziosa guida.
Seguendola non ho avuto alcuna difficoltà a generare il file appimage.
Non riesco però a portare a termine l’autenticazione via browser e, quindi, ad utilizzare Gosign.
Ho cercato sia nella home directory sia in /usr/share/application, ma non ho file GoSign_Desktop.desktop.

1 Like

Ciao Enrico, se tutto il resto ha funzionato regolarmente, non saprei dire perché non è stato creato il file .desktop nella directory ~/.local/share/applications/
Faro qualche prova e se ci capisco qualcosa ti faccio sapere.

Ho verificato, e funziona: nella directory (nascosta) .local, sottodirectory share/applications, trovo il file di nome

appimagekit_65c603dd688a63b6c291439cf7f6ddb4-GoSign_Desktop.desktop

(suppongo che il codice alfanumerico cambi da installazione a installazione).
Devi aprire questo file con un editor e aggiungere %Ualla fine della prima riga che inizia con Exec, lasciando uno spazio prima dell’aggiunta.

Nella guida lo facevo in automatico con un comando sed, ma si può fare anche a mano con l’editor.

Caro Vincenzo, scusami ma non sono riuscito a risponderti prima. Io non ce l’ho il file. Ho fatto anche una ricerca partendo da /, ma nulla.
Con calma farò un secondo tentativo
Grazie

Caro Vincenzo,

grazie per la guida. L’ho seguita e sembra aver funzionato: ora ho l’applicazione GoSign Desktop negli Accessori e si apre correttamente.

Però anch’io non riesco a fare l’autenticazione tramite browser. Quando clicco su “Accedi o registrati” nell’applicazione ottengo una finestra con il messaggio di errore “Impossibile avviare il browser predefinito. Errore di input/output.”. Come posso risolvere il problema? C’è qualche configurazione che si può cambiare per permettere a GoSign di aprire il browser?

Ho fatto un altro tentativo e mi rispondo parzialmente da solo: deve essere un problema di Firefox. Ho provato a cambiare il browser predefinito da Firefox a Microsoft Edge e sono riuscito a completare l’accesso tramite browser. @enzotib che browser hai usato?

Scusate se resuscito questo argomento.
Sapete se è possibile utilizzare una smartcard (CNS) tramite apposito lettore?
Perché in Impostazioni → Firma dispositivo, non viene rilevato nessun dispositivo.

Mi aggiungo anche io alla conversazione anche se è passato qualche mese.

Nonostante la guida di Vincenzo, dopo aver convertito il pacchetto DEB in AppImage non sono stato in grado di far aprire la pagina di login su browser.

Usando la spin KDE di Fedora 41, ho potuto creare velocemente una entry nel launcher delle app con icona, scheme-hadler per diker:// e flag %U, ma comunque non funzionava, anche aggiungendo la variabile d’ambiente BROWSER=xdg-open.
Semplicemente non apriva proprio il browser, impedendomi di loggare.

Ho provato a usare bottles per cercare di installare la versione per Windows con wine, ma pare che nonostante tutto questo tempo sia ancora impossibile farlo funzionare.

A quel punto ho provato a usare il tool alien per convertire direttamente il pacchetto da .deb a .rpm, usando alien --to-rpm --scripts gosign-desktop.deb, però per qualche motivo questo nuovo pacchetto risultava avere come dipendenze librerie ARM64 che ovviamente non potevo avere su una macchina x86_64, dunque dnf mi impediva di installarlo.


Dopo questa premessa, alla fine quello che ha funzionato è stato spacchettare il tutto e procedere a una installazione “manuale”, sperando di avere tutte le librerie giuste.

Ecco quello che ho fatto:

  1. Estrazione del contenuto del pacchetto
mkdir gosign_temp
cd gosign_temp
ar x ../gosign-desktop.deb

tar -xf data.tar.*

In questo modo ho ottenuto dentro gosign_temp la struttura delle cartelle come fossero quelle di destinazione (/usr/bin /usr/lib /usr/share).

  1. Installazione “permanente”
sudo mkdir -p /opt/gosign
sudo cp -r gosign_temp/usr/* /opt/gosign/
sudo ln -s /opt/gosign/bin/gosigndesktop /usr/local/bin/gosigndesktop

Così ho copiato i file di GoSign in una nuova cartella nella directory delle app e ho creato un link simbolico in /usr/local/bin in modo da avere disponibile direttamente il comando gosigndesktop

  1. Riparazione delle librerie mancanti

A questo punto, eseguendo GoSign da terminale ho notato subito che si fermava a una schermata bianca, e nei registri compariva questa libreria mancante: libbz2.so.1.0.

Ho provato semplicemente a installare la libreria bzip2 con sudo dnf install bzip2-devel-1.0.8-19.fc41.x86_64 ma non è stato sufficiente, perché voleva quella versione specifica, che nessun pacchetto forniva.
A quel punto, ho provato brutalmente a linkare libbz2.so.1.0 al pacchetto di sistema:

sudo ln -s /lib64/libbz2.so.1.0.8 /lib64/libbz2.so.1.0

Incredibilmente, dopo aver riavviato il terminale e rilanciato gosigndesktop sono arrivato alla schermata di login, che ovviamente non funzionava perché l’handler non era registrato.

  1. Creazione del file .desktop con le informazioni sull’app

Per risolvere il problema di login e la mancanza dell’icona, oltre all’assenza dell’app nel launcher, mi è bastato copiare manualmente il file gosigndesktop.desktop e la relativa icona dalla cartella share presente nel pacchetto estratto nelle posizioni corrette:

cp /opt/gosign/share/applications/gosigndesktop.desktop ~/.local/share/applications/
sudo cp /opt/gosign/share/pixmaps/gosigndesktop.png /usr/share/icons/hicolor/96x96/apps/

Così facendo, l’app dovrebbe comparire automaticamente nel launcher con nome, icona, descrizione e categoria già corrette, l’handler registrato (è indicato all’interno del file .desktop alla voce MimeType) e il flag %U già inserito.


Incerto dei risultati ottenuti, ho effettuato diverse prove e sembrerebbe funzionare tutto.

Test effettuati:
Login tramite browser
Verifica della firma
Estrazione dei file dalle buste firmate .p7m
Firma tramite firma remota InfoCert (PAdES - CAdES con e senza elemento grafico)
Firma tramite dispositivo USB*

*Per questa prova mi sono fatto prestare una chiavetta DigitalDNA Key bit4id, che è stata riconosciuta senza problemi (sul computer era già installato il software di firma bit4id, quindi non saprei se quello includesse driver particolari che normalmente non sarebbero presenti).

Detto questo, spero che questa integrazione alla discussione sia stata gradita.
Ogni tanto è divertente mettersi a smanettare per cercare di risolvere problematiche simili, ma comunque spero che InfoCert possa pensare in futuro di prendere in considerazione anche altre distribuzioni Linux come Fedora (mi accontenterei anche di pacchetti universali come Flatpak o anche solo AppImage, ma chi siamo noi per chiedere sforzi così grandi).