Projet

Général

Profil

GitPackaging » Historique » Version 20

Daniel Dehennin, 06/02/2012 10:30
Détail de la procédure

1 6 Daniel Dehennin
{{toc}}
2 6 Daniel Dehennin
3 1 Daniel Dehennin
h1. Gestion des paquets EOLE
4 1 Daniel Dehennin
5 17 Daniel Dehennin
h2. Séparation du code et du packaging
6 17 Daniel Dehennin
7 17 Daniel Dehennin
Cela facilite le travail de tout le monde, aussi bien des développeurs que des packageurs.
8 17 Daniel Dehennin
9 17 Daniel Dehennin
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
10 17 Daniel Dehennin
11 17 Daniel Dehennin
h3. Le développement dans @master@
12 17 Daniel Dehennin
13 17 Daniel Dehennin
Ainsi, les développeurs ne sont pas gênés par le packaging, en particulier les changements sur @debian/changelog@ à chaque compilation de paquet.
14 17 Daniel Dehennin
15 17 Daniel Dehennin
16 17 Daniel Dehennin
h3. Le packaging dans @dist/<VENDOR>/<DISTRIBUTION>/master@
17 17 Daniel Dehennin
18 17 Daniel Dehennin
Afin de faire un paquet, il faut intégrer la branche de développement souhaitée, par exemple:
19 17 Daniel Dehennin
20 20 Daniel Dehennin
# On passe sur la branche de packaging :
21 20 Daniel Dehennin
  <pre>buildd@build:~/src/eole-debsums(master)$ git checkout dist/ubuntu/lucid/master</pre>
22 20 Daniel Dehennin
# On intègre les modifications faites par les autres (et eolepack) :
23 20 Daniel Dehennin
  <pre>buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ git pull</pre>
24 20 Daniel Dehennin
# On intègre nos modifications :
25 20 Daniel Dehennin
  <pre>buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ git merge master</pre>
26 20 Daniel Dehennin
# On envoi sur le dépôt central pour eolepack :
27 20 Daniel Dehennin
  <pre>buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ git push</pre>
28 20 Daniel Dehennin
# On se replace sur la branche de développement pour nos futur modification
29 20 Daniel Dehennin
  <pre>buildd@build:~/src/eole-debsums(dist/ubuntu/lucid/master)$ git checkout master</pre>
30 20 Daniel Dehennin
# On lance eolepack qui utilise la branche de packaging par défaut :
31 20 Daniel Dehennin
  <pre>buildd@build:~/src/eole-debsums(master)$ epack</pre>
32 18 Daniel Dehennin
33 18 Daniel Dehennin
La branche par défaut dans eolepack est modifiée pour être @dist/ubuntu/lucid/master@.
34 17 Daniel Dehennin
35 2 Daniel Dehennin
h2. Environnement de compilation personnel
36 2 Daniel Dehennin
37 2 Daniel Dehennin
Il existe plusieurs outils afin de mettre en place des environnements de compilation personnels.
38 15 Daniel Dehennin
39 2 Daniel Dehennin
L’outil utilisé dans le projet "Debian":http://www.debian.org se nomme "sbuild":http://wiki.debian.org/sbuild.
40 1 Daniel Dehennin
41 17 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.
42 2 Daniel Dehennin
43 1 Daniel Dehennin
Cela permet de lancer des compilations en parallèles au besoin.
44 2 Daniel Dehennin
45 17 Daniel Dehennin
Deux méthodes sont utilisables pour la mise en place des snapshots :
46 14 Daniel Dehennin
47 14 Daniel Dehennin
* [[eole:GitPackagingSbuildLVM|avec LVM]]
48 1 Daniel Dehennin
* [[eole:GitPackagingSbuildBtrfs|avec le système de fichier btrfs]]
49 14 Daniel Dehennin
50 14 Daniel Dehennin
51 17 Daniel Dehennin
Lorsque les schroots sont en place et sbuild configuré, la compilation d’un paquet peut se dérouler comme suit :
52 14 Daniel Dehennin
53 14 Daniel Dehennin
<pre>
54 3 Daniel Dehennin
buildd@build:~/src$ sudo apt-get install git-core git-buildpackage fakeroot build-essential debhelper cdbs
55 16 Daniel Dehennin
buildd@build:~/src$ git clone http://dev-eole.ac-dijon.fr/git/eole-debsums
56 16 Daniel Dehennin
buildd@build:~/src$ cd eole-debsums
57 16 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git checkout -b dist/ubuntu/lucid/build origin/dist/ubuntu/lucid/master
58 16 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git buildpackage --git-builder="sbuild -A -d eole-2.3-dev" --git-cleaner=/bin/true
59 16 Daniel Dehennin
</pre>
60 16 Daniel Dehennin
61 16 Daniel Dehennin
Ou si on souhaite minimiser les paquets à installer:
62 16 Daniel Dehennin
63 16 Daniel Dehennin
<pre>
64 16 Daniel Dehennin
buildd@build:~/src$ sudo apt-get install git-core git-buildpackage dpkg-dev
65 16 Daniel Dehennin
buildd@build:~/src$ git clone http://dev-eole.ac-dijon.fr/git/eole-debsums
66 16 Daniel Dehennin
buildd@build:~/src$ cd eole-debsums
67 16 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git checkout -b dist/ubuntu/lucid/build origin/dist/ubuntu/lucid/master
68 16 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git buildpackage --git-builder="dpkg-buildpackage -nc -d -S" --git-cleaner=/bin/true
69 16 Daniel Dehennin
buildd@build:~/src/eole-debsums$ sbuild -A -d eole-2.3-dev ../eole-debsums_20111207-eole1.dsc
70 16 Daniel Dehennin
</pre>
71 16 Daniel Dehennin
72 13 Daniel Dehennin
h1. Webographie
73 7 Daniel Dehennin
74 11 Daniel Dehennin
* "PackagingGuide/Python":https://wiki.ubuntu.com/PackagingGuide/Python