[RISOLTO] La funzione Session_cleanup non funziona per l'estensione LibreOffice Fantastic Cartable

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

14 aprile 2026 - 10:41

Buongiorno,

Qualche tempo fa, stavo cercando di creare un pacchetto dell'estensione "Fantastic Schoolbag" per LibreOffice. Dopo qualche difficoltà, ci sono riuscito e lo condivido qui nel caso possa essere utile a qualcuno. (Questo pacchetto dipende da un pacchetto che installa LibreOffice.)

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""Pour information : installation avec unopkg.exe pour tous les utilisateurs (argument --shared) inopérante (avec LO 25.8.6)
    -> utiliser unopkg.exe pour chaque utilisateur via fonction session_setup() """


source_dir=makepath('C:','cachefileWAPT','LibreOffice_extensions','Lbo_CartableFantastique_college')

def install():

    #copie du dossier de l'extension en local
    if not isdir(source_dir):
        mkdirs(source_dir)
        print(f"Copie de l'extension Cartable Fantastique dans {source_dir}")
        filecopyto('Lbo_CartableFantastique_college.v5.oxt',source_dir)

    print("Installation terminée avec succès")


def session_setup():

    run(r'"C:\Program Files\LibreOffice\program\unopkg.exe" add --suppress-license "C:\cachefileWAPT\LibreOffice_extensions\Lbo_CartableFantastique_college\Lbo_CartableFantastique_college.v5.oxt"')

def session_cleanup():

    r"""Désinstallation de l'extension dans les profils utilisateurs
        Attention, pour obtenir l'id de désinstallation de l'extension utiliser unopkg.com list et non unopkg.exe list qui ne renvoie rien"""

    if installed_softwares('LibreOffice'):

        run_notfatal(r'"C:\Program Files\LibreOffice\program\unopkg.exe" remove vnd.cmfpmatik.cartablefantastique')

def uninstall():

    print("Suppression du dossier de l'extension Cartable Fantastique")

    if isdir(source_dir):
        remove_tree(source_dir)
    if dir_is_empty(makepath('C:','cachefileWAPT','LibreOffice_extensions')):
        remove_tree(makepath('C:','cachefileWAPT','LibreOffice_extensions'))

    print("Désinstallation terminée avec succès")
Il mio problema è che la funzione `session_cleanup()` non disinstalla automaticamente l'estensione dai profili utente dopo la disinstallazione del pacchetto Wapt. Tuttavia, quando testo la funzione `session_cleanup()` in PyScripter, `installed_softwares('LibreOffice')` restituisce correttamente un elenco e `run_notfatal(r'"C:\Program Files\LibreOffice\program\unopkg.exe" remove vnd.cmfpmatik.cartablefantastique') disinstalla correttamente l'estensione dal profilo.

Tuttavia, se dopo la disinstallazione del pacchetto wapt, per un utente apro un prompt dei comandi ed eseguo la funzione session_cleanup:

Codice: Seleziona tutto

U:\>wapt-get session-cleanup col73-libreoffice-extension-cartable-fantastique-college
Using config file: C:\Program Files (x86)\wapt\wapt-get.ini
0

U:\>
Sembra funzionare correttamente, ma l'estensione non viene disinstallata.

Sorprendentemente, se eseguo il comando della funzione session_cleanup in un prompt dei comandi all'interno della sessione dell'utente (con diritti utente, non privilegi di amministratore):

Codice: Seleziona tutto

U:\>"C:\Program Files\LibreOffice\program\unopkg.exe" remove vnd.cmfpmatik.cartablefantastique

U:\>
L'estensione si disinstalla correttamente in questo caso.

Non capisco da dove provenga il problema. Hai qualche idea?
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

14 aprile 2026 - 12:04

Sono riuscito a risolvere il problema. Non so perché, ma sostituendo la funzione run_notfatal() con la funzione run() all'interno della funzione session_cleanup(), l'estensione ora si disinstalla correttamente e automaticamente dai profili utente dopo la disinstallazione del pacchetto wapt.

Forse c'è ancora qualcosa da indagare sul perché la funzione run_notfatal() non funzioni mentre la funzione run() funziona (in session_cleanup). :?:

Quindi, condivido di nuovo il mio pacchetto funzionante (un pacchetto che ha un'altra dipendenza che installa LibreOffice) in cui ho aggiunto una funzione di controllo:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""Pour information : installation avec unopkg.exe pour tous les utilisateurs (argument --shared) inopérante (avec LO 25.8.6)
    -> utiliser unopkg.exe pour chaque utilisateur via fonction session_setup() """


source_dir=makepath('C:','cachefileWAPT','LibreOffice_extensions','Lbo_CartableFantastique_college')

def install():

    #copie du dossier de l'extension en local
    if not isdir(source_dir):
        mkdirs(source_dir)

    print(f"Copie de l'extension Cartable Fantastique dans {source_dir}")
    filecopyto('Lbo_CartableFantastique_college.v5.oxt',source_dir)

    print("Installation terminée avec succès")

def audit():

    if not isfile(r'C:\cachefileWAPT\LibreOffice_extensions\Lbo_CartableFantastique_college\Lbo_CartableFantastique_college.v5.oxt'):
        print("Attention, l'extension Cartable Fantastique n'est pas présente sur le poste, elle ne pourra pas s'installer pour les prochains utilisateurs. Veuillez réinstaller le paquet")
        return("ERROR")
    else:
        return("OK")

def session_setup():

    run(r'"C:\Program Files\LibreOffice\program\unopkg.exe" add --suppress-license "C:\cachefileWAPT\LibreOffice_extensions\Lbo_CartableFantastique_college\Lbo_CartableFantastique_college.v5.oxt"')

def session_cleanup():

    r"""Désinstallation de l'extension dans les profils utilisateurs
        Attention, pour obtenir l'id de désinstallation de l'extension utiliser unopkg.com list et non unopkg.exe list qui ne renvoie rien"""

    if installed_softwares('LibreOffice'):

        run(r'"C:\Program Files\LibreOffice\program\unopkg.exe" remove vnd.cmfpmatik.cartablefantastique')

def uninstall():

    print("Suppression du dossier de l'extension Cartable Fantastique")

    if isdir(source_dir):
        remove_tree(source_dir)
    if dir_is_empty(makepath('C:','cachefileWAPT','LibreOffice_extensions')):
        remove_tree(makepath('C:','cachefileWAPT','LibreOffice_extensions'))

    print("Désinstallation terminée avec succès")
È possibile contrassegnare la discussione come risolta.
Ultima modifica di brice73 il 14 aprile 2026 alle 16:58, modificato 1 volta.
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
Avatar utente
dcardon
Esperto WAPT
Messaggi: 1908
Registrazione: 18 giugno 2014 - 09:58
Ubicazione: Saint Sébastien sur Loire
Contatto:

14 aprile 2026 - 13:12

Ciao Brice,

normalmente questo non dovrebbe avere alcun impatto... Per il tuo test, sei sicuro che il numero del pacchetto sia stato incrementato correttamente e che il database locale di waptservice sia stato aggiornato correttamente con l'ultimo comando di disinstallazione?

Poiché il pacchetto non è più presente quando viene avviato session_cleanup, il suo codice viene mantenuto nel database locale per essere eseguito nelle sessioni utente. Viene aggiornato quando il pacchetto viene aggiornato sulla macchina.

Potresti provare a tornare a run_not_fatal() e incrementare correttamente la versione del pacchetto, quindi eseguire nuovamente un'installazione/disinstallazione?

Cordiali saluti,

Denis
Denis Cardon - Tranquil IT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

14 aprile 2026 - 17:05

Ciao Denis,

mi ero effettivamente assicurato che il pacchetto wapt fosse stato incrementato, installato (e che l'estensione fosse stata verificata per i diversi utenti) e poi disinstallato, prima di verificare che l'estensione fosse stata disinstallata correttamente per gli utenti.

Ho riprovato con `run_notfatal` invece di `run` in `session_cleanup` e in effetti funziona anche con `run_notfatal`, quindi non ho davvero idea del perché sembrasse esserci un problema! Forse la funzione `session_cleanup` che è stata eseguita era in realtà quella del pacchetto precedente (che era errata) e non quella dell'ultimo installato...?!

In ogni caso, non sembra esserci alcuna differenza tra `run` e `run_notfatal`.

Cordiali saluti,

Brice
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
lfkl
Messaggi: 23
Registrazione: 11 apr 2019 - 05:51

16 aprile 2026 - 09:21

Grazie per aver condiviso questo pacchetto; ne avevamo davvero bisogno qui, e ho faticato a trovarne uno anch'io...

Sarebbe possibile integrarlo nel Wapt Store se l'autore fosse d'accordo?

Cordiali saluti.
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

16 aprile 2026 - 14:19

Ciao lfkl,

sono contento di sapere che questo pacchetto ti sia utile. :) Anche a me ha dato parecchi problemi, con comandi apparentemente inefficaci, un'installazione apparentemente malfunzionante per tutti gli utenti (--shared) (l'estensione è stata rilevata e installata ma non ha funzionato correttamente) e documentazione incompleta! L'unica installazione che ho trovato funzionante è stata quella eseguita all'interno di ciascun profilo utente.

Sarei molto grato se Tranquil IT volesse aggiungere questo pacchetto allo store, ovviamente dopo verifica ed eventuali modifiche/adattamenti. :?:

Cordiali saluti
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
Avatar utente
dcardon
Esperto WAPT
Messaggi: 1908
Registrazione: 18 giugno 2014 - 09:58
Ubicazione: Saint Sébastien sur Loire
Contatto:

16 aprile 2026 - 15:29

Ciao Brice,

inoltro questo messaggio al team di supporto che gestisce il negozio.

Grazie per il feedback. :-)

Contrassegno la discussione come risolta.

Denis
Denis Cardon - Tranquil IT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
Bloccato