Erminig/doc/specs-pakva.md
2025-04-29 17:15:19 +02:00

2.6 KiB

Specifications du format PAKVA v0.1

Le fichier PAKVA est un fichier qui définit les spécifications d'un logiciel. Il est utilisé par evezh pour chercher les dernières versions disponibles pour un logiciel et par govel pour construire les paquets. La syntaxe des fichiers PAKVA est prévue pour etre lisible en python et en bash.

Ce document décrit les différentes clés, fonctions et macros disponibles.

Structure générale

Les lignes commençant par # sont des commentaires

la syntaxe est de type clé=valeur (avec ou sans guillemets) les tableaux sont en style bash clé=(val1 val2 val3) les fonction sont en style bash fonction(){}

Clés disponibles

PAKVA dispose de nombreuses clé disponibles :

Clé Type Obligatoire Description
name string  oui  Nom du paquet principal
basename string  non  Nom utilisé pour les archives/source/builddir (défaut = $name)
description  string non Description du paquet
packager string non Packager du paquet
version string oui Version du logiciel
revision int  non Révision locale
url string non  Page d'accueil du logiciel
source array oui Sources du paquets
license string non  Licence du logiciel
depends array  oui Dépendances d'utilisation
make_depends  array non  Dépendances de construction
check_depends array non  Dépendances de test

Fonctions disponibles

Fonction Obligatoire Instructions
build() oui Compilation
check() non Tests
pak() oui Packaging
pre_install()  non Avant installation
post_install() non Après installation
pre_upgrade()  non Avant mise à jour
post_upgrade() non Après mise à jour
pre_remove() non Avant suppression
post_remove() non Après suppression

Multi Packaging

On peut packager plus d'un paquet à partir d'un seul fichier PAKVA, et c'est assez simple.

la syntaxe devient :

pak:<name>() pre_install:<name>() post_install:<name>() pre_upgrade:<name>() post_upgrade:<name>() pre_remove:<name>() post_remove:<name>()

Macros disponibles

Macro  Description
$PAK Dossier global d'installation
$SRC Dossier d'extraction des sources
$TMP Dossier temporaire pour chaque pak:<name>
 name, $version, $revision, $basename Metadonnées du paquet principal
pakname nom du paquet courant dans un pak:<name>