Comme chaque année l’une de nos missions en 2013 à Nosy Komba a été de mettre à jour les XO. Il est important de le faire: à la fois pour disposer de la dernière version du système Sugar avec ses évolutions et ses corrections mais aussi pour pouvoir installer de nouvelles activités et contenus. Ce billet raconte cette aventure de plusieurs mois où les volontaires « de l’ombre » OLPC France ont un rôle déterminant.
Quelle version de Sugar ?
Le travail a démarré en Janvier par une question simple: quelle version de Sugar installer ?
La version de Sugar déployée à Nosy Komba en 2012 était Sugar 0.94, la version actuelle est Sugar 0.98. Néanmoins, il se passe quelques temps entre la sortie d’une nouvelle version de Sugar et son « packaging » pour l’ordinateur XO. Ainsi, le packaging de la version Sugar 0.98 pour le XO, nommée « 13.1.0 » n’était pas encore stable en début d’année et certains problèmes de performances étaient signalés à l’époque. Par prudence, nous avons donc opté pour Sugar 0.96 et son package pour le XO appelé « 12.1.0 » qui lui, était stable.
Mais Sugar 0.96 est une mise à jour majeure par rapport à Sugar 0.94. Elle intègre notamment le remplacement de l’interface graphique Gtk2 par Gtk3 et le remplacement du navigateur/moteur web de Gecko (Firefox) par WebKit (Chrome). Ces deux éléments plus quelques modifications du fonctionnement du système ont un impact important sur les activités du XO qui nécessitent d’être adaptées.
Tester les activités
Notre première action a donc été de lancer une campagne de tests sur Sugar 0.96 de toutes les activités que nous avions déployées sur les XO à Nosy Komba. C’est-à-dire plus de 60 activités à tester individuellement ! Début Février, c’est donc 4 personnes qui se sont mobilisées pour faire ce travail de fourmi: Alexandre, Aurélie, Jean et Lionel.
70% des activités fonctionnaient parfaitement dans l’état ou en téléchargeant une version plus récente de l’activité. Hélas, parmi les 30% d’activités qui ne fonctionnaient pas se trouvaient nos best-sellers: Gcompris, Tuxmath, Falabracman et… Madagascar.
Après divers échanges et recherches auprès des développeurs Sugar, nous finissons par identifier la cause des principaux dysfonctionnements:
- Packaging : le format du fichier de manifest des activités (activity.info) a légèrement changé en Sugar 0.96, deux petites modifications (bundle_id et exec) permettent de l’adapter. Il suffit donc de changer ce fichier pour corriger le problème.
- Hulahop : toutes les activités reposant sur l’ancien navigateur (Gecko) ne fonctionnent plus. Il faut adapter leur code Python à WebKit en utilisant le nouveau contrôle WebView au lieu du contrôle Hulahop.
Nous prenons en charge ces adaptations et après quelques jours réussissons finalement à corriger 98% des activités. Ouf !
De nouveaux contenus
La mise à jour est aussi l’occasion pour nous de déployer de nouveaux contenus:
- Des nouvelles activités,
- Des nouveaux livres électroniques.
Pour les activités, Sugar 0.96 nous permet de bénéficier de nouvelles activités écrites en HTML5. Nous décidons d’embarquer de nouvelles activités sur les machines:
- GridPaint: Une activité de dessin de Brian Silverman plutôt pour les petits car elle ne nécessite pas de compétences à la souris (on dessine dans des triangles).
- Abecedarium : un abécédaire (français/anglais) qui permet de voir/entendre les mots par thèmes et par catégorie ou de jouer à les retrouver.
- FoodChain: trois petits jeux pour apprendre les chaînes alimentaires.
Pour les nouveaux livres électroniques, nous reprenons le travail de nos amis d’Haïti qui ont réalisé une compilation de plus d’une quarantaine de livres pour enfant libres de droits en Français.
Partenaires depuis 3 ans des dynamiques éditions Jeunes Malgaches, nous avons aussi la chance de pouvoir embarquer 2 nouveaux livres malgaches : un nouveau livre des aventures de Maria (la « Martine » Malgache !) et un très beau livre bilingue Français/Malgache (« L’arbre, l’eau et la vie »).
Nous en profitons pour « packager » cette librairie sous forme d’une nouvelle bibliothèque qui devrait attirer l’œil des enfants et des enseignants.
Comment déployer 200 XO ?
Avoir des contenus est une chose mais les déployer simplement et rapidement sur 200 XO est autre chose.
Grosse difficulté de Sugar 0.96: il ne supporte plus les « Customization Stick« . Cette sympathique fonctionnalité nous permettait de préparer la « Clé magique« , une clé USB qui permettait facilement à un volontaire de mettre à jour un XO avec une nouvelle version de Sugar et le déploiement d’activités. C’est simple: on insère la clé magique, on démarre le XO, on attend, il se met à jour tout seul et il s’éteint.
Sans « Clé magique », il faut pour chaque machine: faire un flashage individuel, attendre que ce soit fini puis la démarrer, lui donner un nom, lancer l’activité Terminal, lancer un script de mise à jour, attendre que ce soit fini et éteindre proprement la machine.
Evidemment c’est complétement inimaginable à faire sur 200 machines !
Après d’autres discussions sur les listes OLPC, une alternative est finalement trouvée: créer sa propre image complète du système via « OS Builder ». Autrement dit: packager une distribution spécifique Fedora pour le XO. L’opération nécessite une version de Linux spécifique, pas mal de configuration et un peu de programmation Forth. La première version « vide » de la distribution OLPC France pour le XO voit le jour… fin Mars. Le temps presse, la première équipe part dans un peu plus d’un mois.
De l’optimisation et encore des tests
Jusqu’à présent nous utilisions une image standard sur lequel nous ajoutions des contenus. L’avantage de créer notre propre image du système est la possibilité de la paramétrer entièrement. Ainsi nous avons la possibilité:
- de choisir les langues supportées et de choisir la langue au démarrage du XO (plutôt que de devoir la faire configurer aux enfants au premier démarrage),
- de choisir les activités présentes sur le XO (en plus et en moins de celles « standard »),
- de configurer les activités qui sont directement visibles sur la page d’accueil du XO.
Nous avons donc décidé d’optimiser notre image et pour cela nous avons d’abord mesuré la taille disponible sur le système avec une image minimale (Sugar en Français et en Anglais et aucune activité). Le résultat est 550 Mo pour le XO 1 et 2,5Go pour le XO 1.5.
Nous avons ensuite listé la taille des différentes activités et décidé de les prioriser afin de décider lesquelles inclure dans notre image.
Bonne nouvelle: l’optimisation de l’image nous permet ainsi d’installer Gcompris sur le XO 1 alors que nous n’avions pour l’instant pu l’installer uniquement sur les XO 1.5 (qui ne sont hélas qu’une partie du parc des XO à Nosy Komba). Voilà qui va faire des petits heureux !
Dernière étape enfin, mi-Avril, l’image complète est générée et testée par plusieurs volontaires. Elle est ensuite mise sur plusieurs clés USB et attend son départ pour Nosy Komba début Mai.