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 |