Projet

Général

Profil

PreparationEnvole4 » Historique » Version 12

Daniel Dehennin, 07/02/2015 00:53

1 4 Daniel Dehennin
{{toc}}
2 4 Daniel Dehennin
3 11 Daniel Dehennin
h1. TODO
4 11 Daniel Dehennin
5 11 Daniel Dehennin
* Séparer cette documentation en partie ;
6 11 Daniel Dehennin
* Faire une page « point d’entrée » qui pointerait sur deux sous-pages pour les deux cas de figure
7 12 Daniel Dehennin
* Séparer cette page en 4 parties
8 12 Daniel Dehennin
** Préambule commun [[PreparationEnvole4#Installation-de-git-package-par-clonage|Installation de git-package par clonage]]
9 12 Daniel Dehennin
** [[PreparationEnvole4#Migrer-un-projet-EOLE-23-vers-Envole-4|Migrer un projet EOLE 2.3 vers Envole 4]]
10 12 Daniel Dehennin
** [[PreparationEnvole4#Migrer-un-projet-EOLE-24-vers-Envole-4|Migrer un projet EOLE 2.4 vers Envole 4]]
11 12 Daniel Dehennin
** Fin commune
12 12 Daniel Dehennin
*** [[PreparationEnvole4#Préparer-létiquette-de-version-amont-upstream-en-anglais|Préparer l’étiquette de version amont (« upstream » en anglais)]]
13 12 Daniel Dehennin
*** [[PreparationEnvole4#Compiler-un-paquet-Envole|Compiler un paquet Envole]]
14 12 Daniel Dehennin
*** [[PreparationEnvole4#Tester-un-paquet-expérimental|Tester un paquet expérimental]]
15 12 Daniel Dehennin
*** [[PreparationEnvole4#Installer-un-paquet-non-expérimental|Installer un paquet non expérimental]]
16 12 Daniel Dehennin
*** [[PreparationEnvole4#Adaptation-de-lempaquetage|Adaptation de l’empaquetage]]
17 11 Daniel Dehennin
18 1 Arnaud FORNEROT
h1. Preparation Envole 4
19 1 Arnaud FORNEROT
20 10 Daniel Dehennin
*@ATTENTION@* : Les lignes de commandes suivantes sont faites pour fonctionner facilement au copier/coller, cela ne dispense pas de les lire afin d’essayer de comprendre ce qu’elles font.
21 1 Arnaud FORNEROT
22 10 Daniel Dehennin
*@ATTENTION@* : Les commandes de création "d’étiquettes":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage (ou _tag_ en anglais) utilisent les signatures "GnuPG":https://fr.wikipedia.org/wiki/GnuPG.
23 10 Daniel Dehennin
Vous devez par conséquent avoir une clef associée à votre adresse de messagerie électronique configurée dans GIT.
24 10 Daniel Dehennin
Vous pouvez utiliser la documentation "OpenPGP Best Practices":https://help.riseup.net/en/security/message-security/openpgp/gpg-best-practices (en anglais)
25 1 Arnaud FORNEROT
<pre>
26 10 Daniel Dehennin
user@work:~$ git config user.email
27 10 Daniel Dehennin
moi@example.net
28 10 Daniel Dehennin
29 10 Daniel Dehennin
user@work:~$ gpg --list-secret-keys $(git config user.email)
30 10 Daniel Dehennin
sec   3072D/0xbiduletrucmachinchose 2012-01-11 [expire : 2022-01-08]
31 10 Daniel Dehennin
 Empreinte de la clef = TRUC BIDU LECH OSE MACH  1CHO UETT ETTR UCMU CH02
32 10 Daniel Dehennin
uid                            Moi Développeur <moi.developpeur@example.net>
33 1 Arnaud FORNEROT
</pre>
34 1 Arnaud FORNEROT
35 10 Daniel Dehennin
Nous stockons des valeurs dans des variables afin de faciliter les manipulations.
36 3 Arnaud FORNEROT
37 10 Daniel Dehennin
* Répertoire où sont stocker les dépôts GIT de l’utilisateur
38 3 Arnaud FORNEROT
<pre>
39 10 Daniel Dehennin
user@work:~$ H_SRC="${HOME}/src"
40 10 Daniel Dehennin
user@work:~$ mkdir -p "${H_SRC}"
41 1 Arnaud FORNEROT
</pre>
42 10 Daniel Dehennin
* Numéro de version du projet Enole
43 1 Arnaud FORNEROT
<pre>
44 10 Daniel Dehennin
user@work:~$ ENVOLE_VERSION=4
45 1 Arnaud FORNEROT
</pre>
46 1 Arnaud FORNEROT
47 1 Arnaud FORNEROT
48 1 Arnaud FORNEROT
49 1 Arnaud FORNEROT
50 10 Daniel Dehennin
51 10 Daniel Dehennin
h2. Installation de project:git-package par clonage
52 10 Daniel Dehennin
53 10 Daniel Dehennin
Les demandes de compilation des paquets se font entièrement par GIT.
54 10 Daniel Dehennin
55 10 Daniel Dehennin
Vous pouvez les faires à la main en créant des "étiquettes":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage mais la commande project:git-package permet de simplifier le travail.
56 10 Daniel Dehennin
57 10 Daniel Dehennin
L’installation de l’outil project:git-package par un clone GIT permet de le mettre à jour par un simple _git pull_.
58 10 Daniel Dehennin
59 10 Daniel Dehennin
60 10 Daniel Dehennin
61 10 Daniel Dehennin
h3. Désinstaller le paquet deb s’il est présent
62 10 Daniel Dehennin
63 10 Daniel Dehennin
* Vérifier la présence du paquet
64 1 Arnaud FORNEROT
<pre>
65 10 Daniel Dehennin
user@work:~$ dpkg -l git-package
66 1 Arnaud FORNEROT
</pre>
67 10 Daniel Dehennin
* Le désinstaller s’il est présent.
68 10 Daniel Dehennin
<pre>
69 10 Daniel Dehennin
user@work:~$ sudo apt-get remove git-pakage
70 10 Daniel Dehennin
</pre>
71 1 Arnaud FORNEROT
72 1 Arnaud FORNEROT
73 1 Arnaud FORNEROT
74 10 Daniel Dehennin
h3. Installer project:git-package
75 1 Arnaud FORNEROT
76 10 Daniel Dehennin
*@ATTENTION@* : Utiliser le bon chemin vers le repertoire de stockage du clone de project:git-package
77 1 Arnaud FORNEROT
78 10 Daniel Dehennin
Suivre la documentation [[git-package:|d’installation et configuration]].
79 10 Daniel Dehennin
80 10 Daniel Dehennin
81 10 Daniel Dehennin
82 10 Daniel Dehennin
h3. Paramétrage de project:git-package
83 10 Daniel Dehennin
84 10 Daniel Dehennin
Vous pouvez configurer la liste des distributions qui seront utilisées par le "complètement automatique Bash":https://fr.wikipedia.org/wiki/Compl%C3%A8tement_automatique#Interpr.C3.A9teurs_de_commandes :
85 1 Arnaud FORNEROT
<pre>
86 10 Daniel Dehennin
user@work:~$ git config --global --add package.distribution envole-4/experimental
87 10 Daniel Dehennin
user@work:~$ git config --global --add package.distribution envole-4/unstable
88 10 Daniel Dehennin
user@work:~$ git config --global --add package.distribution eole-2.4/experimental
89 10 Daniel Dehennin
user@work:~$ git config --global --add package.distribution eole-2.4/unstable
90 1 Arnaud FORNEROT
</pre>
91 1 Arnaud FORNEROT
92 10 Daniel Dehennin
En sachant que la commande de compilation utilisera la premiere distribution dans le cas où l'option *@-d|--distrib@* de project:git-package n'est pas spécifiée.
93 10 Daniel Dehennin
94 10 Daniel Dehennin
Pour connaître la distribution par défaut :
95 10 Daniel Dehennin
96 1 Arnaud FORNEROT
<pre>
97 10 Daniel Dehennin
user@work:~$ git config package.distribution || echo eole-2.4/experimental | head -n 1
98 1 Arnaud FORNEROT
</pre>
99 1 Arnaud FORNEROT
100 1 Arnaud FORNEROT
101 1 Arnaud FORNEROT
102 1 Arnaud FORNEROT
103 10 Daniel Dehennin
h2. Migrer un projet EOLE 2.3 vers Envole 4
104 1 Arnaud FORNEROT
105 10 Daniel Dehennin
* Demander à EOLE l'activation du projet pour l’infrastructure de compilation EOLE
106 10 Daniel Dehennin
* Se positionner sur la branche d’empaquetage EOLE 2.3
107 10 Daniel Dehennin
<pre>
108 10 Daniel Dehennin
user@work:~src/etherpad (master=)$ git checkout dist/ubuntu/lucid/master
109 1 Arnaud FORNEROT
110 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master<)$ git pull
111 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ 
112 10 Daniel Dehennin
</pre>
113 3 Arnaud FORNEROT
114 2 Arnaud FORNEROT
115 10 Daniel Dehennin
116 10 Daniel Dehennin
h3. Créer une étiquette de la dernière compilation de paquet EOLE 2.3
117 10 Daniel Dehennin
118 10 Daniel Dehennin
Cela permet de déclarer le dernier paquet à l’infrastructure de compilation EOLE.
119 10 Daniel Dehennin
120 10 Daniel Dehennin
Le fichier *@debian/changelog@* est mis à jour automatiquement depuis les logs GIT en ce basant sur le paquet précédent, il est donc important d’avoir des messages de commit [[eole:GitBonnesPratiques#De-lécriture-des-ChangeLog|qui ont du sens]].
121 10 Daniel Dehennin
122 10 Daniel Dehennin
123 10 Daniel Dehennin
h4. Déterminer l’étiquette du dernier paquet EOLE 2.3
124 10 Daniel Dehennin
125 10 Daniel Dehennin
* Déterminer le dernier commit de compilation EOLE 2.3
126 1 Arnaud FORNEROT
<pre>
127 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git rev-list --oneline --no-merges -F --grep '## Nouveau paquet' --max-count 1 dist/ubuntu/lucid/master
128 10 Daniel Dehennin
b6f847f8859db1c77355f51300052bb95d4f202b ## Nouveau paquet compilé par afornerot : eole-etherpad (1.4.1-eole3~20.gbpfb4d64) eole-2.3-proposed depuis dist/ubuntu/lucid/master
129 10 Daniel Dehennin
130 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ LAST_23_PKG_COMMIT=$(git rev-list --no-merges -F --grep '## Nouveau paquet' --max-count 1 dist/ubuntu/lucid/master)
131 10 Daniel Dehennin
132 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ LAST_23_PKG_MESSAGE=$(git log --no-walk --oneline ${LAST_23_PKG_COMMIT})
133 1 Arnaud FORNEROT
</pre>
134 10 Daniel Dehennin
* Extraire la version du paquet EOLE 2.3
135 10 Daniel Dehennin
<pre>
136 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ echo ${LAST_23_PKG_MESSAGE} | sed -E -e 's,[^(]+\(([^)]+).*,\1,'
137 10 Daniel Dehennin
1.4.1-eole3~20.gbpfb4d64
138 1 Arnaud FORNEROT
139 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ VERSION_23=$(echo ${LAST_23_PKG_MESSAGE} | sed -E -e 's,[^(]+\(([^)]+).*,\1,')
140 10 Daniel Dehennin
</pre>
141 10 Daniel Dehennin
* Définir l’étiquette du dernier paquet EOLE 2.3 (les "tildes":https://fr.wiktionary.org/wiki/tilde#Nom_commun (*@~@*) sont remplacés par des tirets bas (*@_@*))
142 1 Arnaud FORNEROT
<pre>
143 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ echo "pkg/envole/envole-4/${VERSION_23}" | sed -e 's,~,_,g'
144 10 Daniel Dehennin
pkg/envole/envole-4/1.4.1-eole3_20.gbpfb4d64
145 10 Daniel Dehennin
146 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ TAG_23=$(echo "pkg/envole/envole-4/${VERSION_23}" | sed -e 's,~,_,g')
147 1 Arnaud FORNEROT
</pre>
148 1 Arnaud FORNEROT
149 1 Arnaud FORNEROT
150 10 Daniel Dehennin
h4. Créer l’étiquette pour la dernière compilation EOLE 2.3
151 1 Arnaud FORNEROT
152 10 Daniel Dehennin
* Créer l’étiquette
153 1 Arnaud FORNEROT
<pre>
154 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git tag -s -m "Debian package version ${VERSION_23}" "${TAG_23}" ${LAST_23_PKG_COMMIT}
155 1 Arnaud FORNEROT
</pre>
156 10 Daniel Dehennin
* Vérifier le contenu de l’étiquette
157 10 Daniel Dehennin
<pre>
158 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git show ${TAG_23}
159 10 Daniel Dehennin
</pre>
160 3 Arnaud FORNEROT
161 1 Arnaud FORNEROT
162 10 Daniel Dehennin
h4. Publier l’étiquette pour la dernière compilation EOLE 2.3
163 1 Arnaud FORNEROT
164 10 Daniel Dehennin
<pre>
165 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git push $(git config branch.master.remote) ${TAG_23}
166 10 Daniel Dehennin
</pre>
167 3 Arnaud FORNEROT
168 2 Arnaud FORNEROT
169 10 Daniel Dehennin
170 10 Daniel Dehennin
h3. Dupliquer la branche de compilation EOLE 2.3 en branche de compilation Envole 4
171 10 Daniel Dehennin
172 1 Arnaud FORNEROT
<pre>
173 10 Daniel Dehennin
user@work:~src/etherpad (dist/ubuntu/lucid/master=)$ git checkout -b dist/envole/${ENVOLE_VERSION}/master dist/ubuntu/lucid/master
174 10 Daniel Dehennin
175 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master)$ git push -u $(git config branch.master.remote) dist/envole/${ENVOLE_VERSION}/master
176 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master=)$ 
177 1 Arnaud FORNEROT
</pre>
178 2 Arnaud FORNEROT
179 1 Arnaud FORNEROT
180 1 Arnaud FORNEROT
181 10 Daniel Dehennin
h3. Supprimer le fichier debian/changelog 
182 10 Daniel Dehennin
183 10 Daniel Dehennin
Le fichier *@debian/changelog@* est [[eole:EoleDebianPackaging24#debianchangelog|géré automatiquement par l’infrastructure de compilation]] :
184 10 Daniel Dehennin
185 1 Arnaud FORNEROT
<pre>
186 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master=)$ git rm debian/changelog 
187 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+)$ git commit -m "Suppression du debian/changelog
188 10 Daniel Dehennin
189 10 Daniel Dehennin
Le fichier debian/changelog est géré automatiquement par
190 10 Daniel Dehennin
l’infrastructure de compilation EOLE."
191 10 Daniel Dehennin
192 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master>)$
193 10 Daniel Dehennin
</pre>
194 10 Daniel Dehennin
195 10 Daniel Dehennin
196 10 Daniel Dehennin
197 10 Daniel Dehennin
h3. Créer le fichier debian/gbp.conf
198 10 Daniel Dehennin
199 10 Daniel Dehennin
Ce fichier permet à l’infrastructure de compilation EOLE de suivre les modifications sur le fichier *@debian/changelog@*
200 10 Daniel Dehennin
201 10 Daniel Dehennin
<pre>
202 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master>)$ cat >| debian/gbp.conf <<EOF
203 1 Arnaud FORNEROT
# Set per distribution debian tag
204 1 Arnaud FORNEROT
[DEFAULT]
205 1 Arnaud FORNEROT
debian-tag = debian/envole/4/%(version)s
206 1 Arnaud FORNEROT
EOF
207 8 Daniel Dehennin
208 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master%>)$ git add debian/gbp.conf
209 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+>)$ 
210 1 Arnaud FORNEROT
</pre>
211 1 Arnaud FORNEROT
212 1 Arnaud FORNEROT
213 1 Arnaud FORNEROT
214 10 Daniel Dehennin
h3. Passer le projet en paquet natif
215 1 Arnaud FORNEROT
216 10 Daniel Dehennin
Pour la gestion des [[eole:EoleDebianPackaging24#debiansourceformat|numéros de version]] de paquet:
217 10 Daniel Dehennin
218 8 Daniel Dehennin
<pre>
219 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+>)$ mkdir -p debian/source
220 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+>)$ cat >| debian/source/format <<EOF
221 1 Arnaud FORNEROT
3.0 (native)
222 1 Arnaud FORNEROT
EOF
223 1 Arnaud FORNEROT
224 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master*+>)$ git add debian/source/format
225 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+>)$ 
226 1 Arnaud FORNEROT
</pre>
227 8 Daniel Dehennin
228 8 Daniel Dehennin
229 1 Arnaud FORNEROT
230 10 Daniel Dehennin
h3. Valider les changements d’empaquetage
231 1 Arnaud FORNEROT
232 1 Arnaud FORNEROT
<pre>
233 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+>)$ git commit -m "Configuration pour l’infrastructure de compilation EOLE
234 8 Daniel Dehennin
235 10 Daniel Dehennin
* debian/changelog: Suppression, il est géré automatiquement par
236 10 Daniel Dehennin
  l’infrastructure de compilation EOLE
237 1 Arnaud FORNEROT
238 10 Daniel Dehennin
* debian/gbp.conf: Définition du format des étiquettes de compilation
239 10 Daniel Dehennin
  pour Envole.
240 8 Daniel Dehennin
241 10 Daniel Dehennin
* debian/source/format: Utilisation du format « 3.0 (native) »"
242 1 Arnaud FORNEROT
243 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master>)$ git push -u $(git branch.master.remote) dist/envole/4/master
244 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master=)$ 
245 1 Arnaud FORNEROT
</pre>
246 1 Arnaud FORNEROT
247 8 Daniel Dehennin
248 10 Daniel Dehennin
249 10 Daniel Dehennin
250 10 Daniel Dehennin
h2. Migrer un projet EOLE 2.4 vers Envole 4
251 10 Daniel Dehennin
252 8 Daniel Dehennin
[[MigrationAppliEnvole4#État-des-lieux-application-par-application|La plupart des préparatifs ont déjà été fait]].
253 1 Arnaud FORNEROT
254 1 Arnaud FORNEROT
Il faut migrer certains éléments pour l’utilisation des "dépôts Envole":http://eole.ac-dijon.fr/envole.
255 1 Arnaud FORNEROT
256 8 Daniel Dehennin
*@ATTENTION@* : Assurez-vous que les branches soient bien à jour par rapport aux dépôts sur *@dev-eole.ac-dijon.fr@*.
257 8 Daniel Dehennin
258 1 Arnaud FORNEROT
259 10 Daniel Dehennin
260 10 Daniel Dehennin
h3. Dupliquer la branche de compilation EOLE 2.3 en branche de compilation Envole 4
261 10 Daniel Dehennin
262 1 Arnaud FORNEROT
<pre>
263 10 Daniel Dehennin
user@work:~/src/wordpress (master)$ git checkout -b dist/envole/4/master dist/ubuntu/precise/master
264 8 Daniel Dehennin
265 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master)$ git push -u $(git config branch.master.remote) dist/envole/4/master
266 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ 
267 1 Arnaud FORNEROT
</pre>
268 8 Daniel Dehennin
269 8 Daniel Dehennin
270 8 Daniel Dehennin
271 10 Daniel Dehennin
h3. Renommer l’étiquette de la dernière compilation EOLE 2.4
272 1 Arnaud FORNEROT
273 10 Daniel Dehennin
Les "étiquettes":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage de la forme *@pkg/*@* sont positionnées sur la branche d’empaquetage afin de pouvoir suivre les demandes de compilation.
274 10 Daniel Dehennin
275 10 Daniel Dehennin
276 10 Daniel Dehennin
h4. Déterminer l’étiquette de la dernière compilation EOLE 2.4
277 10 Daniel Dehennin
278 8 Daniel Dehennin
<pre>
279 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ git describe --abbrev=0 dist/ubuntu/precise/master
280 8 Daniel Dehennin
pkg/eole/eole-2.4/3.6.1-eodist/envole/4/masterle3-1
281 1 Arnaud FORNEROT
282 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ EOLE_TAG=$(git describe --abbrev=0 dist/ubuntu/precise/master)
283 1 Arnaud FORNEROT
</pre>
284 1 Arnaud FORNEROT
285 1 Arnaud FORNEROT
286 10 Daniel Dehennin
h4. Vérifier le message de l’étiquette
287 1 Arnaud FORNEROT
288 10 Daniel Dehennin
Nous allons réutiliser le message de l’étiquette de la dernière compilation EOLE 2.4, la première ligne non vide doit contenir la chaîne *@New package version@* :
289 10 Daniel Dehennin
290 1 Arnaud FORNEROT
<pre>
291 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ git show -s --format="format:" ${EOLE_TAG} | perl -lane 'print if (/New package version/ .. /^-+BEGIN/) =~ /^\d+$/'
292 10 Daniel Dehennin
Lionel MORIN: New package version 3.6.1-eole3-1 for eole-2.4-unstable.
293 10 Daniel Dehennin
[...]
294 1 Arnaud FORNEROT
295 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ EOLE_MESSAGE=$(git show -s --format="format:" ${EOLE_TAG} | perl -lane 'print if (/New package version/ .. /^-+BEGIN/) =~ /^\d+$/')
296 1 Arnaud FORNEROT
</pre>
297 1 Arnaud FORNEROT
298 8 Daniel Dehennin
299 10 Daniel Dehennin
h4. Dupliquer l’étiquette de la dernière compilation EOLE 2.4 en première étiquette de compilation Envole
300 10 Daniel Dehennin
301 10 Daniel Dehennin
* Créer l’"étiquette":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage
302 1 Arnaud FORNEROT
<pre>
303 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ git tag -s -m "${EOLE_MESSAGE}" pkg/envole/envole-4/${VERSION} ${EOLE_TAG}^{}
304 1 Arnaud FORNEROT
</pre>
305 10 Daniel Dehennin
* Vérifier le message de l’"étiquette":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage
306 1 Arnaud FORNEROT
<pre>
307 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ git show pkg/envole/envole-4/${VERSION}
308 8 Daniel Dehennin
</pre>
309 8 Daniel Dehennin
310 8 Daniel Dehennin
311 10 Daniel Dehennin
h4. Pousser la nouvelle étiquette 
312 10 Daniel Dehennin
313 1 Arnaud FORNEROT
<pre>
314 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ git push $(git config branch.master.remote) pkg/envole/envole-4/${VERSION}
315 1 Arnaud FORNEROT
</pre>
316 1 Arnaud FORNEROT
317 1 Arnaud FORNEROT
318 1 Arnaud FORNEROT
319 10 Daniel Dehennin
h3. Renommé l’étiquette du dernier paquet EOLE 2.4
320 1 Arnaud FORNEROT
321 10 Daniel Dehennin
Une étiquette de la forme *@debian/*@* est créé par l’infrastructure de compilation de paquet afin de gérer automatiquement le fichier *@debian/changelog@*.
322 10 Daniel Dehennin
323 10 Daniel Dehennin
324 10 Daniel Dehennin
h4. Déterminer l’étiquette du dernier paquet EOLE 2.4
325 10 Daniel Dehennin
326 1 Arnaud FORNEROT
<pre>
327 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ awk -F'=' '/^debian-tag/ {print $2}' debian/gbp.conf | sed -e "s,%(version)s,${VERSION},"
328 1 Arnaud FORNEROT
 debian/eole/2.4/3.6.1-eole3-1
329 1 Arnaud FORNEROT
330 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ EOLE_DEB_TAG=$(echo $(awk -F'=' '/^debian-tag/ {print $2}' debian/gbp.conf | sed -e "s,%(version)s,${VERSION},"))
331 1 Arnaud FORNEROT
</pre>
332 1 Arnaud FORNEROT
333 1 Arnaud FORNEROT
334 10 Daniel Dehennin
h4. Récupérer l’étiquette du dernier paquet EOLE 2.4
335 1 Arnaud FORNEROT
336 10 Daniel Dehennin
Les "étiquettes":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage de la forme *@debian/*@* ne pointe sur aucune branche, ils ne sont utilisés que par l’infrastructure de compilation de paquet et ne sont donc que sur les dépôts *@dev-eole.ac-dijon.fr@*.
337 6 Daniel Dehennin
338 10 Daniel Dehennin
Pour récupérer la dernière "étiquette":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage de paquet :
339 10 Daniel Dehennin
340 8 Daniel Dehennin
<pre>
341 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ git fetch $(git config branch.master.remote) refs/tags/${EOLE_DEB_TAG}:refs/tags/${EOLE_DEB_TAG}
342 1 Arnaud FORNEROT
</pre>
343 1 Arnaud FORNEROT
344 1 Arnaud FORNEROT
345 10 Daniel Dehennin
h4. Vérifier le message de l’étiquette
346 10 Daniel Dehennin
347 8 Daniel Dehennin
<pre>
348 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ git show -s --format="format:" ${EOLE_DEB_TAG} | perl -lane 'print if (/Debian release/ .. /^-+BEGIN/) =~ /^\d+$/'
349 1 Arnaud FORNEROT
eole-wordpress Debian release 3.6.1-eole3-1
350 1 Arnaud FORNEROT
351 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ DEB_MESSAGE=$(git show -s --format="format:" ${EOLE_DEB_TAG} | perl -lane 'print if (/Debian release/ .. /^-+BEGIN/) =~ /^\d+$/')
352 1 Arnaud FORNEROT
</pre>
353 1 Arnaud FORNEROT
354 1 Arnaud FORNEROT
355 10 Daniel Dehennin
h4. Dupliquer l’étiquette du dernier paquet EOLE 2.4 en première étiquette de paquet Envole
356 1 Arnaud FORNEROT
357 1 Arnaud FORNEROT
<pre>
358 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ git tag -s -m "${DEB_MESSAGE}" debian/envole/4/${VERSION} ${EOLE_DEB_TAG}^{}
359 1 Arnaud FORNEROT
</pre>
360 1 Arnaud FORNEROT
361 1 Arnaud FORNEROT
On vérifie le message
362 1 Arnaud FORNEROT
363 1 Arnaud FORNEROT
<pre>
364 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master)$ git show debian/envole/4/${VERSION}
365 1 Arnaud FORNEROT
</pre>
366 1 Arnaud FORNEROT
367 1 Arnaud FORNEROT
368 10 Daniel Dehennin
h4. Pousser la nouvelle étiquette
369 1 Arnaud FORNEROT
370 1 Arnaud FORNEROT
<pre>
371 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master=)$ git push $(git config branch.master.remote) debian/envole/4/${VERSION}
372 1 Arnaud FORNEROT
</pre>
373 8 Daniel Dehennin
374 8 Daniel Dehennin
375 10 Daniel Dehennin
376 10 Daniel Dehennin
h3. Passer le projet en paquet natif
377 10 Daniel Dehennin
378 10 Daniel Dehennin
Pour la gestion des [[eole:EoleDebianPackaging24#debiansourceformat|numéros de version]] de paquet:
379 10 Daniel Dehennin
380 10 Daniel Dehennin
<pre>
381 10 Daniel Dehennin
user@work:~src/wordpress (dist/envole/4/master=)$ mkdir -p debian/source
382 10 Daniel Dehennin
user@work:~src/wordpress (dist/envole/4/master=)$ cat >| debian/source/format <<EOF
383 10 Daniel Dehennin
3.0 (native)
384 10 Daniel Dehennin
EOF
385 10 Daniel Dehennin
386 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master*=)$ git add debian/source/format
387 10 Daniel Dehennin
user@work:~src/etherpad (dist/envole/4/master+=)$ 
388 10 Daniel Dehennin
</pre>
389 10 Daniel Dehennin
390 10 Daniel Dehennin
391 10 Daniel Dehennin
392 1 Arnaud FORNEROT
h3. Modifier la configuration git-buildpackage
393 1 Arnaud FORNEROT
394 10 Daniel Dehennin
Il faut modifier modifier le fichier de configuration *@debian/gbp.conf@* afin de modifier le format des "étiquettes":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage de suivi des compilations:
395 1 Arnaud FORNEROT
396 1 Arnaud FORNEROT
<pre>
397 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master+=)$ sed -i -e 's,^debian-tag.*,debian-tag = debian/envole/4/%(version)s,' debian/gbp.conf
398 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master*+=)$ git add debian/gbp.conf
399 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master+=)$ git commit -m "Configuration pour l’infrastructure de compilation EOLE
400 10 Daniel Dehennin
401 10 Daniel Dehennin
* debian/gbp.conf: Définition du format des étiquettes de compilation
402 10 Daniel Dehennin
  pour Envole."
403 10 Daniel Dehennin
404 10 Daniel Dehennin
user@work:~/src/wordpress (dist/envole/4/master>)$ 
405 1 Arnaud FORNEROT
</pre>
406 1 Arnaud FORNEROT
407 1 Arnaud FORNEROT
408 8 Daniel Dehennin
409 8 Daniel Dehennin
410 10 Daniel Dehennin
h2. Préparer l’étiquette de version amont (« upstream » en anglais)
411 8 Daniel Dehennin
412 10 Daniel Dehennin
L’infrastructure de compilation EOLE utilise les "étiquettes":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage *@release/*@* pour connaître la version _amont_ et en dériver la verion du paquet.
413 10 Daniel Dehennin
414 10 Daniel Dehennin
Nous prenons l’exemple du paquet project:wordpress mais la procédure est identique pour tous les paquets Envole :
415 10 Daniel Dehennin
416 1 Arnaud FORNEROT
<pre>
417 10 Daniel Dehennin
user@work:~src/wordpress (dist/envole/4/master=)$ git checkout master
418 10 Daniel Dehennin
user@work:~src/wordpress (master=)$ git tag -s -m "New Envole release 4.0" release/4.0 master
419 1 Arnaud FORNEROT
</pre>
420 1 Arnaud FORNEROT
421 10 Daniel Dehennin
422 10 Daniel Dehennin
423 10 Daniel Dehennin
424 10 Daniel Dehennin
h2. Compiler un paquet Envole
425 10 Daniel Dehennin
426 10 Daniel Dehennin
Lorsque vous modifier l’empaquetage, il est nécessaire de compiler en premier sur un [[eole:GitPackagingSbuildLVM|environnement de compilation personnel]].
427 10 Daniel Dehennin
428 10 Daniel Dehennin
Vous pouvez avoir une machine virtuelle à disposition
429 10 Daniel Dehennin
430 10 Daniel Dehennin
431 10 Daniel Dehennin
432 10 Daniel Dehennin
h3. Compiler un paquet expérimental
433 10 Daniel Dehennin
434 10 Daniel Dehennin
Si vous avez configuré project:git-package comme [[#Paramétrage-de-git-package|indiqué plus haut]], vous pouvez vous passer de l’option *@-d|--distrib@* pour compiler un paquet pour la distribution
435 10 Daniel Dehennin
*@envole-2.4-experimental@* :
436 10 Daniel Dehennin
437 1 Arnaud FORNEROT
<pre>
438 10 Daniel Dehennin
user@work:~src/wordpress (master=)$ git package --build dist/envole/4/master
439 8 Daniel Dehennin
</pre>
440 1 Arnaud FORNEROT
441 10 Daniel Dehennin
*@NOTE@* : Le dernier argument *@dist/envole/4/master@* est la "référence GIT":http://git-scm.com/book/fr/v1/Les-tripes-de-Git-R%C3%A9f%C3%A9rences-Git, c’est à dire un identifiant de commit (le SHA1),
442 10 Daniel Dehennin
 un nom d’"étiquette":http://git-scm.com/book/fr/Les-bases-de-Git-Étiquetage ou de branche
443 1 Arnaud FORNEROT
444 10 Daniel Dehennin
*@ASTUCE@* : le "complètement automatique Bash":https://fr.wikipedia.org/wiki/Compl%C3%A8tement_automatique#Interpr.C3.A9teurs_de_commandes et l’outil project:git-package permet de ne spécifier que le minimum nécessaire afin de trouver la branche d’empaquetage
445 10 Daniel Dehennin
<pre>
446 10 Daniel Dehennin
user@work:~src/wordpress (master=)$ git package --build envole/4<TABULATION>
447 10 Daniel Dehennin
</pre>
448 8 Daniel Dehennin
449 10 Daniel Dehennin
ou
450 8 Daniel Dehennin
451 8 Daniel Dehennin
<pre>
452 10 Daniel Dehennin
user@work:~src/wordpress (master=)$ git package --build envole/4<ENTER>
453 6 Daniel Dehennin
</pre>
454 6 Daniel Dehennin
455 10 Daniel Dehennin
456 10 Daniel Dehennin
457 10 Daniel Dehennin
h3. Compiler un paquet de développement
458 10 Daniel Dehennin
459 10 Daniel Dehennin
Il s’agit de la même procédure mais en spécifiant la distribution *@envole-4/unstable@* par l’option *@-d|--distrib@* de project:git-package :
460 8 Daniel Dehennin
461 10 Daniel Dehennin
<pre>
462 10 Daniel Dehennin
user@work:~src/wordpress (master=)$ git package --build --distrib envole-4/unstable envole/4
463 10 Daniel Dehennin
</pre>
464 10 Daniel Dehennin
465 10 Daniel Dehennin
466 1 Arnaud FORNEROT
467 10 Daniel Dehennin
468 12 Daniel Dehennin
h2. Tester un paquet expérimental
469 10 Daniel Dehennin
470 1 Arnaud FORNEROT
*@ATTENTION@* : Disponible sur un serveur EOLE à partir de la version 2.4.1 avec le paquet project:eole-web
471 10 Daniel Dehennin
472 12 Daniel Dehennin
Aucun paquet de la distribution *@envole-4-experimental@* ne s’installe automatiquement lors des mises à jour.
473 1 Arnaud FORNEROT
474 12 Daniel Dehennin
Il faut installer manuellement les paquets en spécifiant le numéro de version exacte que l’on souhaite utiliser.
475 12 Daniel Dehennin
476 12 Daniel Dehennin
477 12 Daniel Dehennin
478 10 Daniel Dehennin
h3. Configurer les dépôts de paquets
479 10 Daniel Dehennin
480 10 Daniel Dehennin
481 10 Daniel Dehennin
* Ajouter manuellement le dépôt Envole expérimental (il n’est pas configurable par _Query-Auto_ ou _Maj-Auto_ car il n’est utile que pour les développeurs)
482 3 Arnaud FORNEROT
<pre>
483 1 Arnaud FORNEROT
root@scribe:~# cat >| /etc/apt/sources.list.d/envole-4-experimental.list <<EOF
484 1 Arnaud FORNEROT
deb http://test-eole.ac-dijon.fr/envole envole-4-experimental main
485 10 Daniel Dehennin
EOF
486 3 Arnaud FORNEROT
</pre>
487 1 Arnaud FORNEROT
* Configurer les dépôts standards et prendre en compte le dépôt expérimental
488 10 Daniel Dehennin
<pre>
489 10 Daniel Dehennin
root@scribe:~# Query-Auto -V test-eole.ac-dijon.fr
490 10 Daniel Dehennin
</pre>
491 10 Daniel Dehennin
492 10 Daniel Dehennin
493 10 Daniel Dehennin
494 10 Daniel Dehennin
h3. Déterminer la version du paquet compilé
495 10 Daniel Dehennin
496 10 Daniel Dehennin
497 1 Arnaud FORNEROT
<pre>
498 10 Daniel Dehennin
root@scribe:~# apt-cache policy eole-wordpress
499 10 Daniel Dehennin
apt:
500 10 Daniel Dehennin
  Installé : 3.9.2-eole2~5.gbpb66498
501 10 Daniel Dehennin
  Candidat : 3.9.2-eole2~5.gbpb66498
502 10 Daniel Dehennin
 Table de version :
503 10 Daniel Dehennin
     4.0-1~1.gbpcc1457 0
504 10 Daniel Dehennin
         90 http://eole.ac-dijon.fr/envole envole-4-experimental/main amd64 Packages
505 10 Daniel Dehennin
     3.9.2-eole2~5.gbpb66498 0
506 10 Daniel Dehennin
        500 http://eoleng.ac-dijon.fr/eole eole-2.3-dev/main amd64 Packages
507 10 Daniel Dehennin
 *** 3.9.2-eole2~5.gbpb66498 0
508 10 Daniel Dehennin
        100 /var/lib/dpkg/status
509 1 Arnaud FORNEROT
</pre>
510 3 Arnaud FORNEROT
511 1 Arnaud FORNEROT
512 10 Daniel Dehennin
513 10 Daniel Dehennin
h3. Installer le paquet experimental
514 10 Daniel Dehennin
515 2 Arnaud FORNEROT
<pre>
516 10 Daniel Dehennin
root@scribe:~# apt-get install eole-worpress=4.0-1~1.gbpcc1457 wordpress-apps=4.0-1~1.gbpcc1457
517 1 Arnaud FORNEROT
</pre>
518 2 Arnaud FORNEROT
519 1 Arnaud FORNEROT
520 1 Arnaud FORNEROT
521 10 Daniel Dehennin
522 1 Arnaud FORNEROT
h2. Installer un paquet non expérimental
523 1 Arnaud FORNEROT
524 1 Arnaud FORNEROT
C'est comme d'habitude
525 1 Arnaud FORNEROT
<pre>
526 10 Daniel Dehennin
root@scribe:~# Query-Auto -D -V test-eole.ac-dijon.fr
527 10 Daniel Dehennin
root@scribe:~# apt-eole install eole-wordpress wordpress-apps
528 1 Arnaud FORNEROT
</pre>
529 1 Arnaud FORNEROT
530 1 Arnaud FORNEROT
531 1 Arnaud FORNEROT
532 10 Daniel Dehennin
533 10 Daniel Dehennin
h2. Adaptation de l’empaquetage
534 1 Arnaud FORNEROT
535 1 Arnaud FORNEROT
Suivre les recommandations du wiki suivant
536 1 Arnaud FORNEROT
https://dev-eole.ac-dijon.fr/projects/envole/wiki/MigrationAppliEnvole4