Création de paquets WAPT

De Wiki des Responsables Techniques du 85
(Redirigé depuis Logiciels:CreerWAPT)
Aller à : navigation, rechercher

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


Waptbuildupload.PNG

Votre paquet va être créer en .wapt puis il va être signé et enfin envoyée sur le serveur.