Projet

Général

Profil

PreparationEnvole4 » Historique » Version 17

Igor GODI, 12/02/2015 11:17

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