doc/build_system_fr.md
2014-10-09 13:11:22 +02:00

2.7 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 et amd64 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, il doit être buildé différement et placé manuellement avec reprepro (TODO)


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

TODO

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