[RESOLU] Paquet pour Eraser (Windows)

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
bastien30
Messages : 31
Inscription : 08 mars 2024 - 15:21

20 nov. 2025 - 12:30

Bonjour,

J'ai fait un paquet pour le logiciel Eraser sous Windows, avec update_package() fonctionnel.

setup.py :

Code : Tout sélectionner

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

def install():
    appver = control.version.split('-',1)[0]
    install_msi_if_needed(r'Eraser_%s.msi' % appver)
    remove_desktop_shortcut("Eraser")

def update_package():
    url = control.sources
    appver = control.version.split('-',1)[0]
    bin_zip = "Eraser.exe"
    bin_msi = r'Eraser (x64).msi'
    found = False
    if isfile(bin_zip):
        remove_file(bin_zip)
    for releases in bs_find_all(url, "a", "href"):
        if not "Eraser%20" in releases["href"]:
            continue
        if releases["href"].endswith(r'.exe/download'):
            if any(s in releases["href"] for s in ("Alpha", "Beta", "Runtime", "runtime")):
                continue
            else:
                version = releases["href"].split("%20")[2].split(".exe")[0]
                if Version(version) > Version(appver):
                    url_dl = releases["href"]
                    found = True
                    break
    
    if found:
        print(r'Latest version is %s' % version)
        wget(url_dl, bin_zip)
        bin_version = get_version_from_binary(bin_zip)
        if bin_version != version:
            error("Installer version is not the same as specified on download page !")
        else:
            unzip_with_7zip(filename=bin_zip, target=".", filenames=bin_msi, extract_with_full_paths=False)
            os.rename(bin_msi, r'Eraser_%s.msi' % version)
            remove_file(bin_zip)

            # Changing version of the package
            control.version = '%s-%s'%(version, control.version.split('-')[-1])
            control.save_control_to_wapt()
    else:
        print("Already up to date")
    
    remove_outdated_binaries(version)
control :

Code : Tout sélectionner

package           : xxx-eraser
version           : 6.2.0.2996-2
architecture      : x64
section           : base
priority          : optional
name              : Eraser
categories        : Security,Utilities
maintainer        : XXXX
description       : Eraser permet de supprimer de façon sécurisé des fichiers ou des dossiers
depends           : 
conflicts         : 
maturity          : 
locale            : all
target_os         : windows
min_wapt_version  : 
sources           : https://eraser.heidi.ie/download/
installed_size    : 
impacted_process  : Eraser
description_fr    : 
description_pl    : 
description_de    : 
description_es    : 
description_pt    : 
description_it    : 
description_nl    : 
description_ru    : 
audit_schedule    : 
editor            : The Eraser Project
keywords          : 
licence           : GNU GPL
homepage          : https://eraser.heidi.ie/
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
Répondre