Création de paquets WAPT
Sommaire
Création de paquets logiciels pour WAPT
Une des grandes forces de WAPT est de pouvoir soi-même créer des paquets logiciels, pour une utilisation interne ou bien même pour les partager avec la communauté.
Configurer le client WAPT pour faire du développement de paquet
Il vous faut modifier le fichier C:\wapt\wapt-get.ini comme ceci (adapté a vous bien-sur)
[global]
waptupdate_task_period=120
wapt_server=https://wapt
repo_url=http://wapt/wapt
use_hostpackages=1
private_key=c:\private\key.pem
default_package_prefix=aiz
default_sources_suffix=wapt
default_sources_root=c:\waptdev
Rechargez ensuite le service (en ligne de commande):
net stop WAPTService
net start WAPTService
Création de paquet
Installer tout d’abord le paquet wapt waptdev sur votre machine, il est présent dans les dépots pulique de tranquil.it.
Si vous êtes sous XP : installez d'abord ceci sinon cela provoquera une erreur : http://www.microsoft.com/en-us/download/details.aspx?id=8483
Télécharger le logiciel que vous souhaitez packager, ici dans notre exemple VLC
Ouvrer ensuite une console cmd et faites:
wapt-get make-template C:\Users\sfonp\Downloads\vlc_2.1.5.exe aiz-vlc
Cela vous créer un model de paquet pour l'executable du logiciel avec des paramètres par défaut, il sera situé dans le dossier : C:\waptdev\aiz-vlc-wapt\
Celui ci contient
- Un fichier texte control qui contient les informations d'identification du paquet (il contient notamment la version du paquet et les dépendances) ;
- Un script python setup.py qui contient les instructions qui manipulent les fichiers propres du logiciel (nous allons y toucher) ;
- Les fichiers propres du logiciel (MSI, exe, fichiers de réponse, fichiers ini...) vlc_2.1.5.exe dans notre cas ;
- Un fichier manifest (signature numérique) permettant de sécuriser le contenu du paquet WAPT et d'identifier son auteur (nous n'y touchons pas).
Dans le cas de vlc, le make-template n'est pas capable de récupérer le numéro de version. Il faut donc le renseigner dans :
c:\waptdev\aiz-vlc-wapt\WAPT\control
Editer le et modifier le comme ceci:
package : aiz-vlc
version : 2.1.5-0
architecture : all
section : base
priority : optional
maintainer : TIS tranquil-it-systems.fr
description : vlc media player
depends :
conflicts :
sources :
A noter qu'un -0 doit être rajouter à la fin.
Ce -0 permet d’incrémenter une sous version du paquet pour forcer la réinstallation sans modifier la version réel du logiciel.
Nous allons suite modifier le fichier C:\waptdev\aiz-vlc-wapt\setup.py
Editer le avec pyscripter
Pour réouvrir et rééditer le paquet avec pyscripter (si vous l'avez fermée après l’exécution du make-template), Exécutez la commande :
wapt-get edit aiz-vlc
from setuphelpers import *
uninstallkey = ['VLC media player']
uninstallstring=[]
def install():
killalltasks('vlc.exe')
print("installing VLC exe")
run('"vlc-2.1.5-win32.exe" /S --no-qt-privacy-ask')
Je continue d’ailleurs de m'inspirer de http://wpkg.org/Category:Silent_Installers pour connaitre les commandes exacte.
J'ai également ajouter l'uninstallkey pour faire fonctionner la désinstallation.
Quand le logiciel est désinstallable avec une uninstallkey, il suffit juste de la renseigner, vous pouvez la trouver comme ceci (il faut bien-sur installer le logiciel en mode manuel avant pour trouver) : Pour connaître la clé de registre, on peut utiliser la fonction wapt-get list-registry mindview qui liste les applications correspondant au mot clé mindview
Ou il faut parfois chercher.
Quand une uninstallkey n'est pas dispo on peut utiliser les uninstallstring
exemple:
uninstallstring = ['"%s" --uninstall --system-level --force-uninstall --qn' % makepath(programfiles32,'Chromium','Application','39.0.2168.0','Installer','setup.exe')]
En savoir plus ici : https://www.wapt.fr/fr/doc/CreationPaquets/package_exe_evo/index.html#desinstallation-non-silencieuse-avec-install-exe-if-needed
Vous pouvez tester toute l'install et remove en cliquant sur clique droit sur chaque fonction, puis executer dans pyscripter.
Upload du paquet wapt
Nous allons maintenant upload le paquet vers le dépôt privé:
Dans une commande cmd
wapt-get build-upload c:\waptdev\aiz-vlc-wapt aiz-vlc
Vous pouvez aussi, (lorsque pyscripter est ouvert) faire un clique droit sur build-upload, puis executée
Votre paquet va être créer en .wapt puis il va être signé et enfin envoyée sur le serveur.