Structure d’un paquet WAPT

Structure du packaging WAPT affichée dans l'explorateur Windows

Structure du packaging WAPT affichée dans l’explorateur Windows

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 dossier WAPT;

  • un fichier icon.png dans le dossier WAPT ;

  • un fichier certificate.crt dans le dossier WAPT ;

  • un fichier manifest.sha256 dans le dossier WAPT ;

  • un fichier signature.sha256 dans le dossier WAPT ;

  • un fichier wapt.psproj dans le dossier WAPT, 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 fichier launch.json et un fichier settings.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/
package_uuid      : dc66ccd1-d987-482e-b792-04e89a3803f7
valid_from        : 2022-02-23T00:00:00
valid_until       : 2022-03-23T00:00:00
forced_install_on : 2022-03-23T00:00:00
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
Description des options du fichier control

Paramètre

Description

Valeur Exemple

package

Nom du paquet WAPT, sans accent, sans espace, sans caractère spécial, sans majuscule.

tis-geogebra

version

Version du paquet, ne peut pas contenir plus de 5 délimiteurs, le dernier chiffre étant le numéro de version de packaging

La version Doit**commencer par la version du logiciel packagé (**chiffres seulement) divisée par des points (.) et **Doit**se terminer par la version du packaging WAPT séparée par un caractère tiret (-).

5.0.309.0-1

architecture

Définit l’architecture du processeur sur lequel le packaging WAPT sera installé.

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 ;

  • x86 : le paquet est destiné uniquement aux machines avec un processeur 32bits ;

x64

section

Type de paquet (host, group, base)

Valeurs possibles :

  • host : paquet machine ;

  • group : paquet groupe ;

  • base : paquet logiciel ;

  • unit : paquet UO ;

base

priority

Niveau de priorité d’installation du paquet (optionnel pour le moment)

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.

Non pris en charge pour le moment

maintainer

Indique la maturité du paquet.

Indiquer l’adresse email peut être utile.

Arnold Schwarzenegger <terminator@mydomain.lan>

description

Description du paquet qui apparaîtra dans la console et sur l’interface web

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.

The Graphing Calculator for Functions, Geometry, Algebra, Calculus, Statistics and 3D

description_fr

Description du paquet dans une langue précise

Calculatrice graphique

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 (,)

tis-java

conflicts

Définit les packages WAPT qui Doivent être supprimés avant l’installation du package, par exemple tis-firefox Doivent être supprimés avant l’installation du package tis-firefox-esr, ou OpenOffice Doivent être supprimés avant l’installation de LibreOffice.

Fonctionne exactement à l’inverse de depends.

On peut définir plusieurs conflits en les séparant par des virgules (,).

tis-graph

maturity

Définit le niveau de maturité du packaging WAPT (BETA, DEV, PROD, etc).

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.

PROD

locale

Environment linguistique prévu pour le 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.

fr,en,es

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.

windows,mac,linux

min_os_version

Version minimale de l’OS pour que le paquet soit vu par l’agent WAPT le paquet

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.

6.0

max_os_version

Version minimale de l’OS pour que le paquet soit vu par l’agent WAPT le paquet

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.

10.0

min_wapt_version

Version minimale de WAPT pour un fonctionnement correct du paquet

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.

1.3.8

sources

Lien de stockage des versions historisées du paquet (commande sources)

https://svn.mydomain.lan/sources/tis-geogebra-wapt/trunk/

Cela permet de versionner le paquet et de concevoir collaborativement le paquet.

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é.

https://srv-svn.mydomain.lan/sources/tis-geogebra-wapt/trunk/

installed_size

Espace de disque dur libre minimal requis pour installer le paquet

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.

Pour convertir des valeurs de stockage en bytes, visiter https://www.convertworld.com/fr/mesures-informatiques/.

254251008

impacted_process

Indique une liste de processus impactés lors de l’installation du paquet

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.

firefox.exe

audit_schedule

Indique la périodicité pour l’exécution de la fonction audit du paquet

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) ;

60

editor

Éditeur de logiciels des binaires intégrés dans le paquet base de WAPT.

La liste des valeurs pourra être utilisée dans la console et dans le selfservice pour trier les paquets.

Mozilla

licence

Indique la page d’accueil du site officiel de logiciel integrée dans le paquet.

La liste des valeurs pourra être utilisée dans la console et dans le selfservice pour trier les paquets.

GPLV3

keywords

Indique une liste de mots clé correspondant au paquet

La liste des valeurs pourra être utilisée dans la console et dans le selfservice pour trier les paquets.

Bureautique,Editeur,calcul

homepage

Indique la page d’accueil du site officiel de logiciel integrée dans le paquet.

La liste des valeurs pourra être utilisée dans la console et dans le selfservice pour trier les paquets.

https://www.tranquil.it/

package

Identifiant unique du packaging. Il est généré automatiquement lors de la construction du packaging.

dc66ccd1-d987-482e-b792-04e89a3803f7

version

Date/heure après laquelle le packaging peut être installé. L’agent refusera de l’installer avant cette date. La chaîne est formatée selon la norme iso8601 : YYYY-MM-DDTHH:MM:SS

2022-02-23T00:00:00

maintainer

Date/heure après laquelle le packaging ne peut pas être installé. L’agent refusera de l’installer après cette date. La chaîne est formatée selon la norme iso8601 : YYYY-MM-DDTHH:MM:SS

2022-02-23T00:00:00

installed_size

Date/heure après laquelle le waptagent déclenchera une installation forcée du packaging. La chaîne est formatée selon la norme iso8601 : YYYY-MM-DDTHH:MM:SS

2022-02-23T00:00:00

signer

Nom commun (CN) du signataire du paquet

Il s’agit généralement du nom complet du signataire.

La valeur est automatiquement insérée lors de la signature du packaging WAPT.

Tranquil IT

signer_fingerprint

Empreinte de la signature du signataire du paquet

La valeur est automatiquement insérée lors de la signature du packaging WAPT.

2BAFAF007C174A3B00F12E9CA1E74956

signature

Hash SHA256 du paquet

La valeur est automatiquement insérée lors de la signature du packaging WAPT.

MLOzLiz0qC(…)hsEjGRaMLBlod/p8w==

signature_date

Indique la date de signature du paquet

La valeur est automatiquement insérée lors de la signature du packaging WAPT.

20180307-230413

signed_attributes

Listes des attributs du fichier control du packaging WAPT qui sont signés.

La valeur est automatiquement insérée lors de la signature du packaging WAPT.

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).

PyScripter - UTF-8 (No BOM)

PyScripter - UTF-8 (No BOM)

Le fichier setup.py

  • 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.

  • suivi d’une liste uninstallkey pour associer une liste de clés de désinstallation au packaging WAPT.

    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 = []
    
  • suivi de fonctions telles que def_install(), def_uninstall(), def_session-setup() et def_audit()

    C’est la recette du paquet WAPT.

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 fichier manifest.sha256 actuel (l’agent vérifiera les certificats publics dans C:\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 ;

  • etc.