Structure d’un paquet WAPT¶
Un package WAPT est un fichier: mimetype: .zip contenant plusieurs éléments:
un fichier
setup.py
à la racine ;un fichier ou plusieurs fichiers binaire.exe à la racine ;
un fichier ou plusieurs autres fichiers additionnels à la racine ;
un fichier
control
dans le dossierWAPT
;un fichier
icon.png
dans le dossierWAPT
;un fichier
certificate.crt
dans le dossierWAPT
;un fichier
manifest.sha256
dans le dossierWAPT
;un fichier
signature.sha256
dans le dossierWAPT
;un fichier
wapt.psproj
dans le dossierWAPT
, ce fichier est utilisé pour stocker les données de configuration PyScripter pour le paquet WAPT ;depuis WAPT 1.8, un dossier caché
.vscode
qui contient un fichierlaunch.json
et un fichiersettings.json
utilisés pour stocker les données de configuration VScode pour le paquet WAPT ;
Le fichier control¶
Le fichier control
est la fiche d’identité du paquet.
package : tis-firefox-esr
version : 62.0-0
architecture : all
section : base
priority : optional
maintainer : Administrateur
description : Firefox Web Browser French
description_fr : Navigateur Web Firefox Français
description_es : Firefox Web Browser
depends :
conflicts :
maturity : PROD
locale : fr
target_os : windows
min_os_version :
max_os_version :
min_wapt_version : 1.6.2
sources :
installed_size :
impacted_process : firefox.exe
audit_schedule :
editor : Mozilla
keywords : Navigateur
licence : MPL
homepage : https://www.mozilla.org/en-US/firefox/organizations/
signer : Tranquil IT
signer_fingerprint: 459934db53fd804bbb1dee79412a46b7d94b638737b03a0d73fc4907b994da5d
signature : MLOzLiz0qCHN5fChdylnvXUZ8xNJj4rEu5FAAsDTdEtQ(...)hsduxGRJpN1wLEjGRaMLBlod/p8w==
signature_date : 20170704-164552
signed_attributes : package,version,architecture,section,priority,maintainer,description,depends,conflicts,maturity,locale,min_os_version,max_os_version,min_wapt_version,sources,installed_size,signer,signer_fingerprint,signature_date,signed_attributes
Paramètre |
Description |
Valeur Exemple |
---|---|---|
|
Nom du paquet |
tis-geogebra |
|
Version du paquet, ne peut pas contenir plus de 5 délimiteurs, le dernier chiffre étant le numéro de version de packaging |
5.0.309.0-1 |
|
Architecture de processeur |
x64 |
|
Type de paquet ( |
base |
|
Niveau de priorité d’installation du paquet (optionnel pour le moment) |
Non pris en charge pour le moment |
|
Auteur du paquet |
Arnold Schwarzenegger <terminator@mydomain.lan> |
|
Description du paquet qui apparaîtra dans la console et sur l’interface web |
The Graphing Calculator for Functions, Geometry, Algebra, Calculus, Statistics and 3D |
|
Description du paquet dans une langue précise |
Calculatrice graphique |
|
Paquets qui doivent être installés avant d’installer le paquet |
tis-java |
|
Paquets à désinstaller avant d’installer ce paquet |
tis-graph |
|
Niveau de maturité du paquet (BETA, DEV, PROD) |
PROD |
|
Environment linguistique prévu pour le paquet |
fr,en,es |
|
OS Accepté par le paquet |
windows,mac,linux |
|
Version minimale de l’OS pour que le paquet soit vu par l’agent WAPT le paquet |
6.0 |
|
Version maximale de l’OS pour que le paquet soit vu par l’agent WAPT le paquet |
10.0 |
|
Version minimale de WAPT pour un fonctionnement correct du paquet |
1.3.8 |
|
Lien de stockage des versions historisées du paquet (commande sources) |
https://srv-svn.mydomain.lan/sources/tis-geogebra-wapt/trunk/ |
|
Espace de disque dur libre minimal requis pour installer le paquet |
254251008 |
|
Indique une liste de processus impactés lors de l’installation du paquet |
firefox.exe |
|
Indique la périodicité pour l’exécution de la fonction audit du paquet |
60 |
|
Indique l’editeur du logiciel integrée dans le paquet |
Mozilla |
|
Indique la licence du logiciel integrée dans le paquet |
GPLV3 |
|
Indique une liste de mots clé correspondant au paquet |
Bureautique,Editeur,calcul |
|
Indique la page d’accueil du site officiel de logiciel integrée dans le paquet |
|
|
Nom commun (CN) du signataire du paquet |
Tranquil IT |
|
Empreinte de la signature du signataire du paquet |
2BAFAF007C174A3B00F12E9CA1E74956 |
|
Hash SHA256 du paquet |
MLOzLiz0qCHN5fChdylnvXUZ8xNJj4rEu5FAAsDTdEtQ(…)hsduxGRJpN1wLEjGRaMLBlod/p8w== |
|
Indique la date de signature du paquet |
20180307-230413 |
|
Liste des attributs signés du paquet |
package, version, architecture, section, priority, maintainer, description, depends, conflicts, maturity, locale, min_wapt_version, sources, installed_size, signer, signer_fingerprint, signature_date, signed_attributes |
Attention
Si le fichier control
comporte des caractères accentués, le fichier doit être enregistré en format UTF-8 (No BOM).
Détails des champs¶
package¶
Nom du paquet WAPT, sans accent, sans espace, sans caractère spécial, sans majuscule.
version¶
De préférence, toujours commencer par la version du logiciel (chiffres uniquement) séparée par des points (.), puis suffixer avec un tiret (-) et le numéro de version de packaging WAPT.
architecture¶
Nouveau dans la version 1.5.
Définit si le paquet pourra s’installer sur une machine équipée d’un processeur 32bits ou 64bits.
Note
Un paquet prévu pour une architecture x64 ne sera pas visible avec un agent WAPT installé sur un poste équipé d’un processeur x86.
Valeurs possibles :
x86 : le paquet est destiné uniquement aux machines avec un processeur 32bits ;
x64 : le paquet est destiné uniquement aux machines avec un processeur 64bits ;
all : le paquet est a destination des machines avec un processeur 32bits OU 64bits ;
section¶
host : paquet machine ;
group : paquet groupe ;
base : paquet logiciel ;
unit : paquet UO ;
priority¶
Cette option n’est pas prise en en charge pour le moment, ce champ permettra à terme de définir la priorité d’installation d’un paquet WAPT.
maintainer¶
Indique le nom du créateur du paquet WAPT.
Note
Indiquer l’adresse email peut être utile.
Utilisez le format Prénom NOM DE FAMILLE <email@example.com>.
description¶
Décrit les fonctionnalités du paquet ; la description sera affichée dans la console, sur l’interface web locale des clients WAPT http://127.0.0.1:8088.
Indication
Ajouter un champ description_fr ou description_es permet par exemple de préciser une description pour une langue précise. Si la langue n’existe pas, l’agent wapt utilisera la champ description classique.
depends¶
Définit quelle(s) dépendance(s) doit(doivent) être satisfaite(s) avant d’installer le paquet WAPT, par exemple tis-java devra être installé avant le paquet LibreOffice.
On peut définir plusieurs dépendances en les séparant par des virgules (,)
depends: tis-java,tis-firefox-esr,tis-thunderbird
conflicts¶
Fonctionne exactement à l’inverse de depends.
conflicts définit quel(s) paquet(s) doit(vent) être désinstallé(s) avant d’installer le paquet WAPT. Par exemple si vous voulez désinstaller firefox avant d’installer firefox-esr, ou bien si vous voulez LibreOffice, alors il faudra désinstaller OpenOffice d’abord.
On peut définir plusieurs conflits en les séparant par des virgules (,).
conflicts: tis-firefox
maturity¶
Indique la maturité du paquet.
Un agent verra par défaut les paquets PROD et les paquet sans maturité.
Pour qu’un client puisse voir un paquet d’un autre niveau de maturité, il faudra ajouter dans wapt-get.ini
de l’agent WAPT la configuration maturities.
locale¶
Indique la langue du paquet.
Un agent WAPT verra par défaut les paquets qui sont configurés pour son (ses) environnement(s) linguistique(s) et les paquets sans langue spécifiée.
Pour qu’un ordinateur puisse voir un paquet dans une autre langue, vous devrez configurer les locales dans wapt-get.ini
de l’agent WAPT.
locales = fr,en,es
The language filled in the field must be in ISO 639-1 format.
target_os¶
Indique le système d’exploitation prévu pour le paquet.
Un agent verra par défault les paquets prévus pour son système d’exploitation et les paquets avec un champ target_os
sans valeur.
Depuis la version 1.8, le champ target_os peut être soit windows, macos, linux ou laissé vide.
min_os_version¶
Pour un windows target_os, ce champ définit le minimum Windows Version du système d’exploitation. Par exemple, cet attribut peut être utilisé pour éviter d’installer sur WindowsXP des paquets qui ne fonctionnent que sur Windows7 et supérieur.
Depuis la version 1.8, il peut également définir la version minimale de Mac OS. Nous conseillons de ne pas l’utiliser avec Linux car il existe plusieurs distributions différentes.
max_os_version¶
Pour un windows target_os, il définit le maximum Windows Operating System Version. Par exemple, cet attribut peut être utilisé pour installer sur Windows7 des versions plus récentes d’un logiciel qui ne sont plus supportées par Windows XP.
Depuis la version 1.8, il peut également définir la version minimale de Mac OS. Nous conseillons de ne pas l’utiliser avec Linux car il existe plusieurs distributions différentes.
min_wapt_version¶
Il s’agit de la version minimale de WAPT nécessaire pour installer du paquet
Note
Le code de WAPT évoluant, certaines fonctions que vous aurez utilisées dans vos anciens paquets peuvent devenir obsolètes avec les nouvelles versions des agents WAPT.
sources¶
Définit un dépôt SVN, par exemple :
Cela permet de versionner le paquet et de concevoir collaborativement le paquet.
Indication
Le versionnage de paquets est particulièrement utile lorsque plusieurs personnes créent des paquets de manière collaborative. Cette fonction est également utile pour retracer l’historique d’un paquet si vous êtes soumis à une réglementation particulière dans votre secteur d’activité.
installed_size¶
Définit un espace disque libre minimum que doit avoir la machine pour lancer l’installation du paquet.
installed_size: 254251008
Le test d’espace disque disponible est fait sur le dossier C:Program Files
.
La valeur renseignée dans installed_size doit être en bytes.
Indication
Pour convertir des valeurs de stockage en bytes, visiter https://www.convertworld.com/fr/mesures-informatiques/.
impacted_process¶
Indique les processus impactés par le paquet.
Example:
impacted_process : firefox.exe,chrome.exe,iexplorer.exe
Ce champ est utilisé par les fonctions install_msi_if_needed et install_exe_if_needed si killbefore n’est pas renseigné.
impacted_process est également utilisé lors de la désinstallation d’un paquet. Cela permet de fermer l’application si l’application est ouverture avant sa désinstallation.
audit_schedule¶
Indique une periodicité pour l’exécution de la fonction audit du paquet.
audit_schedule : 60
La valeur peut être indiquée de plusieurs manières :
un entier (en minutes);
un entier suivi d’une lettre (m = minutes , h = heure , d = jour , w = semaine) ;
editor¶
Nouveau dans la version 1.6.
Éditeur de logiciels des binaires intégrés dans le paquet base de WAPT.
editor: Mozilla
La liste des valeurs pourra être utilisée dans la console et dans le selfservice pour trier les paquets.
keywords¶
Nouveau dans la version 1.6.
Liste de mots clés décrivant le paquet dans un objectif de classification.
keywords: office
La liste des valeurs pourra être utilisée dans la console et dans le selfservice pour trier les paquets.
licence¶
Nouveau dans la version 1.6.
Indique la licence du logiciel integré dans le paquet.
license : GPLV3
La liste des valeurs pourra être utilisée dans la console et dans le selfservice pour trier les paquets.
homepage¶
Nouveau dans la version 1.6.
Indique la page d’accueil du site officiel de logiciel integrée dans le paquet.
homepage : https://wapt.fr
La liste des valeurs pourra être utilisée dans la console et dans le selfservice pour trier les paquets.
signer¶
Automatiquement renseigné lors de la signature des paquets.
Il s’agit du CN renseigné dans la clé privée du signataire du paquet. Il s’agit le plus souvent du nom complet du signataire.
signer_fingerprint¶
Automatiquement renseigné lors de la signature des paquets.
Il s’agit de l’empreinte de la clé privée qui a signé le paquet.
signature¶
Automatiquement renseigné lors de la signature des paquets.
Il s’agit de la signature des attributs du paquet.
signature_date¶
Automatiquement renseigné lors de la signature des paquets.
Il s’agit de la date de signature des attributs du paquet.
signed_attributes¶
Automatiquement renseigné lors de la signature des paquets.
Liste des attributs du paquet qui sont signés.
Le fichier setup.py¶
import setuphelpers¶
Cette ligne se trouve au début de chaque paquet WAPT qui contient un setup.py
:
from setuphelpers import *
Nous demandons au paquet d’importer toutes les fonctions depuis la librairie Setuphelpers
.
Setuphelpers est la librairie integrée à WAPT, elle embarque des fonctions simplifiées pour aider à créer des paquets.
uninstallkey list¶
Nous trouvons ensuite :
uninstallkey = ['tisnaps2','Mozilla Firefox 45.6.0 ESR (x86 fr)']
Nous déclarerons ici une liste des uninstall keys associées au paquet. Quand un paquet est supprimé, l’agent WAPT recherche dans la base de registre la uninstallkey correspondant au paquet. Cette uninstallkey indiquera à l’agent WAPT les actions à déclencher pour supprimer le logiciel.
Même s’il n’y a pas de uninstallkey pour le paquet, il faudra quand même déclarer une uninstallkey vide :
uninstallkey = []
Fonction install()¶
Vient ensuite la déclaration de la fonction setup.py.
C’est la recette du paquet WAPT.
def install():
run('"install.exe" /S')
Le fichier wapt.psproj¶
On trouve dans le dossier WAPT un fichier wapt.psproj
.
Il s’agit du fichier projet PyScripter pour le paquet WAPT.
Pour éditer un paquet avec PyScripter, il suffira d’ouvrir ce fichier.
Le fichier icon.png¶
On trouve dans le dossier WAPT un fichier icon.png
.
Il permet d’associer une icône au paquet.
Cette icône apparaîtra dans l’interface web du self-service WAPT (http://127.0.0.1:8088).
Indication
L’icône devra être au format png 48px par 48px.
Le fichier manifest.sha256¶
On trouve dans le dossier WAPT un fichier manifest.sha256
.
Il contient l’empreinte sha256 de chaque fichier du package.
Le fichier signature¶
Le fichier signature
est situé dans le dossier WAPT.
Le fichier contient la signature du fichier manifest.sha256
.
A l’installation du paquet, wapt-get vérifie :
que la signature de
manifest.sha256
correspond au fichiermanifest.sha256
actuel (l’agent vérifiera les certificats publics dansC:\Program Files (x86)\wapt\ssl
sous Windows et/opt/wapt/ssl
sous Linux et MacOS) ;que l’empreinte sha256 de chaque fichier est identique à celle contenue dans le fichier
manifest.sha256
;
Autres fichiers¶
D’autres fichiers peuvent être embarqués dans le paquet WAPT. Par exemple :
un installeur à côté du
setup.py
à appeler dans votre setup.py ;un fichier de réponses à passer à l’installeur du logiciel ;
un fichier de licence ;