# 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:()` `pre_install:()` `post_install:()` `pre_upgrade:()` `post_upgrade:()` `pre_remove:()` `post_remove:()` ### Macros disponibles | Macro | Description | | :---- | :---------- | | `$PAK` | Dossier global d'installation | | `$SRC` | Dossier d'extraction des sources | | `$TMP` | Dossier temporaire pour chaque `pak:` | | `name, $version, $revision, $basename` | Metadonnées du paquet principal | | `pakname` | nom du paquet courant dans un `pak:` |