Projet

Général

Profil

GitPackaging » Historique » Version 22

Version 21 (Daniel Dehennin, 06/02/2012 11:25) → Version 22/45 (Daniel Dehennin, 06/02/2012 15:50)

{{toc}}

h1. Gestion des paquets EOLE

h2. Séparation du code et du packaging

Cela facilite le travail de tout le monde, aussi bien des développeurs que des packageurs.

De plus, il est ainsi plus facile de fournir le même code pour plusieurs distributions différentes, cela sera utile notamment lors du portage des applications sur "Precise Pangolin":http://fr.wikipedia.org/wiki/Liste_des_versions_d%27Ubuntu#Ubuntu_12.04_LTS_.28Precise_Pangolin.29

h3. Le développement dans @master@

Ainsi, les développeurs ne sont pas gênés par le packaging, en particulier les changements sur @debian/changelog@ à chaque compilation de paquet.

h3. Le packaging dans @dist/<VENDOR>/<DISTRIBUTION>/master@

Afin de faire un paquet, il faut intégrer la branche de développement souhaitée, par exemple:

# On passe sur la branche de packaging :
<pre>buildd@build:~/src/eole-debsums(master)$ git checkout dist/ubuntu/lucid/master</pre>
# On intègre les modifications faites par les autres (et eolepack) :
<pre>buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ git pull</pre>
# On intègre nos modifications :
<pre>buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ git merge master</pre>
# On envoi sur le dépôt central pour eolepack :
<pre>buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ git push</pre>
# On se replace sur la branche de développement pour nos futures modifications
<pre>buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ git checkout master</pre>
# On lance eolepack qui utilise la branche de packaging par défaut :
<pre>buildd@build:~/src/eole-debsums(master)$ epack</pre>

La branche par défaut dans eolepack est modifiée pour être @dist/ubuntu/lucid/master@.

Un petit script @bash@ peut-être utilisé afin d’automatiser la procédure:

<pre>
buildd@build:~/src/eole-debsums(master)$ git package lucid
Switched to branch 'master'
Do you want to merge 'master' into 'dist/ubuntu/lucid/master'?: y
Switched to branch 'dist/ubuntu/lucid/master'
Already up-to-date.
Merge developpement from 'master'...
Already up-to-date.
Switch back to your developpement branch 'master'...
Switched to branch 'master'
Push is not automatically done to avoid publishing possible errors.
buildd@build:~/src/eole-debsums(master)$
</pre>

h2. Environnement de compilation personnel

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

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

Ou si on souhaite minimiser les paquets à installer:

<pre>
buildd@build:~/src$ sudo apt-get install git-core git-buildpackage dpkg-dev
buildd@build:~/src$ git clone http://dev-eole.ac-dijon.fr/git/eole-debsums
buildd@build:~/src$ cd eole-debsums
buildd@build:~/src/eole-debsums$ git checkout -b dist/ubuntu/lucid/build origin/dist/ubuntu/lucid/master
buildd@build:~/src/eole-debsums$ git buildpackage --git-builder="dpkg-buildpackage -nc -d -S" --git-cleaner=/bin/true
buildd@build:~/src/eole-debsums$ sbuild -A -d eole-2.3-dev ../eole-debsums_20111207-eole1.dsc
</pre>

h1. Webographie

* "PackagingGuide/Python":https://wiki.ubuntu.com/PackagingGuide/Python