mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
81 lines
2.8 KiB
Markdown
81 lines
2.8 KiB
Markdown
#Création de paquet Debian
|
|
|
|
## Architecture
|
|
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.
|
|
|
|
---
|
|
|
|
## Workflow
|
|
|
|
#### Paquets YunoHost
|
|
|
|
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`.
|
|
|
|
#### Paquets non YunoHost
|
|
|
|
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`.
|
|
|
|
---
|
|
|
|
## Build des paquets
|
|
|
|
#### 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`.
|
|
|
|
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`).
|
|
|
|
Une fois les paquets buildés, ils sont ajoutés au repo `daily`.
|
|
|
|
|
|
#### (Re)build d'un paquet YunoHost
|
|
|
|
Il est possible de relancer manuellement le build d'un paquet.
|
|
|
|
```bash
|
|
daily_build -p nom_du_paquet
|
|
```
|
|
|
|
#### Build d'un paquet non YunoHost
|
|
|
|
```bash
|
|
build_deb -p path_du_paquet
|
|
```
|
|
|
|
### Passage de `daily` à `test`
|
|
|
|
```bash
|
|
push-packages-test -p nom_du_paquet
|
|
```
|
|
|
|
Il est possible d'utiliser l'option `-v` pour définir manuellement la version du paquet.
|
|
|
|
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`.
|
|
|
|
**Attention :** le nom de version ne doit pas contenir `daily` sinon le paquet sera ajouté au repo `daily`.
|
|
|
|
|
|
### Passage de `test` à `stable`
|
|
|
|
```bash
|
|
push-package-stable -p nom_du_paquet
|
|
```
|
|
|
|
Cette commande passe simplement le paquet du repo `test` à `stable`, sans rebuild.
|
|
|
|
|
|
### Gestion du repo avec `reprepro`
|
|
|
|
* Suppression d'un paquet
|
|
```bash
|
|
reprepro -V -b /var/www/repo.yunohost.org/nom_du_repo/ remove megusta nom_du_paquet
|
|
```
|
|
|
|
* Ajout d'un paquet debian dans un repo
|
|
```bash
|
|
reprepro -V -b /var/www/repo.yunohost.org/nom_du_repo/ includedeb megusta nom_du_paquet.deb
|
|
```
|
|
|