doc/build_system_fr.md

80 lines
2.7 KiB
Markdown
Raw Normal View History

2014-10-04 13:51:00 +02:00
#Création de paquet Debian
2014-10-09 13:08:07 +02:00
## Architecture
Le système se compose de rebuildd qui est un front-end pour `pbuilder`, des chroot pbuilder pour i386 et amd64 et de `reprepro` pour le système de repo debian.
2014-10-04 13:51:00 +02:00
2014-10-09 13:10:16 +02:00
---
2014-10-04 13:51:00 +02:00
## Workflow
2014-10-09 13:08:07 +02:00
#### Paquets YunoHost
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
Il existe trois repo (`daily`, `test` et `stable`), les paquets du repo `daily` correspondent à la dernière version du git. Le repo `test` permet de mettre en place une nouvelle version d'un paquet qui sera ensuite testé. Une fois le paquet testé et validé, il est passé manuellement dans le repo `stable`.
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
#### Paquets non YunoHost
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
Pour les paquets « non-YunoHost » (par exemple `python-bottle`) le paquet ne passe pas par le repo daily, il doit être buildé différement et placé manuellement avec reprepro (TODO)
2014-10-04 13:51:00 +02:00
2014-10-09 13:10:16 +02:00
---
2014-10-04 13:51:00 +02:00
## Build des paquets
2014-10-09 13:08:07 +02:00
#### Daily build
Un cron défini pour l'utilisateur `pbuilder` se lance **tous les jours à 01:00**. Ce script va mettre à jour le repo git `packages` et ses submodules (`ssowat`, `moulinette`, `moulinette-yunohost` et `admin_js`).
Une fois les sources mises à jour, le script va rebuilder les paquets qui ont été mis à jour la veille.
Pour ce faire on va créer des paquets sources qui vont ensuite être mis dans le répertoire `/var/www/repo.yunohost.org/daily/incomming`.
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
Lancer ensuite l'ajout de ces fichiers source au repo, ce lancera automatiquement un job dans `rebuildd` (voir configuration du repo daily dans `/var/www/repo.yunohost.org/daily/conf/distribustion`).
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
Une fois les paquets buildés, ils sont ajoutés au repo `daily`.
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
#### (Re)build d'un paquet YunoHost
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
Il est possible de relancer manuellement le build d'un paquet.
2014-10-04 13:51:00 +02:00
```bash
daily_build -p nom_du_paquet
```
2014-10-09 13:08:07 +02:00
#### Build d'un paquet non YunoHost
2014-10-04 13:51:00 +02:00
TODO
2014-10-09 13:08:07 +02:00
### Passage de `daily` à `test`
2014-10-04 13:51:00 +02:00
```bash
push-packages-test -p nom_du_paquet
```
2014-10-09 13:08:07 +02:00
Il est possible d'utiliser l'option `-v` pour définir manuellement la version du paquet.
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
Le script va récuperer les sources du paquet dans `daily` puis ouvrir le changelog pour y définir la version et la liste des changements. Le build paquet sera ensuite ajouté à la liste des jobs de rebuildd qui le passera dans le repo `test`.
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
**Attention :** le nom de version ne doit pas contenir `daily` sinon le paquet sera ajouté au repo `daily`.
2014-10-04 13:51:00 +02:00
### Passage de test à stable
```bash
push-package-stable -p nom_du_paquet
```
2014-10-09 13:08:07 +02:00
Cette commande passe simplement le paquet du repo `test` à `stable`, sans rebuild.
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
### Gestion du repo avec `reprepro`
2014-10-04 13:51:00 +02:00
2014-10-09 13:08:07 +02:00
* Suppression d'un paquet
2014-10-04 15:16:16 +02:00
```bash
reprepro -V -b /var/www/repo.yunohost.org/nom_du_repo/ remove megusta nom_du_paquet
2014-10-04 13:51:00 +02:00
```
2014-10-09 13:08:07 +02:00
* Ajout d'un paquet debian dans un repo
2014-10-04 13:51:00 +02:00
```bash
reprepro -V -b /var/www/repo.yunohost.org/nom_du_repo/ includedeb megusta nom_du_paquet.deb
```