[RESUELTO] La función Session_cleanup no funciona para la extensión LibreOffice Fantastic Cartable

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
brice73
Mensajes: 42
Inscripción: 13 de febrero de 2023 - 8:05 a. m.

14 de abril de 2026 - 10:41

Buen día,

Hace algún tiempo, intenté empaquetar la extensión "Fantastic Schoolbag" para LibreOffice. Tras algunas dificultades, logré empaquetarla y la comparto aquí por si le resulta útil a alguien. (Este paquete depende de otro paquete que instala LibreOffice)

Código: Seleccionar todo

# -*- 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")
Mi problema es que la función `session_cleanup()` no desinstala automáticamente la extensión de los perfiles de usuario después de que se haya desinstalado el paquete Wapt. Sin embargo, cuando pruebo la función `session_cleanup()` en PyScripter, `installed_softwares('LibreOffice')` devuelve correctamente una lista, y `run_notfatal(r'"C:\Program Files\LibreOffice\program\unopkg.exe" remove vnd.cmfpmatik.cartablefantastique') desinstala correctamente la extensión del perfil.

Sin embargo, si después de desinstalar el paquete wapt, para un usuario abro un símbolo del sistema y ejecuto la función session_cleanup:

Código: Seleccionar todo

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

U:\>
Parece funcionar correctamente, pero la extensión no se ha desinstalado.

Sorprendentemente, si ejecuto el comando de la función session_cleanup en un símbolo del sistema dentro de la sesión del usuario (con derechos de usuario, no con privilegios de administrador):

Código: Seleccionar todo

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

U:\>
La extensión se desinstala correctamente aquí.

No entiendo de dónde viene el problema. ¿Tienes alguna idea?
WAPT Enterprise 2.6.1.17765
Servidor WAPT bajo Debian 13
Administración/creación de paquetes bajo Windows 11/10
brice73
Mensajes: 42
Inscripción: 13 de febrero de 2023 - 8:05 a. m.

14 de abril de 2026 - 12:04

Logré solucionar el problema. No sé por qué, pero al reemplazar la función run_notfatal() por la función run() en la función session_cleanup(), la extensión ahora se desinstala correctamente y automáticamente de los perfiles de usuario después de que se haya desinstalado el paquete wapt.

Quizás aún haya algo que investigar por qué la función run_notfatal() no funciona mientras que la función run() sí funciona (en session_cleanup). :?:

Así que vuelvo a compartir mi paquete de trabajo (un paquete que tiene otra dependencia que instala LibreOffice) en el que he añadido una función de auditoría:

Código: Seleccionar todo

# -*- 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")
Puedes marcar el hilo como resuelto.
Última edición realizada por brice73 el 14 de abril de 2026 a las 16:58, editado 1 vez.
WAPT Enterprise 2.6.1.17765
Servidor WAPT bajo Debian 13
Administración/creación de paquetes bajo Windows 11/10
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

14 de abril de 2026 - 13:12

Hola Brice,

normalmente esto no debería tener ningún impacto... Para tu prueba, ¿estás seguro de que el número de paquete se incrementó correctamente y que la base de datos local de waptservice se actualizó correctamente con el último comando de desinstalación?

Dado que el paquete ya no está presente cuando se ejecuta session_cleanup, su código se mantiene en la base de datos local para ejecutarse en las sesiones de usuario. Se actualiza cuando se actualiza el paquete en la máquina. ¿

Podrías intentar volver a run_not_fatal() e incrementar correctamente la versión del paquete, y luego ejecutar una instalación/desinstalación nuevamente?

Saludos,

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
brice73
Mensajes: 42
Inscripción: 13 de febrero de 2023 - 8:05 a. m.

14 de abril de 2026 - 17:05

Hola Denis,

efectivamente me aseguré de que el paquete wapt se incrementara, se instalara (y se comprobara la extensión para diferentes usuarios) y luego se desinstalara, antes de verificar que la extensión se hubiera desinstalado correctamente para los usuarios.

Lo intenté de nuevo con `run_notfatal` en lugar de `run` en `session_cleanup` y, efectivamente, también funciona con `run_notfatal`, así que no tengo ni idea de por qué parecía haber un problema. Quizás la función `session_cleanup` que se ejecutó era en realidad la del paquete anterior (que era incorrecta) y no la del último instalado...

En cualquier caso, no parece haber ninguna diferencia entre `run` y `run_notfatal`.

Saludos cordiales,

Brice
WAPT Enterprise 2.6.1.17765
Servidor WAPT bajo Debian 13
Administración/creación de paquetes bajo Windows 11/10
lfkl
Mensajes: 23
Inscripción: 11 de abril de 2019 - 05:51

16 de abril de 2026 - 09:21

Gracias por compartir este paquete; lo necesitábamos mucho y me costó bastante encontrarlo.

¿Sería posible integrarlo en la tienda de Wapt si el autor está de acuerdo?

Saludos cordiales.
brice73
Mensajes: 42
Inscripción: 13 de febrero de 2023 - 8:05 a. m.

16 de abril de 2026 - 14:19

Hola lfkl,

me alegra saber que este paquete te resulta útil. :) A mí también me dio muchos problemas, con comandos aparentemente ineficaces, una instalación aparentemente defectuosa para todos los usuarios (--shared) (la extensión se detectaba e instalaba, pero fallaba) y documentación incompleta. La única instalación que funcionó fue la que se realizaba en cada perfil de usuario.

Agradecería mucho que Tranquil IT añadiera este paquete a la tienda, sin duda después de verificarlo y realizar las modificaciones/adaptaciones necesarias. :?:

Atentamente
WAPT Enterprise 2.6.1.17765
Servidor WAPT bajo Debian 13
Administración/creación de paquetes bajo Windows 11/10
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

16 de abril de 2026 - 15:29

Hola Brice,

estoy reenviando este mensaje al equipo de soporte que administra la tienda.

Gracias por tus comentarios. :-)

Marco el tema como resuelto.

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
Bloqueado