Projet

Général

Profil

GitPackaging » Historique » Version 25

Daniel Dehennin, 07/02/2012 10:04
Update des messages de la console de git-package

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 21 Daniel Dehennin
# On se replace sur la branche de développement pour nos futures modifications
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 24 Daniel Dehennin
h4. Aide à la console (aka helper bash)
36 24 Daniel Dehennin
37 23 Daniel Dehennin
Un petit script @bash@ (attachment:git-package) peut-être utilisé afin d’automatiser la procédure, il suffit de le mettre dans un répertoire du @PATH@, comme @/usr/local/bin@ et il sera pris automatiquement en compte par git:
38 23 Daniel Dehennin
39 22 Daniel Dehennin
40 22 Daniel Dehennin
<pre>
41 22 Daniel Dehennin
buildd@build:~/src/eole-debsums(master)$ git package lucid
42 1 Daniel Dehennin
Do you want to merge 'master' into 'dist/ubuntu/lucid/master'?: y
43 25 Daniel Dehennin
Checkout 'lucid' master distribution branch 'dist/ubuntu/lucid/master': Switched to branch 'dist/ubuntu/lucid/master'
44 25 Daniel Dehennin
Pull from default remote: Already up-to-date.
45 25 Daniel Dehennin
Merge developpement from 'master': Already up-to-date.
46 25 Daniel Dehennin
Switch back to your developpement branch 'master'... Switched to branch 'master'
47 22 Daniel Dehennin
Push is not automatically done to avoid publishing possible errors.
48 22 Daniel Dehennin
buildd@build:~/src/eole-debsums(master)$ 
49 22 Daniel Dehennin
</pre>
50 22 Daniel Dehennin
51 2 Daniel Dehennin
h2. Environnement de compilation personnel
52 2 Daniel Dehennin
53 2 Daniel Dehennin
Il existe plusieurs outils afin de mettre en place des environnements de compilation personnels.
54 15 Daniel Dehennin
55 2 Daniel Dehennin
L’outil utilisé dans le projet "Debian":http://www.debian.org se nomme "sbuild":http://wiki.debian.org/sbuild.
56 1 Daniel Dehennin
57 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.
58 2 Daniel Dehennin
59 1 Daniel Dehennin
Cela permet de lancer des compilations en parallèles au besoin.
60 2 Daniel Dehennin
61 17 Daniel Dehennin
Deux méthodes sont utilisables pour la mise en place des snapshots :
62 14 Daniel Dehennin
63 14 Daniel Dehennin
* [[eole:GitPackagingSbuildLVM|avec LVM]]
64 1 Daniel Dehennin
* [[eole:GitPackagingSbuildBtrfs|avec le système de fichier btrfs]]
65 14 Daniel Dehennin
66 14 Daniel Dehennin
67 17 Daniel Dehennin
Lorsque les schroots sont en place et sbuild configuré, la compilation d’un paquet peut se dérouler comme suit :
68 14 Daniel Dehennin
69 14 Daniel Dehennin
<pre>
70 3 Daniel Dehennin
buildd@build:~/src$ sudo apt-get install git-core git-buildpackage fakeroot build-essential debhelper cdbs
71 16 Daniel Dehennin
buildd@build:~/src$ git clone http://dev-eole.ac-dijon.fr/git/eole-debsums
72 16 Daniel Dehennin
buildd@build:~/src$ cd eole-debsums
73 16 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git checkout -b dist/ubuntu/lucid/build origin/dist/ubuntu/lucid/master
74 16 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git buildpackage --git-builder="sbuild -A -d eole-2.3-dev" --git-cleaner=/bin/true
75 16 Daniel Dehennin
</pre>
76 16 Daniel Dehennin
77 16 Daniel Dehennin
Ou si on souhaite minimiser les paquets à installer:
78 16 Daniel Dehennin
79 16 Daniel Dehennin
<pre>
80 16 Daniel Dehennin
buildd@build:~/src$ sudo apt-get install git-core git-buildpackage dpkg-dev
81 16 Daniel Dehennin
buildd@build:~/src$ git clone http://dev-eole.ac-dijon.fr/git/eole-debsums
82 16 Daniel Dehennin
buildd@build:~/src$ cd eole-debsums
83 16 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git checkout -b dist/ubuntu/lucid/build origin/dist/ubuntu/lucid/master
84 16 Daniel Dehennin
buildd@build:~/src/eole-debsums$ git buildpackage --git-builder="dpkg-buildpackage -nc -d -S" --git-cleaner=/bin/true
85 16 Daniel Dehennin
buildd@build:~/src/eole-debsums$ sbuild -A -d eole-2.3-dev ../eole-debsums_20111207-eole1.dsc
86 16 Daniel Dehennin
</pre>
87 16 Daniel Dehennin
88 13 Daniel Dehennin
h1. Webographie
89 7 Daniel Dehennin
90 11 Daniel Dehennin
* "PackagingGuide/Python":https://wiki.ubuntu.com/PackagingGuide/Python