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