2.8 KiB
#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.
daily_build -p nom_du_paquet
Build d'un paquet non YunoHost
build_megusta -p path_du_paquet
Passage de daily
à test
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
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
reprepro -V -b /var/www/repo.yunohost.org/nom_du_repo/ remove megusta nom_du_paquet
- Ajout d'un paquet debian dans un repo
reprepro -V -b /var/www/repo.yunohost.org/nom_du_repo/ includedeb megusta nom_du_paquet.deb