doc/build_system_fr.md

91 lines
3.2 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
2015-02-04 11:32:19 +01:00
Le système se compose de `rebuildd` qui est un front-end pour `pbuilder`, des chroot pbuilder pour i386, amd64, armhf 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-11 13:38:36 +02:00
2014-10-09 13:08:07 +02:00
#### Paquets non YunoHost
2014-10-04 13:51:00 +02:00
2014-10-11 13:27:33 +02:00
Pour les paquets « non-YunoHost » (par exemple `python-bottle`) le paquet ne passe pas par le repo `daily`, une fois les tests effectués sur ce paquet, ils devront être envoyés manuellement dans le repo `backport`.
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
2014-10-11 13:27:33 +02:00
```bash
2014-11-04 14:13:12 +01:00
build_deb -p path_du_paquet
2014-10-11 13:27:33 +02:00
```
2014-10-04 13:51:00 +02:00
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
2014-10-09 13:11:22 +02:00
### Passage de `test` à `stable`
2014-10-04 13:51:00 +02:00
```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
```
2015-01-06 11:12:49 +01:00
### Gestion des backports
Pour la gestion des paquets venant du dépôt backport il est possible de les intégrer rapidement dans le repo test de yunohost
Pour ce faire il faut ajouter le nom du paquet dans le fichier `/var/www/repo.yunohost.org/test/conf/list` puis lancer la commande
```bash
reprepro -V -b /var/www/repo.yunohost.org/test update megusta
```
Les paquets vont être télécharger et ajouté au repo `test`