MigrationAppliEnvole4 » Historique » Version 92
Lionel Morin, 19/05/2014 11:39
1 | 1 | Lionel Morin | h1. Migration d'une application Envole vers la version EOLE 2.4 (ébauche) |
---|---|---|---|
2 | 1 | Lionel Morin | |
3 | 25 | Joël Cuissinat | {{>toc}} |
4 | 25 | Joël Cuissinat | |
5 | 3 | Lionel Morin | Pour faciliter le travail de packaging, il est nécessaire de [[eole-skeletor:Doc-geting-started| "skeletoriser"]] le dépot 2.3 pour le [[eole:EoleDebianPackaging24| transformer en dépot 2.4]]. |
6 | 5 | Lionel Morin | |
7 | 13 | Lionel Morin | h2. Nouvelle organisation du dépot git |
8 | 1 | Lionel Morin | |
9 | 13 | Lionel Morin | Une nouvelle organisation globale des dépots git pour Envole est mise en place et sera commune pour 2.3 et 2.4. |
10 | 13 | Lionel Morin | |
11 | 13 | Lionel Morin | h3. Description des branches |
12 | 13 | Lionel Morin | |
13 | 8 | Lionel Morin | |_.Sources originales |_.Sources modifiées pour Envole |_.Ajouts EOLE |_.Packaging | |
14 | 13 | Lionel Morin | |/2=.upstream |/2=.=> patch |/2=.=> master |=> packaging 2.3| |
15 | 1 | Lionel Morin | | => packaging 2.4| |
16 | 4 | Lionel Morin | |
17 | 15 | Lionel Morin | * la branche _*upstream*_ ne contient que les sources originales de l'application et sert de référence pour la branche patch |
18 | 13 | Lionel Morin | * la branche _*patch*_ contient les sources patchées pour envole (il y a ici possibilité de générer un paquet envole-<nom_appli>) |
19 | 1 | Lionel Morin | * la branche _*master*_ est commune en 2.3 et 2.4 (sous réserve de rester compatible) et comporte, en plus des sources, tous les ajouts EOLE (templates, dicos, scripts, sql, password...) |
20 | 14 | Lionel Morin | * les branches de *_packaging_*, une par version |
21 | 21 | Lionel Morin | Les flèches "=>" représentent le sens de merge des branches. (*uptream* est mergée dans *patch* qui est mergée dans *master* qui est mergée dans *packaging*) |
22 | 22 | Lionel Morin | Il est important de bien respecter ce sens de merge au risque de perdre des fichiers et rendre le dépot git inutilisable. |
23 | 13 | Lionel Morin | |
24 | 13 | Lionel Morin | h3. Étapes de migration d'un dépot |
25 | 13 | Lionel Morin | |
26 | 14 | Lionel Morin | # Créer la branche "patch" à partir de "master" : |
27 | 13 | Lionel Morin | <pre> |
28 | 14 | Lionel Morin | user:~/depot/monappli (master)$ git checkout -b patch |
29 | 1 | Lionel Morin | </pre> |
30 | 1 | Lionel Morin | # Supprimer tout le contenu autre que le dossier src : |
31 | 14 | Lionel Morin | <pre> |
32 | 16 | Lionel Morin | user:~/depot/monappli (patch)$ git rm -r dicos/* sso/* tmpl/* sql/* Makefile eole.mk apps.mk # etc... |
33 | 14 | Lionel Morin | </pre> |
34 | 14 | Lionel Morin | # Commiter |
35 | 14 | Lionel Morin | <pre> |
36 | 14 | Lionel Morin | user:~/depot/monappli (patch)$ git commit -m "Suppression de la partie EOLE" |
37 | 14 | Lionel Morin | </pre> |
38 | 17 | Lionel Morin | # Créer la branche "upstream" à partir de "patch" : |
39 | 17 | Lionel Morin | <pre> |
40 | 17 | Lionel Morin | user:~/depot/monappli (patch)$ git checkout -b upstream |
41 | 17 | Lionel Morin | </pre> |
42 | 17 | Lionel Morin | # Supprimer toutes les sources du dossier src : |
43 | 17 | Lionel Morin | <pre> |
44 | 17 | Lionel Morin | user:~/depot/monappli (upstream)$ git rm -r src/monappli-1.0.0/* src/plugins-1.0.0/* # etc... |
45 | 17 | Lionel Morin | </pre> |
46 | 17 | Lionel Morin | # Télécharger les sources de l'application depuis le site d'origine (fichier tar.gz) |
47 | 17 | Lionel Morin | # Décompresser les sources dans le dossier src et renommer le dossier selon la nomenclature skeletor : |
48 | 17 | Lionel Morin | <pre> |
49 | 18 | Lionel Morin | user:~/depot/monappli (upstream)/src$ tar -xvzf ~/monappli-1.0.0.tar.gz |
50 | 18 | Lionel Morin | user:~/depot/monappli (upstream)$ mv monappli monappli-1.0.0 |
51 | 17 | Lionel Morin | </pre> |
52 | 19 | Lionel Morin | # Commiter |
53 | 19 | Lionel Morin | <pre> |
54 | 19 | Lionel Morin | user:~/depot/monappli (upstream)$ git commit -m "Mise en place des sources 1.0.0" |
55 | 19 | Lionel Morin | </pre> |
56 | 19 | Lionel Morin | # Merge de la branche "upstream" dans "patch" (avec une option pour conserver les fichiers de "patch") : |
57 | 19 | Lionel Morin | <pre> |
58 | 19 | Lionel Morin | user:~/depot/monappli (upstream)$ git checkout patch |
59 | 19 | Lionel Morin | user:~/depot/monappli (patch)$ git merge -s ours upstream |
60 | 19 | Lionel Morin | </pre> |
61 | 19 | Lionel Morin | # Merge de la branche "patch" dans "master" (avec une option pour conserver les fichiers de "master") : |
62 | 19 | Lionel Morin | <pre> |
63 | 19 | Lionel Morin | user:~/depot/monappli (patch)$ git checkout master |
64 | 19 | Lionel Morin | user:~/depot/monappli (master)$ git merge -s ours patch |
65 | 19 | Lionel Morin | </pre> |
66 | 1 | Lionel Morin | |
67 | 23 | Lionel Morin | Les options de merge étant conservées, les prochains merge pourront se faire avec un simple "@git merge ...@". |
68 | 20 | Lionel Morin | Il est important de bien respecter le flux de merge des branches (représenté par "=>" dans le tableau au-dessus). |
69 | 20 | Lionel Morin | |
70 | 47 | Lionel Morin | Pour simplifier ce travail, on pourra reporter la création de la branche "upstream" et l'effectuer à l'occasion d'une montée de version de l'application. |
71 | 46 | Lionel Morin | |
72 | 1 | Lionel Morin | h2. Modification des dicos |
73 | 1 | Lionel Morin | |
74 | 1 | Lionel Morin | Normalement il n'y a rien à changer. |
75 | 1 | Lionel Morin | |
76 | 1 | Lionel Morin | h2. Modification des templates |
77 | 1 | Lionel Morin | |
78 | 1 | Lionel Morin | Certaines variables souvent utilisées dans Envole ont changé de nom. |
79 | 1 | Lionel Morin | |
80 | 1 | Lionel Morin | |_.Nom en 2.3 |_.Nouveau nom en 2.4 | |
81 | 1 | Lionel Morin | |adresse_ip_annuaire |container_ip_annuaire | |
82 | 1 | Lionel Morin | |adresse_ip_fichier |container_ip_fichier | |
83 | 1 | Lionel Morin | |adresse_ip_mail |container_ip_mail | |
84 | 1 | Lionel Morin | |adresse_ip_mysql |container_ip_mysql | |
85 | 1 | Lionel Morin | |adresse_ip_web |container_ip_web | |
86 | 1 | Lionel Morin | |
87 | 24 | Joël Cuissinat | *=> Ces variables peuvent être rajoutées en 2.4 pour une rétro-compatibilité (#5701)* |
88 | 1 | Lionel Morin | |
89 | 1 | Lionel Morin | h2. Modification des scripts shell |
90 | 2 | Lionel Morin | |
91 | 2 | Lionel Morin | h3. CreoleGet |
92 | 2 | Lionel Morin | |
93 | 2 | Lionel Morin | <pre> |
94 | 2 | Lionel Morin | .ParseDico |
95 | 2 | Lionel Morin | echo $mavariable |
96 | 2 | Lionel Morin | </pre> |
97 | 2 | Lionel Morin | est remplacé par : |
98 | 2 | Lionel Morin | <pre> |
99 | 2 | Lionel Morin | echo $(CreoleGet mavariable) |
100 | 2 | Lionel Morin | </pre> |
101 | 2 | Lionel Morin | |
102 | 2 | Lionel Morin | ATTENTION : à ce jour, pour accéder à une variable esclave, il faut connaître la variable maître : |
103 | 2 | Lionel Morin | <pre> |
104 | 1 | Lionel Morin | echo $(CreoleGet lamaster.lesclave) |
105 | 1 | Lionel Morin | </pre> |
106 | 2 | Lionel Morin | |
107 | 90 | Lionel Morin | *Il est possible de tester la présence de ParseDico avant de le lancer et ainsi faire en sorte d'avoir des scripts communs en 2.3 et en 2.4* |
108 | 3 | Lionel Morin | |
109 | 89 | Lionel Morin | Code d'exemple tiré de grr : |
110 | 92 | Lionel Morin | <pre><code class="python"> |
111 | 89 | Lionel Morin | #!/bin/bash |
112 | 89 | Lionel Morin | if [ -f /usr/bin/ParseDico ];then |
113 | 89 | Lionel Morin | #EOLE 2.3 |
114 | 89 | Lionel Morin | . ParseDico |
115 | 89 | Lionel Morin | . /etc/eole/containers.conf |
116 | 11 | Lionel Morin | else |
117 | 89 | Lionel Morin | #EOLE 2.4 |
118 | 89 | Lionel Morin | activer_apache=$(CreoleGet activer_apache) |
119 | 89 | Lionel Morin | activer_grr=$(CreoleGet activer_grr non) |
120 | 89 | Lionel Morin | container_path_web=$(CreoleGet container_path_web) |
121 | 1 | Lionel Morin | fi |
122 | 1 | Lionel Morin | |
123 | 89 | Lionel Morin | if [ "$activer_apache" = "oui" ] && [ "$activer_grr" = "oui" ];then |
124 | 89 | Lionel Morin | /usr/share/envole/grr/InstallEnvoleGrr.php |
125 | 89 | Lionel Morin | www_grr="$container_path_web/var/www/html/grr" |
126 | 89 | Lionel Morin | chmod 774 "$www_grr/images" |
127 | 89 | Lionel Morin | fi |
128 | 89 | Lionel Morin | |
129 | 89 | Lionel Morin | exit 0 |
130 | 7 | Lionel Morin | </pre> |
131 | 2 | Lionel Morin | |
132 | 2 | Lionel Morin | h3. CreoleRun |
133 | 2 | Lionel Morin | |
134 | 2 | Lionel Morin | <pre> |
135 | 2 | Lionel Morin | ./usr/share/eole/FonctionsEoleNg |
136 | 2 | Lionel Morin | RunCmd "ma -commande" conteneur |
137 | 2 | Lionel Morin | </pre> |
138 | 1 | Lionel Morin | est remplacé par : |
139 | 1 | Lionel Morin | <pre> |
140 | 2 | Lionel Morin | CreoleRun "ma -commande" conteneur |
141 | 3 | Lionel Morin | </pre> |
142 | 43 | Lionel Morin | |
143 | 91 | Lionel Morin | *Il est possible d'émuler la commande RunCmd en 2.4 ou bien émuler CreoleRun en 2.3.* |
144 | 91 | Lionel Morin | Exemple de code : |
145 | 91 | Lionel Morin | <pre> |
146 | 91 | Lionel Morin | #!/bin/bash |
147 | 91 | Lionel Morin | if [ -f /usr/bin/ParseDico ];then |
148 | 91 | Lionel Morin | RunCmd=RunCmd |
149 | 91 | Lionel Morin | . /usr/bin/ParseDico |
150 | 91 | Lionel Morin | . /etc/eole/containers.conf |
151 | 91 | Lionel Morin | . /usr/share/eole/FonctionsEoleNg |
152 | 91 | Lionel Morin | else |
153 | 91 | Lionel Morin | RunCmd=CreoleRun |
154 | 91 | Lionel Morin | activer_moodle=$(CreoleGet activer_moodle) |
155 | 91 | Lionel Morin | fi |
156 | 91 | Lionel Morin | |
157 | 91 | Lionel Morin | CMD="cd ${INSTALL_DIR} ; ${BIN_PHP} ${UPGRADE_SCRIPT} --non-interactive" |
158 | 91 | Lionel Morin | |
159 | 91 | Lionel Morin | $RunCmd "${BIN_SU} - ${APACHE_USER} -s /bin/bash -c \"${CMD}\"" web |
160 | 91 | Lionel Morin | </pre> |
161 | 2 | Lionel Morin | |
162 | 2 | Lionel Morin | h2. Problèmes spécifiques |
163 | 2 | Lionel Morin | |
164 | 2 | Lionel Morin | h3. Problème de connexion aux bases MySQL #5633 |
165 | 2 | Lionel Morin | |
166 | 26 | Joël Cuissinat | Pour y remédier temporairement, on peut mettre "localhost" à la place de "127.0.0.1" (penser à la fois aux fichiers sql et aux fichiers de config php). |
167 | 26 | Joël Cuissinat | |
168 | 26 | Joël Cuissinat | h2. État des lieux application par application |
169 | 26 | Joël Cuissinat | |
170 | 26 | Joël Cuissinat | h3. Ajaxplorer |
171 | 57 | Joël Cuissinat | |
172 | 26 | Joël Cuissinat | OK => *eole-ajaxplorer (4.2.3-eole3-1)* |
173 | 80 | Lionel Morin | |
174 | 80 | Lionel Morin | MAJ Envole 3.3.7 => *eole-ajaxplorer 4.2.3-eole4-1* |
175 | 82 | Lionel Morin | |
176 | 81 | Lionel Morin | _Problème au moment du test car piwik n'était pas installé (dans /var/www/html/ajaxplorer/plugins/gui.ajax/class.AJXP_ClientDriver.php +216 : include d'une lib piwik)_ |
177 | 26 | Joël Cuissinat | |
178 | 26 | Joël Cuissinat | h3. phpMyAdmin |
179 | 66 | Joël Cuissinat | |
180 | 26 | Joël Cuissinat | OK => *eole-phpmyadmin (2.4.0-6)* |
181 | 26 | Joël Cuissinat | |
182 | 26 | Joël Cuissinat | h3. Piwik |
183 | 64 | Joël Cuissinat | |
184 | 26 | Joël Cuissinat | paquet *eole-piwik (1.12-eole1-1)* à déboguer ... |
185 | 26 | Joël Cuissinat | |
186 | 26 | Joël Cuissinat | h3. Cdt |
187 | 67 | Joël Cuissinat | |
188 | 26 | Joël Cuissinat | OK => *eole-cdt (4.9.3.7-eole1-2)* |
189 | 77 | Lionel Morin | |
190 | 71 | Lionel Morin | MAJ Envole 3.3.7 => *eole-cdt 4.9.4.4-eole2-1* |
191 | 26 | Joël Cuissinat | |
192 | 26 | Joël Cuissinat | h3. Dokuwiki |
193 | 48 | Lionel Morin | |
194 | 26 | Joël Cuissinat | OK => *eole-dokuwiki (2012-01-25a-eole2-4)* |
195 | 77 | Lionel Morin | |
196 | 72 | Lionel Morin | MAJ Envole 3.3.7 => *eole-dokuwiki_2012-01-25a-eole4-1* |
197 | 26 | Joël Cuissinat | |
198 | 26 | Joël Cuissinat | h3. FluxBB |
199 | 45 | Joël Cuissinat | |
200 | 26 | Joël Cuissinat | OK => *eole-fluxbb (1.5.3.eole1-1)* |
201 | 83 | Lionel Morin | |
202 | 70 | Lionel Morin | MAJ Envole 3.3.7 => *eole-fluxbb 1.5.3.eole3-1* (#7686 est prise en compte) |
203 | 26 | Joël Cuissinat | |
204 | 26 | Joël Cuissinat | h3. Gepi |
205 | 53 | Lionel Morin | |
206 | 26 | Joël Cuissinat | OK => *eole-gepi (1.6.3-eole2-1)* |
207 | 77 | Lionel Morin | |
208 | 73 | Lionel Morin | MAJ Envole 3.3.7 => *eole-gepi 1.6.3-eole4-1* |
209 | 26 | Joël Cuissinat | |
210 | 26 | Joël Cuissinat | h3. GRR |
211 | 65 | Joël Cuissinat | |
212 | 26 | Joël Cuissinat | OK => *eole-grr (1.9.7e-eole1-1)* |
213 | 77 | Lionel Morin | |
214 | 74 | Lionel Morin | MAJ Envole 3.3.7 => *eole-grr 1.9.7e-eole2-1* |
215 | 26 | Joël Cuissinat | |
216 | 26 | Joël Cuissinat | h3. Jappix |
217 | 63 | Joël Cuissinat | |
218 | 26 | Joël Cuissinat | OK => *eole-jappix (0.9.0-eole1-1)* |
219 | 86 | Lionel Morin | |
220 | 85 | Lionel Morin | MAJ Envole 3.3.7 => *eole-jappix 0.9.0-eole1-2* |
221 | 26 | Joël Cuissinat | |
222 | 26 | Joël Cuissinat | h3. Moodle |
223 | 44 | Joël Cuissinat | |
224 | 26 | Joël Cuissinat | KO : script _posttemplate/12-moodle_ non compatible 2.4 (#5964) |
225 | 26 | Joël Cuissinat | |
226 | 1 | Lionel Morin | h3. Moodle BigBlueButton |
227 | 26 | Joël Cuissinat | |
228 | 26 | Joël Cuissinat | _Non testé_ |
229 | 26 | Joël Cuissinat | |
230 | 1 | Lionel Morin | h3. Moodle Référentiel |
231 | 26 | Joël Cuissinat | |
232 | 26 | Joël Cuissinat | _Non testé_ |
233 | 26 | Joël Cuissinat | |
234 | 26 | Joël Cuissinat | h3. Piwigo |
235 | 57 | Joël Cuissinat | |
236 | 49 | Lionel Morin | OK => *eole-piwigo (2.3.5-eole2-1)* |
237 | 77 | Lionel Morin | |
238 | 75 | Lionel Morin | MAJ Envole 3.3.7 => *eole-piwigo 2.3.5-eole3-1* |
239 | 75 | Lionel Morin | |
240 | 75 | Lionel Morin | _Problème au moment du test car piwik n'était pas installé (dans /var/www/html/piwigo/include/page_header.php +76 : require_once sur une lib piwik)_ |
241 | 26 | Joël Cuissinat | |
242 | 26 | Joël Cuissinat | h3. Roundcube |
243 | 57 | Joël Cuissinat | |
244 | 26 | Joël Cuissinat | OK => *eole-roundcube (0.9.1-eole2-1)* |
245 | 88 | Lionel Morin | |
246 | 84 | Lionel Morin | MAJ Envole 3.3.7 => *eole-roundcube 0.9.1-eole4-1* |
247 | 26 | Joël Cuissinat | |
248 | 26 | Joël Cuissinat | h3. SAP |
249 | 26 | Joël Cuissinat | |
250 | 1 | Lionel Morin | _Non testé_ |
251 | 26 | Joël Cuissinat | |
252 | 26 | Joël Cuissinat | h3. SPIP Eva |
253 | 26 | Joël Cuissinat | |
254 | 51 | Lionel Morin | OK => *eole-spipeva (3.0.10-eole1-1)* |
255 | 77 | Lionel Morin | |
256 | 51 | Lionel Morin | MAJ Envole 3.3.7 => *eole-spipeva 3.0.10-eole4-1* |
257 | 26 | Joël Cuissinat | |
258 | 26 | Joël Cuissinat | h3. Taskfreak |
259 | 52 | Lionel Morin | |
260 | 52 | Lionel Morin | OK => *eole-taskfreak (0.6.4-eole1-1)* |
261 | 57 | Joël Cuissinat | |
262 | 1 | Lionel Morin | mais problème d'encodage sur 2.4 (#6723) |
263 | 78 | Lionel Morin | |
264 | 78 | Lionel Morin | |
265 | 78 | Lionel Morin | MAJ Envole 3.3.7 => *eole-taskfreak 0.6.4-eole2-1* |
266 | 1 | Lionel Morin | |
267 | 1 | Lionel Morin | h3. Webcalendar |
268 | 69 | Joël Cuissinat | |
269 | 1 | Lionel Morin | OK => ? |
270 | 1 | Lionel Morin | |
271 | 1 | Lionel Morin | h3. WordPress |
272 | 1 | Lionel Morin | |
273 | 1 | Lionel Morin | OK => *eole-worpress (3.6.1-eole1-1)* |
274 | 79 | Lionel Morin | |
275 | 79 | Lionel Morin | MAJ Envole 3.3.7 => *eole-wordpress 3.6.1-eole3-1* |
276 | 26 | Joël Cuissinat | |
277 | 26 | Joël Cuissinat | h3. Zarafa |
278 | 26 | Joël Cuissinat | |
279 | 57 | Joël Cuissinat | _Non testé_ |
280 | 61 | Joël Cuissinat | |
281 | 61 | Joël Cuissinat | h3. CDC |
282 | 61 | Joël Cuissinat | |
283 | 61 | Joël Cuissinat | _Non testé_ |
284 | 62 | Joël Cuissinat | |
285 | 57 | Joël Cuissinat | h3. -SquirrelMail- |
286 | 57 | Joël Cuissinat | |
287 | 57 | Joël Cuissinat | _Ne sera pas supporté_ |
288 | 57 | Joël Cuissinat | |
289 | 57 | Joël Cuissinat | h3. -Gibii- |
290 | 57 | Joël Cuissinat | |
291 | 39 | Lionel Morin | _N'est déjà plus supporté en 2.3_ |
292 | 39 | Lionel Morin | |
293 | 39 | Lionel Morin | h2. Compilation en EOLE 2.4 |
294 | 39 | Lionel Morin | |
295 | 39 | Lionel Morin | Voir : http://dev-eole.ac-dijon.fr/projects/eole/wiki/PrepareEOLE24 |
296 | 42 | Lionel Morin | |
297 | 1 | Lionel Morin | *La nouvelle procédure de compilation de paquet se base sur les noms de tag de la branche master.* |
298 | 42 | Lionel Morin | |
299 | 42 | Lionel Morin | Donc à chaque modification du paquet il faudra taguer cette version avec un numéro supérieur à la précédente. |
300 | 42 | Lionel Morin | |
301 | 54 | Lionel Morin | Pour différencier les versions upstream et les versions modifiées par EOLE, on pourra taguer la branche upstream avec "upstream/x.y.z" (où x.y.z est son numéro de version) et les releases EOLE (branche master) avec "release/x.y.z-eoleX" (où X est le numéro de la version EOLE). |
302 | 54 | Lionel Morin | |
303 | 1 | Lionel Morin | Pour connaitre le dernier tag utilisé afin de l'incrémenter, tapez la commande @git describe@. |