[GELÖST] Erstellung des Gesper-Softwarepakets

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
Olaplanche
Nachrichten: 178
Anmeldung: 26. Januar 2017 - 11:11 Uhr

25. August 2017 - 08:45 Uhr

Guten Morgen,

Ich erstelle ein neues Paket, um die Gesper-Software bereitstellen zu können.
Installation und Deinstallation funktionieren in meinem Paket einwandfrei, ich möchte die Softwarekonfigurationsdatei jedoch im %appdata%-Verzeichnis des Benutzers ablegen. Dabei stoße ich auf einige Schwierigkeiten. Hier ist mein Code:

Code: Alle auswählen

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

uninstallkey = []

def install():
    print('installing wapt-gesper')
    install_exe_if_needed("Gesper_Install_7.7.2.exe",'/verysilent /TASKS="MSDENonInstall"',key='{A2A6875A-1AAA-467F-948F-76851D7013AA}_is1',min_version='7.7.0.0',killbefore='gesper.exe')
    uninstallkey.remove('{A2A6875A-1AAA-467F-948F-76851D7013AA}_is1')
    create_desktop_shortcut(r'Gesper',target=u'C:\Program Files (x86)\CAP-RH\Gesper\Gesper.exe')
    import tempfile
    pathparamsfile = makepath(tempfile.gettempdir(),'params.ini')
    pathuser = user_appdata()
    data = ur"""[SETUP]
data_server=monserveur
data_access=
archives_path=C:\GESPER_BACKUP
"""
    fichier = open(pathparamsfile, "w")
    fichier.write(data)
    fichier.close()
    mkdirs(makepath('%s',Gesper) % pathuser)
    filecopyto('%s/params.ini' % pathparamsfile,'%s/Gesper' % pathuser)
    remove_file(pathparamsfile)

def uninstall():
    print('uninstalling wapt-geper')
    run('"C:\Program Files (x86)\CAP-RH\Gesper\unins000.exe" /verysilent')
    run('"MsiExec.exe" /I{900D6ADF-DF79-46FB-A58E-E89A73B2A132} /qn')
    remove_desktop_shortcut('Gesper.lnk')
Ich danke Ihnen für Ihre Hilfe
Zuletzt bearbeitet von olaplanche am 06.09.2017 um 14:42 Uhr, 1 Mal bearbeitet.
- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

25. August 2017 - 08:49 Uhr

Hallo,

ich empfehle Ihnen, sich die Sitzungseinstellungen anzusehen:

https://www.wapt.fr/fr/doc/CreationPaqu ... index.html
Olaplanche
Nachrichten: 178
Anmeldung: 26. Januar 2017 - 11:11 Uhr

6. September 2017 - 8:53 Uhr

Guten Morgen,

Nachdem ich meinen Code wie folgt geändert habe:

Code: Alle auswählen

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

uninstallkey = []

def install():
    print('installing wapt-gesper')
    install_exe_if_needed("Gesper_Install_7.7.2.exe",'/verysilent /TASKS="MSDENonInstall"',key='{A2A6875A-1AAA-467F-948F-76851D7013AA}_is1',min_version='7.7.0.0',killbefore='gesper.exe')
    uninstallkey.remove('{A2A6875A-1AAA-467F-948F-76851D7013AA}_is1')
    create_desktop_shortcut(r'Gesper',target=u'C:\Program Files (x86)\CAP-RH\Gesper\Gesper.exe')
    
def session_setup():
    import tempfile
    pathparamsfile = makepath(tempfile.gettempdir(),'params.ini')
    pathuser = user_appdata()
    data = ur"""[SETUP]
data_server=monserveur
data_access=
archives_path=C:\GESPER_BACKUP
"""
    fichier = open(pathparamsfile, "w")
    fichier.write(data)
    fichier.close()
    mkdirs(makepath('%s',Gesper) % pathuser)
    filecopyto('%s/params.ini' % pathparamsfile,'%s/Gesper' % pathuser)
    remove_file(pathparamsfile)

def uninstall():
    print('uninstalling wapt-geper')
    run('"C:\Program Files (x86)\CAP-RH\Gesper\unins000.exe" /verysilent')
    run('"MsiExec.exe" /I{900D6ADF-DF79-46FB-A58E-E89A73B2A132} /qn')
    remove_desktop_shortcut('Gesper.lnk')
Beim Ausführen von session-setup erhalte ich folgende Fehlermeldung:

638 KRITISCH NameError: Der globale Name 'Gesper' ist nicht definiert

Irgendwelche Ideen?

DANKE
- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

6. September 2017 – 13:33 Uhr

Code: Alle auswählen

mkdirs(makepath('%s',Gesper) % pathuser)
Die ' ' fehlen in Gesper
Olaplanche
Nachrichten: 178
Anmeldung: 26. Januar 2017 - 11:11 Uhr

6. September 2017 – 14:42 Uhr

Ich habe mein Problem soeben gelöst, indem ich zwei Codezeilen wie folgt geändert habe:

Code: Alle auswählen

    mkdirs('%s\\Gesper' %pathuser)
    filecopyto(pathparamsfile,'%s/Gesper' % pathuser)
Mein Paket ist nun voll funktionsfähig!
Ich danke Ihnen für Ihre Hilfe
- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
Olaplanche
Nachrichten: 178
Anmeldung: 26. Januar 2017 - 11:11 Uhr

6. September 2017 – 16:01 Uhr

Es gab einen kleinen Tippfehler in der Codezeile zum Deinstallieren von SAP Crystal Reports; hier ist der endgültige Code:

Code: Alle auswählen

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

uninstallkey = []

def install():
    print('installing wapt-gesper')
    install_exe_if_needed("Gesper_Install_7.7.2.exe",'/verysilent /TASKS="MSDENonInstall"',key='{A2A6875A-1AAA-467F-948F-76851D7013AA}_is1',min_version='7.7.0.0',killbefore='gesper.exe')
    uninstallkey.remove('{A2A6875A-1AAA-467F-948F-76851D7013AA}_is1')
    create_desktop_shortcut(r'Gesper',target=u'C:\Program Files (x86)\CAP-RH\Gesper\Gesper.exe')

def session_setup():
    import tempfile
    pathparamsfile = makepath(tempfile.gettempdir(),'params.ini')
    pathuser = user_appdata()
    data = ur"""[SETUP]
data_server=dnsdemonserveur
data_access=
archives_path=C:\GESPER_BACKUP
"""
    fichier = open(pathparamsfile, "w")
    fichier.write(data)
    fichier.close()
    mkdirs('%s\\Gesper' %pathuser)
    filecopyto(pathparamsfile,'%s/Gesper' % pathuser)
    remove_file(pathparamsfile)

def uninstall():
    print('uninstalling wapt-geper')
    run('"C:\Program Files (x86)\CAP-RH\Gesper\unins000.exe" /verysilent')
    run('"MsiExec.exe" /X{900D6ADF-DF79-46FB-A58E-E89A73B2A132} /qn')
    remove_desktop_shortcut('Gesper.lnk')
- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
Olaplanche
Nachrichten: 178
Anmeldung: 26. Januar 2017 - 11:11 Uhr

17. September 2021 – 14:28 Uhr

Guten Morgen,

Codeversion aktualisiert im September 2021:

Code: Alle auswählen

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

uninstallkey = []

# Defining variables
bin_name_string = 'Logiciel Gesper - installation-%s.exe'
bin_temp = 'Logiciel Gesper - installation.exe'
url_dl = 'https://www.aplon.org/Ressources/Documents/T%C3%A9l%C3%A9chargements/Gesper%20(RH)/Logiciel%20Gesper%20-%20installation.exe'
app_uninstallkey = '{A2A6875A-1AAA-467F-948F-76851D7013AA}_is1'
SERVERNAME = 'MONSERVERGESPER' # Le nom NETBIOS du serveur gesper

def install():
    # Initializing variables
    package_version = control.version.split('-',1)[0]
    bin_name = bin_name_string % package_version
    session_setup()
    print('Installing: %s' % bin_name)
    try:
        install_exe_if_needed(bin_name,'/verysilent /TASKS="MSDENonInstall"',key=app_uninstallkey,min_version=package_version,killbefore='gesper.exe',timeout=600)
        uninstallkey.remove(app_uninstallkey)
    except TimeoutExpired:
        pass
        killalltasks('AdminConsole.exe')
        create_desktop_shortcut(r'Gesper',target=u'C:\Program Files (x86)\CAP-RH\Gesper\Gesper.exe')

def session_setup():
    import tempfile
    pathparamsfile = makepath(tempfile.gettempdir(),'params.ini')
    pathuser = user_appdata()
    data = r"""[SETUP]
data_server=%s
data_access=
archives_path=C:\GESPER_BACKUP
""" % SERVERNAME
    fichier = open(pathparamsfile, "w")
    fichier.write(data)
    fichier.close()
    mkdirs('%s\\Gesper' % pathuser)
    filecopyto(pathparamsfile,'%s/Gesper' % pathuser)
    remove_file(pathparamsfile)

def update_package():
    print('Download/Update package content from upstream binary sources')

    # Initializing variables
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt()
    latest_bin = bin_temp
    version = '1.0' # Fake version

    print('Download url is: ' + url_dl)

    # Downloading latest binaries
    if isfile(bin_temp):
        remove_file(bin_temp)
    if not isfile(latest_bin):
        print('Downloading: %s' % latest_bin)
        wget(url_dl, latest_bin, proxies=proxies)


        # Checking version from file
        version_from_file = get_version_from_binary(latest_bin)
        if version != version_from_file:
            os.rename(latest_bin,bin_name_string % version_from_file)
            version = version_from_file

        # Changing version of the package
        control.version = '%s-%s' % (version, int(control.version.split('-')[-1])+1)
        control.save_control_to_wapt()
        print('Changing version to: %s in WAPT\\control' % control.version)

    # Deleting outdated binaries
    remove_outdated_binaries(version)
    # put here what to do to update package content with newer installers.
    # launched with command wapt-get update-package-sources <path-to-wapt-directory>
    # implicit context variables are WAPT, basedir, control, user, params, run
    # if attributes in control are changed, they should be explicitly saved to package file with control.save_control_to_wapt()

def get_proxies():
    import platform
    if platform.python_version_tuple()[0] == '3':
        from urllib.request import getproxies
    else:
        from urllib import getproxies
    return getproxies()


def get_proxies_from_wapt():
    import platform
    proxies = {}
    if platform.system() == 'Windows':
        waptconsole_ini_path = makepath(user_local_appdata(), 'waptconsole', 'waptconsole.ini')
    else:
        waptconsole_ini_path = makepath(user_home_directory(), '.config', 'waptconsole', 'waptconsole.ini')
    if isfile(waptconsole_ini_path):
        proxy_wapt = inifile_readstring(waptconsole_ini_path, 'global', 'http_proxy')
        if proxy_wapt:
            proxies = {'http': proxy_wapt, 'https': proxy_wapt}
    return proxies


def remove_outdated_binaries(version, list_extensions=['exe','msi','deb','rpm','dmg','pkg'], list_filename_contain=None):
    if type(list_extensions) != list:
        list_extensions = [list_extensions]
    if list_filename_contain:
        if type(list_filename_contain) != list:
            list_filename_contain = [list_filename_contain]
    list_extensions = ['.' + ext for ext in list_extensions if ext[0] != '.']
    for file_ext in list_extensions:
        for bin_in_dir in glob.glob('*%s' % file_ext):
            if not version in bin_in_dir:
                remove_file(bin_in_dir)
            if list_filename_contain:
                for filename_contain in list_filename_contain:
                    if not filename_contain in bin_in_dir:
                        remove_file(bin_in_dir)


def get_version_from_binary(filename, parameter='ProductVersion'):
    if filename.endswith('.msi'):
        return get_msi_properties(filename)[parameter]
    else:
        return get_file_properties(filename)[parameter]

def uninstall():
    print('Uninstalling: %s' % control.package)
    run(r'"%s\CAP-RH\Gesper\unins000.exe" /verysilent' % programfiles32)
    run(r'"MsiExec.exe" /X{81BDC5D8-E319-435E-91F5-0896E599717A} /qn')
    remove_desktop_shortcut('Gesper.lnk')
- Installierte WAPT-Version: 2.6.0.16795 Enterprise
- Server-Betriebssystem: Linux / Debian Bookworm
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
Gesperrt