J'ai fait un paquet pour le client desktop ChatGPT pour MacOS, avec update_package() fonctionnel.
Note : d'après leur site, le DMG est compatible avec les processeur ARM uniquement.
Pour Windows, l'application est sur le store, donc il suffit d'utiliser le paquet template dédié à ça : https://wapt.tranquil.it/store/fr/tis-t ... -store-app
setup.py :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
import plistlib
def install():
# Initializing variables
package_version = control.version.split("-")[0]
app_name = control.name
# Installing the package
bin_name= glob.glob('%s*.dmg' % app_name)[0]
install_dmg(bin_name, key="/Applications/%s.app" % app_name, min_version=package_version)
def update_package():
app_name = control.name
bin_name = r'%s.dmg' % app_name
dl_url = r'%s/%s' % (control.sources, bin_name)
plist_file_name = r'Info.plist'
# Downloading and extracting to compare version
if isfile(bin_name):
remove_file(bin_name)
wget(dl_url, bin_name)
if isfile(plist_file_name):
remove_file(plist_file_name)
unzip_with_7zip(bin_name, target=basedir, filenames=["%s Installer/%s.app/Contents/Info.plist" % (app_name, app_name)], extract_with_full_paths=False, recursive=False)
plist_file = get_plist_obj(plist_file_name)
latest_version = plist_file[r'CFBundleShortVersionString']
print(r'Latest %s version is %s' % (app_name, latest_version))
remove_file(plist_file_name)
if Version(latest_version) > Version(control.get_software_version()):
print(r'Latest %s version is %s' % (app_name, latest_version))
# Changing version of the package
control.version = '%s-%s' % (latest_version, control.version.split('-', 1)[-1])
control.save_control_to_wapt()
print('Changing version to: %s in WAPT\\control' % control.version)
else:
print(r'Already up to date !')
def get_plist_obj(plist_file):
""" Returns a plist obj when given the path to a plist file. """
with open(plist_file, 'rb') as fp :
plist_obj = plistlib.load(fp)
return plist_obj
Code : Tout sélectionner
package : xxx-chatgpt
version : 1.2025.231-2
architecture : arm
section : base
priority : optional
name : ChatGPT
categories : Utilities
maintainer : XXXX
description : ChatGPT Officiel Desktop Client
depends :
conflicts :
maturity : PROD
locale : all
target_os : darwin
min_wapt_version : 2.0
sources : https://persistent.oaistatic.com/sidekick/public/
installed_size :
impacted_process : chatgpt
description_fr :
description_pl :
description_de :
description_es :
description_pt :
description_it :
description_nl :
description_ru :
audit_schedule :
editor : OpenAI
keywords :
licence : proprietary_free,wapt_public
homepage : https://chatgpt.com
package_uuid :
valid_from :
valid_until :
forced_install_on :
changelog : https://help.openai.com/en/articles/9703738-chatgpt-macos-app-release-notes
min_os_version :
max_os_version :