Projet

Général

Profil

PreparationEnvole4 » Historique » Version 9

Daniel Dehennin, 06/02/2015 14:57

1 4 Daniel Dehennin
{{toc}}
2 4 Daniel Dehennin
3 1 Arnaud FORNEROT
h1. Preparation Envole 4
4 1 Arnaud FORNEROT
5 9 Daniel Dehennin
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 quelles font.
6 2 Arnaud FORNEROT
7 9 Daniel Dehennin
Nous stockons des valeurs dans des variables afin de faciliter les manipulations.
8 2 Arnaud FORNEROT
9 9 Daniel Dehennin
<pre>
10 9 Daniel Dehennin
moi@work:~/src/wordpress (master)$ ENVOLE_VERSION=4
11 9 Daniel Dehennin
</pre>
12 9 Daniel Dehennin
13 1 Arnaud FORNEROT
h2. S'assurer que git-package n'est pas installé
14 2 Arnaud FORNEROT
15 3 Arnaud FORNEROT
<pre>
16 1 Arnaud FORNEROT
dpkg -l git-package
17 3 Arnaud FORNEROT
</pre>
18 3 Arnaud FORNEROT
19 2 Arnaud FORNEROT
si présent le désinstaller
20 3 Arnaud FORNEROT
<pre>
21 1 Arnaud FORNEROT
sudo apt-get remove git-pakage
22 3 Arnaud FORNEROT
</pre>
23 1 Arnaud FORNEROT
24 2 Arnaud FORNEROT
25 2 Arnaud FORNEROT
26 1 Arnaud FORNEROT
h2. Cloner le projet git-pakage
27 2 Arnaud FORNEROT
28 1 Arnaud FORNEROT
ou le puller si déjà cloné
29 3 Arnaud FORNEROT
<pre>
30 1 Arnaud FORNEROT
git clone https://afornerot@dev-eole.ac-dijon.fr/git/git-package.git
31 3 Arnaud FORNEROT
</pre>
32 1 Arnaud FORNEROT
33 2 Arnaud FORNEROT
34 2 Arnaud FORNEROT
35 1 Arnaud FORNEROT
h2. Paramétrage de git-package
36 3 Arnaud FORNEROT
37 1 Arnaud FORNEROT
Suivre la documentation suivante = https://dev-eole.ac-dijon.fr/projects/git-package/wiki
38 1 Arnaud FORNEROT
Bien faire attention dans les commandes ln de mettre le chemin vers le repertoire de stockage du clone de git-package
39 1 Arnaud FORNEROT
40 1 Arnaud FORNEROT
Pour placer la liste de dépot par défaut sur envole 
41 3 Arnaud FORNEROT
<pre>
42 1 Arnaud FORNEROT
vim ~/.gitconfig
43 3 Arnaud FORNEROT
</pre>
44 1 Arnaud FORNEROT
45 1 Arnaud FORNEROT
et ajouter la section
46 3 Arnaud FORNEROT
<pre>
47 1 Arnaud FORNEROT
[package]
48 1 Arnaud FORNEROT
        distribution = envole-4/experimental
49 1 Arnaud FORNEROT
        distribution = envole-4/unstable
50 1 Arnaud FORNEROT
        distribution = eole-2.4/experimental
51 1 Arnaud FORNEROT
        distribution = eole-2.4/unstable
52 3 Arnaud FORNEROT
</pre>
53 1 Arnaud FORNEROT
54 1 Arnaud FORNEROT
En sachant que la commande de compilation utilisera la premiere ligne dans le cas où l'option -d n'est pas spécifiée
55 2 Arnaud FORNEROT
56 2 Arnaud FORNEROT
57 1 Arnaud FORNEROT
58 5 Daniel Dehennin
h2. Si le projet n’est jamais passé en 2.4
59 1 Arnaud FORNEROT
60 5 Daniel Dehennin
Demander à EOLE qui fasse le nécessaire en terme d'activation de compilation 2.4 sur ce projet.
61 5 Daniel Dehennin
62 5 Daniel Dehennin
h3. Créer un tag pour le dernier paquet 2.3
63 5 Daniel Dehennin
64 1 Arnaud FORNEROT
Tagger la branche de compilation 2.3 (la puller avant) pour indiquer le dernier paquet 2.3 en respectant la syntaxe suivante
65 3 Arnaud FORNEROT
66 3 Arnaud FORNEROT
<pre>
67 1 Arnaud FORNEROT
git tag -s -m "Debian package version <version>" pkg/envole/envole-4/<version>
68 3 Arnaud FORNEROT
</pre>
69 1 Arnaud FORNEROT
<version> = dernier numéro de paquet présent dans le changelog en remplaçant les tild ("~") par des underscore ("_")
70 1 Arnaud FORNEROT
71 3 Arnaud FORNEROT
*exemple*
72 3 Arnaud FORNEROT
<pre>
73 1 Arnaud FORNEROT
git checkout dist/ubuntu/lucid/master
74 1 Arnaud FORNEROT
git tag -s -m "Debian package 1.0-eole15~3.gbpb922df" pkg/envole/envole-4/1.0-eole15_3.gbpb922df
75 3 Arnaud FORNEROT
git push origin pkg/envole/envole-4/1.0-eole15_3.gbpb922df
76 1 Arnaud FORNEROT
</pre>
77 2 Arnaud FORNEROT
78 2 Arnaud FORNEROT
79 5 Daniel Dehennin
h3. dupliquer la branche de compilation 2.3 en 24
80 1 Arnaud FORNEROT
81 3 Arnaud FORNEROT
<pre>
82 1 Arnaud FORNEROT
git checkout dist/ubuntu/lucid/master
83 1 Arnaud FORNEROT
git checkout -b dist/envole/<version majeur envole>/master
84 3 Arnaud FORNEROT
</pre>
85 1 Arnaud FORNEROT
86 1 Arnaud FORNEROT
en ce moment le numéro est 4
87 1 Arnaud FORNEROT
88 2 Arnaud FORNEROT
89 2 Arnaud FORNEROT
90 5 Daniel Dehennin
h3. Suppression du fichier debian/changelog 
91 3 Arnaud FORNEROT
92 1 Arnaud FORNEROT
<pre>
93 1 Arnaud FORNEROT
git rm debian/changelog 
94 1 Arnaud FORNEROT
git commit -m "Suppression changelog pour builder EOLE"
95 3 Arnaud FORNEROT
</pre>
96 1 Arnaud FORNEROT
97 3 Arnaud FORNEROT
98 5 Daniel Dehennin
h3. Création du fichier debian/gpb.conf
99 3 Arnaud FORNEROT
100 3 Arnaud FORNEROT
<pre>
101 1 Arnaud FORNEROT
cat > debian/gpb.conf <<EOF
102 1 Arnaud FORNEROT
# Set per distribution debian tag
103 1 Arnaud FORNEROT
[DEFAULT]
104 1 Arnaud FORNEROT
debian-tag = debian/envole/4/%(version)s
105 1 Arnaud FORNEROT
EOF
106 1 Arnaud FORNEROT
107 1 Arnaud FORNEROT
git add debian/gpb.conf
108 3 Arnaud FORNEROT
</pre>
109 1 Arnaud FORNEROT
110 2 Arnaud FORNEROT
111 2 Arnaud FORNEROT
112 5 Daniel Dehennin
h3. Passage du projet en natif
113 1 Arnaud FORNEROT
114 3 Arnaud FORNEROT
<pre>
115 1 Arnaud FORNEROT
mkdir -p debian/source
116 1 Arnaud FORNEROT
cat > debian/source/format <<EOF
117 1 Arnaud FORNEROT
3.0 (native)
118 1 Arnaud FORNEROT
EOF
119 1 Arnaud FORNEROT
120 1 Arnaud FORNEROT
git add debian/source/format
121 3 Arnaud FORNEROT
</pre>
122 2 Arnaud FORNEROT
123 1 Arnaud FORNEROT
124 1 Arnaud FORNEROT
125 5 Daniel Dehennin
h3. Commit des changements de packaging
126 1 Arnaud FORNEROT
127 3 Arnaud FORNEROT
<pre>
128 1 Arnaud FORNEROT
git commit -m "Configuration pour builder EOLE"
129 1 Arnaud FORNEROT
git push -u
130 3 Arnaud FORNEROT
</pre>
131 2 Arnaud FORNEROT
132 1 Arnaud FORNEROT
133 1 Arnaud FORNEROT
134 5 Daniel Dehennin
h3. Tagger la branche master
135 1 Arnaud FORNEROT
136 1 Arnaud FORNEROT
<pre>
137 1 Arnaud FORNEROT
git checkout master
138 1 Arnaud FORNEROT
git tag -s -m "New Envole release 4.0" release/4.0
139 1 Arnaud FORNEROT
</pre>
140 1 Arnaud FORNEROT
141 5 Daniel Dehennin
h2. Si le projet est déjà compilé pour EOLE 2.4
142 1 Arnaud FORNEROT
143 7 Daniel Dehennin
[[MigrationAppliEnvole4#État-des-lieux-application-par-application|La plupart des préparatifs ont déjà été fait]].
144 7 Daniel Dehennin
145 8 Daniel Dehennin
Il faut migrer certains éléments pour l’utilisation des "dépôts Envole":http://eole.ac-dijon.fr/envole.
146 8 Daniel Dehennin
147 8 Daniel Dehennin
*@ATTENTION@* : Assurez-vous que les branches soient bien à jour par rapport aux dépôts sur *@dev-eole.ac-dijon.fr@*.
148 8 Daniel Dehennin
149 8 Daniel Dehennin
h3. Créer la branche de packaging Envole 4
150 8 Daniel Dehennin
151 8 Daniel Dehennin
<pre>
152 8 Daniel Dehennin
moi@work:~/src/wordpress (master)$ git checkout -b dist/envole/4/master dist/ubuntu/precise/master
153 8 Daniel Dehennin
154 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git push -u $(git config branch.master.remote) dist/envole/4/master
155 8 Daniel Dehennin
</pre>
156 8 Daniel Dehennin
157 8 Daniel Dehennin
h3. Renommé le tag de la dernière compilation EOLE 2.4
158 8 Daniel Dehennin
159 8 Daniel Dehennin
Un tag de la forme *@pkg/*@* est positionné sur la branche de packaging afin de pouvoir suivre les demandes de compilation.
160 8 Daniel Dehennin
161 8 Daniel Dehennin
h4. Déterminer le tag de la dernière compilation EOLE 2.4
162 8 Daniel Dehennin
163 8 Daniel Dehennin
<pre>
164 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git describe --abbrev=0 dist/ubuntu/precise/master
165 8 Daniel Dehennin
pkg/eole/eole-2.4/3.6.1-eodist/envole/4/masterle3-1
166 8 Daniel Dehennin
167 8 Daniel Dehennin
moi@work:~/src/wordpress ()$ EOLE_TAG=$(git describe --abbrev=0 dist/ubuntu/precise/master)
168 8 Daniel Dehennin
</pre>
169 8 Daniel Dehennin
170 8 Daniel Dehennin
h4. Vérifier le message du tag
171 8 Daniel Dehennin
172 8 Daniel Dehennin
Nous allons réutiliser le message du tag de la dernière compilation EOLE 2.4, la première ligne non vide doit contenir la chaîne *@New package version@* :
173 8 Daniel Dehennin
174 8 Daniel Dehennin
<pre>
175 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git show -s --format="format:" ${EOLE_TAG} | perl -lane 'print if (/New package version/ .. /^-+BEGIN/) =~ /^\d+$/'
176 8 Daniel Dehennin
177 8 Daniel Dehennin
moi@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+$/')
178 8 Daniel Dehennin
</pre>
179 8 Daniel Dehennin
180 8 Daniel Dehennin
h4. Dupliquer le tag de la dernière compilation EOLE 2.4 en premier tag de compilation Envole
181 8 Daniel Dehennin
182 8 Daniel Dehennin
<pre>
183 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git tag -s -m "${EOLE_MESSAGE}" pkg/envole/envole-4/${VERSION} ${EOLE_TAG}^{}
184 8 Daniel Dehennin
</pre>
185 8 Daniel Dehennin
186 8 Daniel Dehennin
On vérifie le message:
187 8 Daniel Dehennin
188 8 Daniel Dehennin
<pre>
189 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git show pkg/envole/envole-4/${VERSION}
190 8 Daniel Dehennin
</pre>
191 8 Daniel Dehennin
192 8 Daniel Dehennin
h4. Pousser le nouveau tag
193 8 Daniel Dehennin
194 8 Daniel Dehennin
<pre>
195 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git push $(git config branch.master.remote) pkg/envole/envole-4/${VERSION}
196 8 Daniel Dehennin
</pre>
197 8 Daniel Dehennin
198 6 Daniel Dehennin
h3. Renommé le tag du dernier paquet EOLE 2.4
199 6 Daniel Dehennin
200 8 Daniel Dehennin
Un tag de la forme *@debian/*@* est créé par l’infrastructure de compilation de paquet afin de gérer automatiquement le fichier *@debian/changelog@*.
201 8 Daniel Dehennin
202 6 Daniel Dehennin
h4. Déterminer le tag du dernier paquet EOLE 2.4
203 1 Arnaud FORNEROT
204 8 Daniel Dehennin
<pre>
205 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ awk -F'=' '/^debian-tag/ {print $2}' debian/gbp.conf | sed -e "s,%(version)s,${VERSION},"
206 8 Daniel Dehennin
 debian/eole/2.4/3.6.1-eole3-1
207 1 Arnaud FORNEROT
208 8 Daniel Dehennin
moi@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},"))
209 8 Daniel Dehennin
</pre>
210 8 Daniel Dehennin
211 8 Daniel Dehennin
h4. Récupérer le tag du dernier paquet EOLE 2.4
212 8 Daniel Dehennin
213 8 Daniel Dehennin
Les tag 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@*.
214 8 Daniel Dehennin
215 8 Daniel Dehennin
Pour récupérer le dernier tag de paquet:
216 8 Daniel Dehennin
217 1 Arnaud FORNEROT
<pre>
218 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git fetch $(git config branch.master.remote) refs/tags/${EOLE_DEB_TAG}:refs/tags/${EOLE_DEB_TAG}
219 1 Arnaud FORNEROT
</pre>
220 6 Daniel Dehennin
221 6 Daniel Dehennin
h4. Vérifier le message du tag
222 1 Arnaud FORNEROT
223 6 Daniel Dehennin
<pre>
224 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git show -s --format="format:" ${EOLE_DEB_TAG} | perl -lane 'print if (/Debian release/ .. /^-+BEGIN/) =~ /^\d+$/'
225 8 Daniel Dehennin
eole-wordpress Debian release 3.6.1-eole3-1
226 8 Daniel Dehennin
227 8 Daniel Dehennin
moi@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+$/')
228 6 Daniel Dehennin
</pre>
229 1 Arnaud FORNEROT
230 8 Daniel Dehennin
231 6 Daniel Dehennin
h4. Dupliquer le tag du dernier paquet EOLE 2.4 en premier tag de paquet Envole
232 1 Arnaud FORNEROT
233 1 Arnaud FORNEROT
<pre>
234 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git tag -s -m "${DEB_MESSAGE}" debian/envole/4/${VERSION} ${EOLE_DEB_TAG}^{}
235 1 Arnaud FORNEROT
</pre>
236 1 Arnaud FORNEROT
237 8 Daniel Dehennin
On vérifie le message
238 1 Arnaud FORNEROT
239 1 Arnaud FORNEROT
<pre>
240 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git show debian/envole/4/${VERSION}
241 1 Arnaud FORNEROT
</pre>
242 1 Arnaud FORNEROT
243 8 Daniel Dehennin
244 8 Daniel Dehennin
h4. Pousser le nouveau tag
245 8 Daniel Dehennin
246 8 Daniel Dehennin
<pre>
247 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git push $(git config branch.master.remote) debian/envole/4/${VERSION}
248 8 Daniel Dehennin
</pre>
249 8 Daniel Dehennin
250 8 Daniel Dehennin
251 6 Daniel Dehennin
h3. Modifier la configuration git-buildpackage
252 6 Daniel Dehennin
253 8 Daniel Dehennin
Il faut modifier modifier le fichier de configuration *@debian/gbp.conf@* afin de modifier le format des tags de suivi des compilations:
254 8 Daniel Dehennin
255 8 Daniel Dehennin
<pre>
256 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ sed -i -e 's,^debian-tag.*,debian-tag = debian/envole/4/%(version)s,' debian/gbp.conf
257 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git add debian/gbp.conf
258 8 Daniel Dehennin
moi@work:~/src/wordpress (dist/envole/4/master)$ git commit -m "Configuration pour builder EOLE"
259 8 Daniel Dehennin
</pre>
260 8 Daniel Dehennin
261 8 Daniel Dehennin
262 8 Daniel Dehennin
263 1 Arnaud FORNEROT
264 1 Arnaud FORNEROT
h2. Compilation
265 3 Arnaud FORNEROT
266 1 Arnaud FORNEROT
<pre>
267 3 Arnaud FORNEROT
git package -b
268 1 Arnaud FORNEROT
</pre>
269 1 Arnaud FORNEROT
donc par défaut c'est en expérimental
270 3 Arnaud FORNEROT
271 1 Arnaud FORNEROT
<pre>
272 3 Arnaud FORNEROT
git package -b -d envole-4/unstable
273 2 Arnaud FORNEROT
</pre>
274 2 Arnaud FORNEROT
pour une compilation en dev
275 1 Arnaud FORNEROT
276 1 Arnaud FORNEROT
277 1 Arnaud FORNEROT
278 1 Arnaud FORNEROT
h2. Pour tester un paquet en expérimental
279 3 Arnaud FORNEROT
280 3 Arnaud FORNEROT
sur environnement de test faire
281 3 Arnaud FORNEROT
<pre>
282 3 Arnaud FORNEROT
Query-Auto -V test-eole.ac-dijon.fr
283 1 Arnaud FORNEROT
</pre>
284 3 Arnaud FORNEROT
285 1 Arnaud FORNEROT
<pre>
286 1 Arnaud FORNEROT
cat > /etc/apt/sources.list.d/envole.list <<EOF
287 1 Arnaud FORNEROT
deb http://test-eole.ac-dijon.fr/envole envole-4-experimental main
288 3 Arnaud FORNEROT
EOF
289 1 Arnaud FORNEROT
</pre>
290 1 Arnaud FORNEROT
291 2 Arnaud FORNEROT
292 2 Arnaud FORNEROT
293 1 Arnaud FORNEROT
h2. Installer un paquet expérimental
294 3 Arnaud FORNEROT
295 1 Arnaud FORNEROT
<pre>
296 2 Arnaud FORNEROT
Query-Auto
297 3 Arnaud FORNEROT
apt-cache policy "nom du paquet"
298 3 Arnaud FORNEROT
</pre>
299 1 Arnaud FORNEROT
300 1 Arnaud FORNEROT
la commande retourne le numero de version du paquet par dépot
301 1 Arnaud FORNEROT
Il faudra faire un apt-get install "nom du paquet"="version du paquet"
302 1 Arnaud FORNEROT
303 3 Arnaud FORNEROT
exemple
304 1 Arnaud FORNEROT
<pre>
305 3 Arnaud FORNEROT
apt-get install eole-posh-profil=4.0-1~1.gbpcc1457
306 1 Arnaud FORNEROT
</pre>
307 2 Arnaud FORNEROT
308 1 Arnaud FORNEROT
309 2 Arnaud FORNEROT
310 1 Arnaud FORNEROT
h2. Installer un paquet non expérimental
311 1 Arnaud FORNEROT
312 3 Arnaud FORNEROT
C'est comme d'habitude
313 1 Arnaud FORNEROT
<pre>
314 1 Arnaud FORNEROT
Query-Auto -D -V test-eole.ac-dijon.fr
315 3 Arnaud FORNEROT
apt-eole install eole-XXX XXX-apps
316 1 Arnaud FORNEROT
</pre>
317 2 Arnaud FORNEROT
318 2 Arnaud FORNEROT
319 1 Arnaud FORNEROT
320 2 Arnaud FORNEROT
h2. Adaptation du packaging 
321 1 Arnaud FORNEROT
322 1 Arnaud FORNEROT
Suivre les recommandations du wiki suivant
323 1 Arnaud FORNEROT
https://dev-eole.ac-dijon.fr/projects/envole/wiki/MigrationAppliEnvole4