Page 1 sur 1

[RESOLU] Paquet pour Eraser (Windows)

Publié : 20 nov. 2025 - 12:30
par bastien30
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    :