[GELÖST] Die Funktion Session_cleanup funktioniert nicht für die LibreOffice Fantastic Cartable-Erweiterung

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
brice73
Nachrichten: 42
Anmeldung: 13. Februar 2023 – 8:05 Uhr

14. April 2026 - 10:41 Uhr

Guten Morgen,

Vor einiger Zeit versuchte ich, die Erweiterung „Fantastic Schoolbag“ für LibreOffice zu paketieren. Nach einigen Schwierigkeiten gelang es mir schließlich, und ich stelle das Paket hier zur Verfügung, falls es für jemanden nützlich sein könnte. (Dieses Paket benötigt ein Installationspaket für LibreOffice.)

Code: Alle auswählen

# -*- 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")
Mein Problem ist, dass die Funktion `session_cleanup()` die Erweiterung nach der Deinstallation des Wapt-Pakets nicht automatisch aus den Benutzerprofilen entfernt. Wenn ich die Funktion `session_cleanup()` jedoch in PyScripter teste, gibt `installed_softwares('LibreOffice')` korrekt eine Liste zurück, und `run_notfatal(r'"C:\Program Files\LibreOffice\program\unopkg.exe" remove vnd.cmfpmatik.cartablefantastique')` deinstalliert die Erweiterung korrekt aus dem Profil.

Wenn ich jedoch nach der Deinstallation des wapt-Pakets für einen Benutzer die Eingabeaufforderung öffne und die Funktion session_cleanup ausführe:

Code: Alle auswählen

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

U:\>
Es scheint korrekt zu funktionieren, aber die Erweiterung wird nicht deinstalliert.

Überraschenderweise funktioniert es, wenn ich den Befehl session_cleanup function in einer Eingabeaufforderung innerhalb der Benutzersitzung (mit Benutzerrechten, nicht mit Administratorrechten) ausführe:

Code: Alle auswählen

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

U:\>
Die Erweiterung lässt sich hier problemlos deinstallieren.

Ich verstehe nicht, woher das Problem kommt. Haben Sie eine Idee?
WAPT Enterprise 2.6.1.17765
WAPT-Server unter Debian 13
Administration/Paketerstellung unter Windows 11/10
brice73
Nachrichten: 42
Anmeldung: 13. Februar 2023 – 8:05 Uhr

14. April 2026 - 12:04 Uhr

Ich konnte das Problem lösen. Ich weiß nicht warum, aber indem ich die Funktion `run_notfatal()` in der Funktion `session_cleanup()` durch die Funktion `run()` ersetzt habe, wird die Erweiterung nun nach der Deinstallation des Wapt-Pakets korrekt und automatisch aus den Benutzerprofilen entfernt.

Vielleicht gibt es noch etwas zu untersuchen, warum die Funktion run_notfatal() nicht funktioniert, während die Funktion run() (in session_cleanup) funktioniert. :?:

Ich teile also erneut mein funktionierendes Paket (ein Paket mit einer weiteren Abhängigkeit, die LibreOffice installiert), in dem ich eine Überwachungsfunktion hinzugefügt habe:

Code: Alle auswählen

# -*- 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")
Sie können den Thread als gelöst markieren.
Zuletzt bearbeitet von brice73 am 14. April 2026 um 16:58 Uhr, 1 Mal bearbeitet.
WAPT Enterprise 2.6.1.17765
WAPT-Server unter Debian 13
Administration/Paketerstellung unter Windows 11/10
Benutzeravatar
dcardon
WAPT-Experte
Nachrichten: 1953
Anmeldung: 18. Juni 2014 - 09:58 Uhr
Ort: Saint Sébastien sur Loire
Kontakt:

14. April 2026 – 13:12 Uhr

Hallo Brice,

normalerweise sollte das keine Auswirkungen haben. Bist du dir bei deinem Test sicher, dass die Paketnummer korrekt erhöht wurde und die lokale waptservice-Datenbank mit dem letzten Deinstallationsbefehl ordnungsgemäß aktualisiert wurde?

Da das Paket beim Start von session_cleanup nicht mehr vorhanden ist, wird sein Code in der lokalen Datenbank gespeichert, um in Benutzersitzungen ausgeführt zu werden. Er wird aktualisiert, wenn das Paket auf dem Rechner aktualisiert wird.

Könntest du bitte versuchen, wieder auf run_not_fatal() umzuschalten, die Paketversion korrekt zu erhöhen und anschließend eine Installation/Deinstallation erneut durchzuführen?

Viele Grüße,

Denis
Denis Cardon – Tranquil IT
Teilen Sie Ihre Erfahrungen auf WAPT! Senden Sie uns Ihre Blog- und Artikel-URLs im „Ihre Meinung des Forums, und wir werden sie auf der WAPT-
brice73
Nachrichten: 42
Anmeldung: 13. Februar 2023 – 8:05 Uhr

14. April 2026 – 17:05 Uhr

Hallo Denis,

ich hatte tatsächlich sichergestellt, dass das wapt-Paket inkrementiert, installiert (und die Erweiterung für verschiedene Benutzer überprüft) und anschließend deinstalliert wurde, bevor ich die korrekte Deinstallation für die Benutzer überprüfte.

Ich habe es erneut mit `run_notfatal` anstelle von `run` in `session_cleanup` versucht, und tatsächlich funktioniert es auch mit `run_notfatal`. Daher habe ich keine Ahnung, warum es anscheinend ein Problem gab! Vielleicht wurde die `session_cleanup`-Funktion des vorherigen Pakets ausgeführt (was falsch war) und nicht die des zuletzt installierten Pakets ...?!

Jedenfalls scheint es keinen Unterschied zwischen `run` und `run_notfatal` zu geben.

Viele Grüße,

Brice
WAPT Enterprise 2.6.1.17765
WAPT-Server unter Debian 13
Administration/Paketerstellung unter Windows 11/10
lfkl
Nachrichten: 32
Anmeldung: 11. April 2019 - 05:51 Uhr

16. April 2026 - 09:21 Uhr

Vielen Dank für die Bereitstellung dieses Pakets; es hat uns hier sehr gefehlt, und ich hatte selbst lange danach gesucht.

Wäre es möglich, es in den Wapt Store aufzunehmen, falls der Autor einverstanden ist?

Mit freundlichen Grüßen.
brice73
Nachrichten: 42
Anmeldung: 13. Februar 2023 – 8:05 Uhr

16. April 2026 – 14:19 Uhr

Hallo lfkl,

es freut mich zu hören, dass Ihnen dieses Paket nützlich ist. :) Ich hatte damit ebenfalls viele Probleme, unter anderem mit scheinbar wirkungslosen Befehlen, einer anscheinend fehlerhaften Installation für alle Benutzer (Option `--shared`) (die Erweiterung wurde zwar erkannt und installiert, funktionierte aber nicht richtig) und einer unvollständigen Dokumentation! Die einzige Installation, die bei mir funktionierte, war die, die ich in jedem Benutzerprofil durchführte.

Ich wäre Ihnen sehr dankbar, wenn Tranquil IT dieses Paket nach Prüfung und gegebenenfalls Anpassungen/Änderungen in den Store aufnehmen würde. :?:

Mit freundlichen Grüßen
WAPT Enterprise 2.6.1.17765
WAPT-Server unter Debian 13
Administration/Paketerstellung unter Windows 11/10
Benutzeravatar
dcardon
WAPT-Experte
Nachrichten: 1953
Anmeldung: 18. Juni 2014 - 09:58 Uhr
Ort: Saint Sébastien sur Loire
Kontakt:

16. April 2026 – 15:29 Uhr

Hallo Brice,

ich leite diesen Beitrag an das Support-Team weiter, das den Shop betreut.

Danke für das Feedback. :-)

Ich markiere das Thema als gelöst.

Denis
Denis Cardon – Tranquil IT
Teilen Sie Ihre Erfahrungen auf WAPT! Senden Sie uns Ihre Blog- und Artikel-URLs im „Ihre Meinung des Forums, und wir werden sie auf der WAPT-
Gesperrt