Projet

Général

Profil

GitPackaging » Historique » Version 5

Version 4 (Daniel Dehennin, 10/01/2012 11:22) → Version 5/45 (Daniel Dehennin, 11/01/2012 10:10)

h1. Gestion des paquets EOLE

h2. Environnement de compilation personel

Il existe plusieurs outils afin de mettre en place des environnements de compilation personels.

L’outil utilisé dans le projet "Debian":http://www.debian.org se nomme "sbuild":http://wiki.debian.org/sbuild.

Ce système peut se reposer sur un système de snapshot : on installe un système de base, propre, et la compilation se fait dans un snapshot temporarire de ce système.

Cela permet de lancer des compilations en parallèles au besoin.

Deux méthodes sont utilisables pour la mise en place des snapshots :

* [[eole:GitPackagingSbuildLVM|avec LVM]]
* [[eole:GitPackagingSbuildBtrfs|avec le système de fichier btrfs]]

Lorsque les schroots sont en place et sbuild configuré, la compilation d’un paquet peut se dérouler comme suit :

<pre>
buildd@build:~$ sudo apt-get install git-core git-buildpackage fakeroot build-essential debhelper cdbs
buildd@build:~$ git clone http://dev-eole.ac-dijon.fr/git/eole-debsums
buildd@build:~$ cd eole-debsums
buildd@build:~$ git checkout -b dist/ubuntu/lucid/build origin/dist/ubuntu/lucid/master
buildd@build:~$ git buildpackage --git-builder="sbuild -A -d eole2.3-dev" --git-cleaner=/bin/true
</pre>

h2. TODO Proposition de workflow

h3. Partie développeur

# Création d’un tag signé contenant un nouveau numéro de version
# Envoi du tag sur le dépôt central dev-eole

h3. Partie serveur

# Vérification de la signature: si nok => suppression du tag + report + quit
# Checkout du tag == récup de la conf gbp.conf
# Switch sur la branche de build
# Merge du tag dans la branche de build
# Mise à jour de @debian/changelog@ :
<pre>git-dch -a -R/-S debian/</pre>
# Ajout de @debian/changelog@ à l’index pour le prochain commit :
<pre>git add debian/changelog</pre>
# Commit en utilisant le numéro de version du nouveau paquet : <pre>
git commit \

<pre>git commit -m "Nouveau paquet debian version: $(dpkg-parsechangelog | awk '/^Version/ {print $2}')"</pre> $2}')"
</pre>
# Construction du paquet en utilisant l’environnement de build correspondant à la distribution du paquet :
<pre>git
<pre>
git
buildpackage \
--git-builder="sbuild -A -d $(dpkg-parsechangelog | awk '/^Distribution/ {print $2}')" \
--git-cleaner=/bin/true</pre> --git-cleaner=/bin/true
</pre>

# Si build OK => git buildpackage --git-tag-only + git push