Projet

Général

Profil

GitPackaging » Historique » Version 16

Daniel Dehennin, 06/02/2012 09:13
Petit brouillon d’utilisation des branches

1 6 Daniel Dehennin
{{toc}}
2 6 Daniel Dehennin
3 1 Daniel Dehennin
h1. Gestion des paquets EOLE
4 1 Daniel Dehennin
5 15 Daniel Dehennin
h2. Environnement de compilation personnel
6 1 Daniel Dehennin
7 15 Daniel Dehennin
Il existe plusieurs outils afin de mettre en place des environnements de compilation personnels.
8 2 Daniel Dehennin
9 2 Daniel Dehennin
L’outil utilisé dans le projet "Debian":http://www.debian.org se nomme "sbuild":http://wiki.debian.org/sbuild.
10 2 Daniel Dehennin
11 15 Daniel Dehennin
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.
12 2 Daniel Dehennin
13 2 Daniel Dehennin
Cela permet de lancer des compilations en parallèles au besoin.
14 2 Daniel Dehennin
15 2 Daniel Dehennin
Deux méthodes sont utilisables pour la mise en place des snapshots :
16 2 Daniel Dehennin
17 1 Daniel Dehennin
* [[eole:GitPackagingSbuildLVM|avec LVM]]
18 1 Daniel Dehennin
* [[eole:GitPackagingSbuildBtrfs|avec le système de fichier btrfs]]
19 2 Daniel Dehennin
20 2 Daniel Dehennin
21 2 Daniel Dehennin
Lorsque les schroots sont en place et sbuild configuré, la compilation d’un paquet peut se dérouler comme suit :
22 2 Daniel Dehennin
23 2 Daniel Dehennin
<pre>
24 14 Daniel Dehennin
buildd@build:~/src$ sudo apt-get install git-core git-buildpackage fakeroot build-essential debhelper cdbs
25 14 Daniel Dehennin
buildd@build:~/src$ git clone http://dev-eole.ac-dijon.fr/git/eole-debsums
26 14 Daniel Dehennin
buildd@build:~/src$ cd eole-debsums
27 14 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git checkout -b dist/ubuntu/lucid/build origin/dist/ubuntu/lucid/master
28 14 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git buildpackage --git-builder="sbuild -A -d eole-2.3-dev" --git-cleaner=/bin/true
29 1 Daniel Dehennin
</pre>
30 14 Daniel Dehennin
31 14 Daniel Dehennin
Ou si on souhaite minimiser les paquets à installer:
32 14 Daniel Dehennin
33 14 Daniel Dehennin
<pre>
34 14 Daniel Dehennin
buildd@build:~/src$ sudo apt-get install git-core git-buildpackage dpkg-dev
35 14 Daniel Dehennin
buildd@build:~/src$ git clone http://dev-eole.ac-dijon.fr/git/eole-debsums
36 14 Daniel Dehennin
buildd@build:~/src$ cd eole-debsums
37 14 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git checkout -b dist/ubuntu/lucid/build origin/dist/ubuntu/lucid/master
38 14 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git buildpackage --git-builder="dpkg-buildpackage -nc -d -S" --git-cleaner=/bin/true
39 14 Daniel Dehennin
buildd@build:~/src/eole-debsums$ sbuild -A -d eole-2.3-dev ../eole-debsums_20111207-eole1.dsc
40 14 Daniel Dehennin
</pre>
41 14 Daniel Dehennin
42 3 Daniel Dehennin
43 16 Daniel Dehennin
h2. Séparation du code et du packaging
44 16 Daniel Dehennin
45 16 Daniel Dehennin
46 16 Daniel Dehennin
47 16 Daniel Dehennin
h3. Le développement dans @master@
48 16 Daniel Dehennin
49 16 Daniel Dehennin
h3. Le packaging dans @dist/<VENDOR>/<DISTRIBUTION>/master@
50 16 Daniel Dehennin
51 16 Daniel Dehennin
Afin de faire un paquet, il faut intégrer la branche de développement souhaitée, par exemple:
52 16 Daniel Dehennin
53 16 Daniel Dehennin
<pre>
54 16 Daniel Dehennin
buildd@build:~/src/eole-debsums(master)$ git checkout dist/ubuntu/lucid/master
55 16 Daniel Dehennin
buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ git merge master
56 16 Daniel Dehennin
buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ git buildpackage --git-builder="dpkg-buildpackage -nc -d -S" --git-cleaner=/bin/true
57 16 Daniel Dehennin
buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ sbuild -A -d eole-2.3-dev ../eole-debsums_20111207-eole1.dsc
58 16 Daniel Dehennin
</pre>
59 16 Daniel Dehennin
60 13 Daniel Dehennin
h1. Webographie
61 7 Daniel Dehennin
62 11 Daniel Dehennin
* "PackagingGuide/Python":https://wiki.ubuntu.com/PackagingGuide/Python