79 lines
2.6 KiB
Markdown
79 lines
2.6 KiB
Markdown
|
|
# 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>` |
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|