Projet

Général

Profil

PreparationEnvole4 » Historique » Version 10

Daniel Dehennin, 07/02/2015 00:38
Homogénéisation de la documentation entre les deux parties

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