Projet

Général

Profil

MigrationAppliEnvole4 » Historique » Version 81

Lionel Morin, 20/03/2014 09:51

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 12 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 10 Lionel Morin
Code à confirmer :
110 7 Lionel Morin
<pre>
111 10 Lionel Morin
if type -p ParseDico &> /dev/null; then
112 11 Lionel Morin
    .ParseDico
113 11 Lionel Morin
else
114 11 Lionel Morin
    # initialisation des variables utilisées
115 11 Lionel Morin
    adresse_ip_br0=$(CreoleGet adresse_ip_br0)
116 1 Lionel Morin
fi
117 11 Lionel Morin
118 11 Lionel Morin
echo $adresse_ip_br0
119 7 Lionel Morin
</pre>
120 7 Lionel Morin
121 2 Lionel Morin
h3. CreoleRun
122 2 Lionel Morin
123 2 Lionel Morin
<pre>
124 2 Lionel Morin
./usr/share/eole/FonctionsEoleNg
125 2 Lionel Morin
RunCmd "ma -commande" conteneur
126 2 Lionel Morin
</pre>
127 2 Lionel Morin
est remplacé par :
128 1 Lionel Morin
<pre>
129 1 Lionel Morin
CreoleRun "ma -commande" conteneur
130 2 Lionel Morin
</pre>
131 3 Lionel Morin
132 43 Lionel Morin
*=> Il est possible d'émuler la commande RunCmd en 2.4 ou bien émuler CreoleRun en 2.3.*
133 2 Lionel Morin
134 2 Lionel Morin
h2. Problèmes spécifiques
135 2 Lionel Morin
136 2 Lionel Morin
h3. Problème de connexion aux bases MySQL #5633
137 2 Lionel Morin
138 2 Lionel Morin
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).
139 26 Joël Cuissinat
140 26 Joël Cuissinat
h2. État des lieux application par application
141 26 Joël Cuissinat
142 26 Joël Cuissinat
h3. Ajaxplorer
143 26 Joël Cuissinat
144 57 Joël Cuissinat
OK => *eole-ajaxplorer (4.2.3-eole3-1)*
145 26 Joël Cuissinat
146 80 Lionel Morin
MAJ Envole 3.3.7 => *eole-ajaxplorer 4.2.3-eole4-1*
147 80 Lionel Morin
148 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'uned lib piwik)_
149 81 Lionel Morin
150 26 Joël Cuissinat
h3. phpMyAdmin
151 26 Joël Cuissinat
152 66 Joël Cuissinat
OK => *eole-phpmyadmin (2.4.0-6)*
153 26 Joël Cuissinat
154 26 Joël Cuissinat
h3. Piwik
155 26 Joël Cuissinat
156 64 Joël Cuissinat
paquet *eole-piwik (1.12-eole1-1)* à déboguer ...
157 26 Joël Cuissinat
158 26 Joël Cuissinat
h3. Cdt
159 26 Joël Cuissinat
160 67 Joël Cuissinat
OK => *eole-cdt (4.9.3.7-eole1-2)*
161 26 Joël Cuissinat
162 77 Lionel Morin
MAJ Envole 3.3.7 => *eole-cdt 4.9.4.4-eole2-1*
163 71 Lionel Morin
164 26 Joël Cuissinat
h3. Dokuwiki
165 26 Joël Cuissinat
166 48 Lionel Morin
OK => *eole-dokuwiki (2012-01-25a-eole2-4)*
167 26 Joël Cuissinat
168 77 Lionel Morin
MAJ Envole 3.3.7 => *eole-dokuwiki_2012-01-25a-eole4-1*
169 72 Lionel Morin
170 26 Joël Cuissinat
h3. FluxBB
171 26 Joël Cuissinat
172 45 Joël Cuissinat
OK => *eole-fluxbb (1.5.3.eole1-1)*
173 26 Joël Cuissinat
174 77 Lionel Morin
MAJ Envole 3.3.7 => *eole-fluxbb 1.5.3.eole2-2*
175 70 Lionel Morin
176 26 Joël Cuissinat
h3. Gepi
177 26 Joël Cuissinat
178 53 Lionel Morin
OK => *eole-gepi (1.6.3-eole2-1)*
179 26 Joël Cuissinat
180 77 Lionel Morin
MAJ Envole 3.3.7 => *eole-gepi 1.6.3-eole4-1*
181 73 Lionel Morin
182 26 Joël Cuissinat
h3. GRR
183 26 Joël Cuissinat
184 65 Joël Cuissinat
OK => *eole-grr (1.9.7e-eole1-1)*
185 26 Joël Cuissinat
186 77 Lionel Morin
MAJ Envole 3.3.7 => *eole-grr 1.9.7e-eole2-1*
187 74 Lionel Morin
188 26 Joël Cuissinat
h3. Jappix
189 26 Joël Cuissinat
190 63 Joël Cuissinat
OK => *eole-jappix (0.9.0-eole1-1)*
191 26 Joël Cuissinat
192 26 Joël Cuissinat
h3. Moodle
193 26 Joël Cuissinat
194 44 Joël Cuissinat
KO : script _posttemplate/12-moodle_ non compatible 2.4 (#5964)
195 26 Joël Cuissinat
196 26 Joël Cuissinat
h3. Moodle BigBlueButton
197 1 Lionel Morin
198 26 Joël Cuissinat
_Non testé_
199 26 Joël Cuissinat
200 26 Joël Cuissinat
h3. Moodle Référentiel
201 1 Lionel Morin
202 26 Joël Cuissinat
_Non testé_
203 26 Joël Cuissinat
204 26 Joël Cuissinat
h3. Piwigo
205 26 Joël Cuissinat
206 57 Joël Cuissinat
OK => *eole-piwigo (2.3.5-eole2-1)*
207 49 Lionel Morin
208 77 Lionel Morin
MAJ Envole 3.3.7 => *eole-piwigo 2.3.5-eole3-1*
209 75 Lionel Morin
210 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)_
211 75 Lionel Morin
212 26 Joël Cuissinat
h3. Roundcube
213 26 Joël Cuissinat
214 57 Joël Cuissinat
OK => *eole-roundcube (0.9.1-eole2-1)*
215 26 Joël Cuissinat
216 26 Joël Cuissinat
h3. SAP
217 26 Joël Cuissinat
218 26 Joël Cuissinat
_Non testé_
219 1 Lionel Morin
220 26 Joël Cuissinat
h3. SPIP Eva
221 26 Joël Cuissinat
222 26 Joël Cuissinat
OK => *eole-spipeva (3.0.10-eole1-1)*
223 51 Lionel Morin
224 77 Lionel Morin
MAJ Envole 3.3.7 => *eole-spipeva 3.0.10-eole4-1*
225 51 Lionel Morin
226 26 Joël Cuissinat
h3. Taskfreak
227 26 Joël Cuissinat
228 52 Lionel Morin
OK => *eole-taskfreak (0.6.4-eole1-1)*
229 52 Lionel Morin
230 57 Joël Cuissinat
mais problème d'encodage sur 2.4 (#6723)
231 1 Lionel Morin
232 78 Lionel Morin
233 78 Lionel Morin
MAJ Envole 3.3.7 => *eole-taskfreak 0.6.4-eole2-1*
234 78 Lionel Morin
235 1 Lionel Morin
h3. Webcalendar
236 1 Lionel Morin
237 69 Joël Cuissinat
OK => ?
238 1 Lionel Morin
239 1 Lionel Morin
h3. WordPress
240 1 Lionel Morin
241 1 Lionel Morin
OK => *eole-worpress (3.6.1-eole1-1)*
242 1 Lionel Morin
243 79 Lionel Morin
MAJ Envole 3.3.7 => *eole-wordpress 3.6.1-eole3-1*
244 79 Lionel Morin
245 26 Joël Cuissinat
h3. Zarafa
246 26 Joël Cuissinat
247 26 Joël Cuissinat
_Non testé_
248 57 Joël Cuissinat
249 61 Joël Cuissinat
h3. CDC
250 61 Joël Cuissinat
251 61 Joël Cuissinat
_Non testé_
252 61 Joël Cuissinat
253 62 Joël Cuissinat
h3. -SquirrelMail-
254 57 Joël Cuissinat
255 57 Joël Cuissinat
_Ne sera pas supporté_
256 57 Joël Cuissinat
257 57 Joël Cuissinat
h3. -Gibii-
258 57 Joël Cuissinat
259 57 Joël Cuissinat
_N'est déjà plus supporté en 2.3_
260 39 Lionel Morin
261 39 Lionel Morin
h2. Compilation en EOLE 2.4
262 39 Lionel Morin
263 39 Lionel Morin
Voir : http://dev-eole.ac-dijon.fr/projects/eole/wiki/PrepareEOLE24
264 39 Lionel Morin
265 42 Lionel Morin
*La nouvelle procédure de compilation de paquet se base sur les noms de tag de la branche master.*
266 1 Lionel Morin
267 42 Lionel Morin
Donc à chaque modification du paquet il faudra taguer cette version avec un numéro supérieur à la précédente.
268 42 Lionel Morin
269 42 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).
270 54 Lionel Morin
271 54 Lionel Morin
Pour connaitre le dernier tag utilisé afin de l'incrémenter, tapez la commande @git describe@.