Les choses sérieuses commencent
This commit is contained in:
parent
7a9fe18463
commit
c63f62721b
41 changed files with 1270 additions and 0 deletions
78
doc/specs-pakva.md
Normal file
78
doc/specs-pakva.md
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# 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>` |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue