Projet

Général

Profil

MigrationAppliEnvole4 » Historique » Version 37

Joël Cuissinat, 05/09/2013 11:21

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 1 Lionel Morin
h2. Modification des dicos
71 1 Lionel Morin
72 1 Lionel Morin
Normalement il n'y a rien à changer.
73 1 Lionel Morin
74 1 Lionel Morin
h2. Modification des templates
75 1 Lionel Morin
76 1 Lionel Morin
Certaines variables souvent utilisées dans Envole ont changé de nom.
77 1 Lionel Morin
78 1 Lionel Morin
|_.Nom en 2.3                  |_.Nouveau nom en 2.4          |
79 1 Lionel Morin
|adresse_ip_annuaire           |container_ip_annuaire         |
80 1 Lionel Morin
|adresse_ip_fichier            |container_ip_fichier          |
81 1 Lionel Morin
|adresse_ip_mail               |container_ip_mail             |
82 1 Lionel Morin
|adresse_ip_mysql              |container_ip_mysql            |
83 1 Lionel Morin
|adresse_ip_web                |container_ip_web              |
84 1 Lionel Morin
85 24 Joël Cuissinat
*=> Ces variables peuvent être rajoutées en 2.4 pour une rétro-compatibilité (#5701)*
86 1 Lionel Morin
87 1 Lionel Morin
h2. Modification des scripts shell
88 2 Lionel Morin
89 2 Lionel Morin
h3. CreoleGet
90 2 Lionel Morin
91 2 Lionel Morin
<pre>
92 2 Lionel Morin
.ParseDico
93 2 Lionel Morin
echo $mavariable
94 2 Lionel Morin
</pre>
95 2 Lionel Morin
est remplacé par :
96 2 Lionel Morin
<pre>
97 2 Lionel Morin
echo $(CreoleGet mavariable)
98 2 Lionel Morin
</pre>
99 2 Lionel Morin
100 2 Lionel Morin
ATTENTION : à ce jour, pour accéder à une variable esclave, il faut connaître la variable maître :
101 2 Lionel Morin
<pre>
102 1 Lionel Morin
echo $(CreoleGet lamaster.lesclave)
103 1 Lionel Morin
</pre>
104 2 Lionel Morin
105 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*
106 3 Lionel Morin
107 10 Lionel Morin
Code à confirmer :
108 7 Lionel Morin
<pre>
109 10 Lionel Morin
if type -p ParseDico &> /dev/null; then
110 11 Lionel Morin
    .ParseDico
111 11 Lionel Morin
else
112 11 Lionel Morin
    # initialisation des variables utilisées
113 11 Lionel Morin
    adresse_ip_br0=$(CreoleGet adresse_ip_br0)
114 1 Lionel Morin
fi
115 11 Lionel Morin
116 11 Lionel Morin
echo $adresse_ip_br0
117 7 Lionel Morin
</pre>
118 7 Lionel Morin
119 2 Lionel Morin
h3. CreoleRun
120 2 Lionel Morin
121 2 Lionel Morin
<pre>
122 2 Lionel Morin
./usr/share/eole/FonctionsEoleNg
123 2 Lionel Morin
RunCmd "ma -commande" conteneur
124 2 Lionel Morin
</pre>
125 2 Lionel Morin
est remplacé par :
126 1 Lionel Morin
<pre>
127 1 Lionel Morin
CreoleRun "ma -commande" conteneur
128 2 Lionel Morin
</pre>
129 3 Lionel Morin
130 3 Lionel Morin
*=> Il est possible d'émuler la commande RunCmd en 2.4*
131 2 Lionel Morin
132 2 Lionel Morin
h2. Problèmes spécifiques
133 2 Lionel Morin
134 2 Lionel Morin
h3. Problème de connexion aux bases MySQL #5633
135 2 Lionel Morin
136 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).
137 26 Joël Cuissinat
138 26 Joël Cuissinat
139 26 Joël Cuissinat
h2. État des lieux application par application
140 26 Joël Cuissinat
141 26 Joël Cuissinat
h3. Ajaxplorer
142 26 Joël Cuissinat
143 35 Joël Cuissinat
OK après correction de #5922 
144 26 Joël Cuissinat
145 26 Joël Cuissinat
h3. phpMyAdmin
146 26 Joël Cuissinat
147 26 Joël Cuissinat
*OK*
148 26 Joël Cuissinat
149 26 Joël Cuissinat
h3. Piwik
150 26 Joël Cuissinat
151 26 Joël Cuissinat
_Non testé_
152 26 Joël Cuissinat
153 26 Joël Cuissinat
h3. SquirrelMail
154 26 Joël Cuissinat
155 26 Joël Cuissinat
Ne sera pas supporté
156 26 Joël Cuissinat
157 26 Joël Cuissinat
h3. CDC
158 26 Joël Cuissinat
159 26 Joël Cuissinat
_Non testé_
160 26 Joël Cuissinat
161 26 Joël Cuissinat
h3. Cdt
162 26 Joël Cuissinat
163 26 Joël Cuissinat
KO : utilise eole-envole-tools
164 26 Joël Cuissinat
165 26 Joël Cuissinat
h3. Dokuwiki
166 26 Joël Cuissinat
167 26 Joël Cuissinat
OK
168 26 Joël Cuissinat
169 26 Joël Cuissinat
h3. FluxBB
170 26 Joël Cuissinat
171 26 Joël Cuissinat
OK
172 26 Joël Cuissinat
173 26 Joël Cuissinat
h3. Gepi
174 26 Joël Cuissinat
175 28 Joël Cuissinat
KO (problème avec les templates encodée en ISO-8859)
176 26 Joël Cuissinat
177 27 Joël Cuissinat
h3. -Gibii-
178 26 Joël Cuissinat
179 26 Joël Cuissinat
h3. GRR
180 26 Joël Cuissinat
181 26 Joël Cuissinat
KO : utilise eole-envole-tools
182 26 Joël Cuissinat
183 26 Joël Cuissinat
h3. Jappix
184 26 Joël Cuissinat
185 37 Joël Cuissinat
KO (_Service indisponible_)
186 26 Joël Cuissinat
187 26 Joël Cuissinat
h3. Moodle
188 26 Joël Cuissinat
189 29 Joël Cuissinat
KO : script _posttemplate/12-moodle_ non compatible 2.4
190 26 Joël Cuissinat
191 26 Joël Cuissinat
h3. Moodle BigBlueButton
192 26 Joël Cuissinat
193 26 Joël Cuissinat
_Non testé_
194 26 Joël Cuissinat
195 26 Joël Cuissinat
h3. Moodle Référentiel
196 26 Joël Cuissinat
197 26 Joël Cuissinat
_Non testé_
198 26 Joël Cuissinat
199 26 Joël Cuissinat
h3. Piwigo
200 26 Joël Cuissinat
201 30 Joël Cuissinat
OK
202 26 Joël Cuissinat
203 26 Joël Cuissinat
h3. Roundcube
204 26 Joël Cuissinat
205 26 Joël Cuissinat
KO : #5871
206 26 Joël Cuissinat
207 26 Joël Cuissinat
h3. SAP
208 26 Joël Cuissinat
209 26 Joël Cuissinat
_Non testé_
210 26 Joël Cuissinat
211 26 Joël Cuissinat
h3. SPIP Eva
212 26 Joël Cuissinat
213 26 Joël Cuissinat
OK après résolution de #5876
214 26 Joël Cuissinat
215 26 Joël Cuissinat
h3. Taskfreak
216 26 Joël Cuissinat
217 31 Joël Cuissinat
OK mais problème d'encodage sur 2.4 !
218 26 Joël Cuissinat
219 26 Joël Cuissinat
h3. Webcalendar
220 26 Joël Cuissinat
221 32 Joël Cuissinat
KO : utilise eole-envole-tools + #5879
222 26 Joël Cuissinat
223 26 Joël Cuissinat
h3. WordPress
224 26 Joël Cuissinat
225 33 Joël Cuissinat
OK après correction de #5880
226 26 Joël Cuissinat
227 26 Joël Cuissinat
h3. Zarafa
228 26 Joël Cuissinat
229 26 Joël Cuissinat
_Non testé_