Installer Freebox-Elixir sous Ubuntu 9.04

21 11 2009

Free a lancé les jeux sur la FreeBox HD. Il y avait déjà des possibilités de jeux à travers les télésites, mais cette fois un environnement dédié à cette activité est disponible, avec les facilités que cela sous-entend.

Dans ce billet, je vais vous présenter mon parcours du combattant pour l’installation d’Elixir et d’EFL sous Ubuntu 9.04.

Le SDK : JavaScript, Elixir et EFL

Avant d’aller plus loin, il est important de bien comprendre l’environnement dans lequel on arrive.

Tout d’abord, le langage de développement retenu par Free est le JavaScript. Et comme le JavaScript est un langage interprété, il faut un interpréteur ! Et c’est SpiderMonkey qui s’y colle, l’interpréteur JavaScript de Firefox.

Le JavaScript seul ne peut pas faire grand chose, à l’instar de n’importe quel autre langage. Dans un navigateur il a habituellement accès au DOM, ce qui lui permet d’interagir avec le contenu des pages web.

Dans la FreeBox, le code JavaScript que vous pourrez écrire ne s’exécute pas dans un navigateur. Pour pouvoir interagir avec l’affichage et la télécommande, les EFL viennent à la rescousse.

EFL ? En plus long, les Enlightenment Foundation Libraries. Il s’agit d’un ensemble de bibliothèques conçues à l’origine pour le gestionnaire de fenêtres Enlightenment. Dans la FreeBox, exit Enlightement, ne restent que les EFL.

Ces bibliothèques ne connaissant pas nativement SpiderMonkey, et réciproquement, il fallait une couche supplémentaire pour les faire communiquer : Elixir.

Le schéma suivant résument l’ensemble :

Couches logicielles du SDK de la FreeBoxDe façon non exhaustive, les EFL comptent :

  • eet : une bibliothèque qui permet, entre autres, la création et la gestion de fichiers ressource (avec les fichiers .edj),
  • evas : un gestionnaire de canevas (un équivalent Cairo),
  • edje : un gestionnaire d’interface (un équivalent Glade).

Comment développer des jeux pour la FreeBox ?

Tout ce qui a été présenté à la section précédente est déjà installé sur votre FreeBox HD si vous avez un Firmware 1.6.1 ou supérieur.

Le développement de jeux et d’applications nécessitant des outils différents de la plateforme cible, il vous faut maintenant un environnement de développement sur votre machine.

Je suis sous Ubuntu 9.04 64 bits (pas encore fait le saut pour la 9.10).

Il me faut donc installer :

  • SpiderMonkey,
  • EFL,
  • Elixir,
  • edje_viewer.

Et c’est là que ça commence à devenir marrant😉

Ma procédure d’installation diffère quelque peu de la procédure officielle.

Installation de tout le schmurtz

Pré-requis

Installer gperf, libnspr4-dev, automake, svn et wget :

sudo apt-get install gperf automake svn wget libnspr4-dev libgcrypt-dev

Notes :

  • Les utilitaires svn et wget sont uniquement utilisés pour récupérer les fichiers nécessaires à l’installation du SDK. Ils pourront être désinstallés après l’installation d’Elixir.
  • Libnspr4-dev est nécessaire pour la compilation de SpiderMonkey.
  • Automake permet le lancement des scripts autogen.sh, nécessaires dans le cas de sources récupérés par svn (suite au commentaire de Strofe).
  • libgcrypt-dev permet d’éviter une  erreur de compilation sur BLOCK_SIZE indéfini (suite au commentaire de Yopai).

Récupération des sources

Créez-vous un répertoire elixir dans lequel vous exécuterez tout ce qui suit.

Récupérez les sources avec les lignes de commande suivantes :

mkdir elixir
cd elixir
wget http://elixir.freebox.fr/elixir/elixir-0.1.24.tar.bz2
tar xjvf elixir-0.1.24.tar.bz2
wget http://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.0-rc1.tar.gz
tar xzvf js-1.8.0-rc1.tar.gz
svn co http://svn.enlightenment.org/svn/e/trunk/eina eina-svn
svn co http://svn.enlightenment.org/svn/e/trunk/eet eet-svn
svn co http://svn.enlightenment.org/svn/e/trunk/evas evas-svn
svn co http://svn.enlightenment.org/svn/e/trunk/ecore ecore-svn
svn co http://svn.enlightenment.org/svn/e/trunk/efreet efreet-svn
svn co http://svn.enlightenment.org/svn/e/trunk/embryo embryo-svn
svn co http://svn.enlightenment.org/svn/e/trunk/edje edje-svn
svn co http://svn.enlightenment.org/svn/e/trunk/e_dbus e_dbus-svn
wget http://download.enlightenment.org/snapshots/2009-07-29/elementary-0.5.1.0.tar.bz2
tar xjvf elementary-0.5.1.0.tar.bz2
svn co http://svn.enlightenment.org/svn/e/trunk/edje_viewer/ edje_viewer
wget http://freebox-elixir.googlecode.com/svn/trunk/exemples/ecore_evas/Simple.js

Notes :

  • Suite à la judicieuse remarque de Superna en commentaire, vous pouvez remplacer les “svn co” par des “svn export” pour gagner en espace disque et en vitesse de téléchargement.
  • Au moment où j’écris ces lignes, il existe apparemment une version 0.1.25 d’Elixir mais ce n’est pas celle qui est indiquée sur le site http://elixir.freebox.fr/
  • On compile SpiderMonkey plutôt que d’installer les paquetages libmozjs-dev et libmozjs0d disponibles sous Ubuntu 9.04 car ces derniers ne définissent pas la constante JSVERSION_1_8 nécessaire à Elixir (ils s’arrêtent à JSVERSION_1_7).
  • Le fait de récupérer les sources des EFL par svn plutôt qu’en allant sur http://download.enlightenment.org/snapshots/LATEST/ comme recommandé sur http://elixir.freebox.fr/ permet d’avoir une version à jour de evas. En suivant la procédure officielle, j’obtenais les messages suivants lors de la compilation d’Elixir :
    evas-const-binding.c:113: erreur: ‘EVAS_HINT_EXPAND’ undeclared here (not in a function)
    evas-const-binding.c:114: erreur: ‘EVAS_HINT_FILL’ undeclared here (not in a function)
  • Les deux dernières lignes permettent de télécharger elementary et edje_viewer afin de compiler ce dernier. Il n’est pas indispensable mais est bien pratique pour voir graphiquement ce que contient un fichier .edj.
  • Simple.js est un script qui permettra de vérifier le bon déroulement de la compilation et de l’installation d’Elixir.
  • À la fin de l’exécution de ces lignes, tous les fichiers nécessaires ont été récupérés et décompressés dans le répertoire elixir.

Compilation et installation des EFL

Pour compiler les EFL, c’est un peu rébarbatif, il faut aller dans chacun des répertoires suivants :

  • eina-svn,
  • eet-svn,
  • evas-svn,
  • ecore-svn,
  • efreet-svn,
  • embryo-svn,
  • edje-svn,
  • e_dbus-svn.

Dans chacun de ces répertoire, il faut répéter les commandes suivantes :

sh autogen.sh
make -j4
sudo make install

Notes :

  • On utilise “sh autogen.sh” plutôt que “sh configure” car il s’agit de versions svn qui ont besoin de générer le fichier configure. Autogen.sh fait les deux : création et exécution du fichier configure.
  • L’option -j4 permet d’utiliser quatre cœurs pour accélérer la compilation. Si vous avez un processeur dual core, utilisez -j2.

Une fois les EFL compilées et installées, exécutez la commande suivante :

sudo ldconfig

Compilation et installation de SpiderMonkey

De retour dans le répertoire elixir, placez-vous maintenant dans le répertoire js/src.

make JS_THREADSAFE=1 JS_DIST=/usr -f Makefile.ref
sudo su
mkdir /usr/include/smjs
cp *.h /usr/include/smjs
cp *.tbl /usr/include/smjs
cp Linux_All_DBG.OBJ/libjs.so /usr/lib/libsmjs.so
cp Linux_All_DBG.OBJ/jsautocfg.h /usr/include/smjs/jsautocfg.h
exit

Note :

  • Il s’agit de la procédure d’installation de SpiderMonkey telle que présentée dans la procédure officielle.

Une fois SpiderMonkey compilé et installé, exécutez la commande suivante :

sudo ldconfig

Compilation et installation d’Elixir

C’est au tour d’Elixir !

Avant de lancer la compilation, il va falloir modifier une ligne dans les sources d’Elixir. La version des EFL doit être un brin trop récente pour la version 0.1.24 d’Elixir. Si vous ne faîtes pas la modification, vous aurez droit aux lignes suivantes :

ecore_module.c: In function ‘elixir_ecore_thread_run’:
ecore_module.c:908: erreur: too few arguments to function ‘ecore_thread_run’

Placez-vous dans le sous-répertoire elixir-0.1.24 du répertoire elixir.

Éditez la ligne 908 du fichier src/modules/bindings/ecore/ecore_module.c. Elle ressembler à ceci :

result = ecore_thread_run(_elixir_func_heavy, _elixir_func_end, new);

Il faut la transformer en ceci :

result = ecore_thread_run(_elixir_func_heavy, _elixir_func_end, new,NULL);

Une fois la modification faite, compilez comme suit :

sh configure
make -j4
sudo make install

Une fois Elixir compilé  et installé, exécutez la commande suivante :

sudo ldconfig

Premier test

De retour dans le répertoire elixir, tapez la ligne suivante :

elixir Simple.js

Si tout s’est bien passé, vous devriez voir un rectangle se balader dans une fenêtre.

À partir de là, vous disposez d’un environnement complet pour créer vos jeux pour la FreeBox.

Compilation et installation de edje_viewer

On va tout d’abord installer la bibliothèque elementary. Placez-vous dans le sous-répertoire elementary-0.5.1.0 et lancez la compilation :

sh autogen.sh
make -j4
sudo make install

De retour dans le répertoire elixir, placez-vous dans le sous-répertoire edje_viewer et lancez la compilation :

sh autogen.sh
make -j4
sudo make install

Une fois elementary et edje_viewer compilés  et installés, exécutez la commande suivante :

sudo ldconfig

Et après tout ça ?

Récupérez les exemples, tutoriels et jeux

Pour vous faire la main, vous pouvez rapatrier les exemples, les tutoriels ainsi que les jeux livrés en standard. Pour cela, replacez-vous dans le répertoire elixir et tapez la ligne :

svn checkout http://freebox-elixir.googlecode.com/svn/trunk/ freebox-elixir

Résumé des commandes

Pour résumer, vous disposez désormais des commandes suivantes :

  • elixir : permet d’exécuter votre code JavaScript (ex. : elixir Simple.js),
  • edje_cc : pour compiler des fichiers .edc en fichiers .edj (edje_decc fait le contraire),
  • eet : pour ajouter, supprimer des ressources des fichiers .edj (en partenariat avec elixir-compile),
  • edje_viewer : pour voir graphiquement les ressources des fichiers .edj.

Tester ses programmes sur la FreeBox

Pour tester vos réalisations directement sur la FreeBox, il suffit de les placer dans le répertoire “Jeux” sur le disque dur de la FreeBox (par ftp sur hd1.freebox.fr, utilisateur freebox).

Si vous copiez Simple.js de cette façon, vous pourrez l’exécuter directement.

Pour les jeux livrés en standard, c’est plus sioux. Tous les fichiers ne sont pas nécessaires puisque le fichier .edj en intègre déjà une bonne partie.

Par exemple, pour le démineur, copiez les fichiers suivants dans un sous-répertoire demineur du répertoire Jeux sur le disque dur de la FreeBox :

  • demineur_bomb.wav,
  • Demineur.edj,
  • Demineur.ogg,
  • edje-helper.edj,
  • freebox-mouse.png,
  • high_score.wav,
  • Scores.db.

Références

http://wiki.enlightenment.org/index.php/E17_User_Guide/Installing_from_Source_Repository
Installation d’Enlightenment 17 à partir des sources svn.
http://elixir.freebox.fr/?section=documentation
Procédure officielle d’installation d’Elixir
https://developer.mozilla.org/en/Building_only_SpiderMonkey
Procédure d’installation officielle de SpiderMonkey
http://code.google.com/p/freebox-elixir/wiki/InstallerElixir
Discussion à propos de l’installation d’Elixir sur Google Code
http://svn.enlightenment.org/svn/e/trunk/
Versions svn des bibliothèques nécessaires à la compilation d’Enlightenment
http://download.enlightenment.org/snapshots/LATEST/
Les dernières versions officielles des EFL.

Actions

Information

36 responses

22 11 2009
Superna

Salut,

Super post, par contre pour un build statique, « svn export » serait plus simple et moins lourd niveau espace disque !

Sinon merci pour l’info !

22 11 2009
zigazou

Merci !

Je ne connaissais pas svn export, je n’ai jamais utilisé svn que pour récupérer des fichiers avec checkout.

L’intérêt est surtout de sauver de la bande passante plutôt que de l’espace disque car je doute que ce soient ces quelques fichiers qui réduisent à néant la place disponible sur les disques durs de nos jours🙂

22 11 2009
didou

Hello,

Tout ce passe bien avec l’install, mais edje_viewer me sort tout le temps cette erreur à l’exécution :

edje_viewer: symbol lookup error: edje_viewer: undefined symbol: eet_eina_stream_data_descriptor_class_set

J’ai vu que le symbôle en question était défini dans eet, que j’ai bien recompilé en récupérant depuis le svn.. une idée pour sauver mon dimanche ?🙂

22 11 2009
zigazou

Un petit sudo ldconfig ?

Quand tu recompiles, tu fais bien un make clean avant ?

22 11 2009
didou

J’ai déjà fait le sudo ldconfig, mais rien.

En fait, j’étais parti sur le tuto free, et donc utilisé les fichiers depuis http://download.enlightenment.org/snapshots/LATEST/.
Puis, voyant que ca ne marchait pas, je suis repartit des fichiers déposés sur google.com par Free.

Ce matin, toujours un ptit bug, donc je suis repartit de ton tuto, et me voici, coincé sur le viewer🙂 Je n’ai pas trop fait le ménage entre chaque chemin de croix, donc je pense que je vais refaire le tout en pensant bien au make clean ce coup-ci !

22 11 2009
zigazou

Remarque, ce n’est que edje_viewer, il y a déjà de quoi t’amuser si tout le reste est compilé et fonctionne.

T’as bien installé elementary au fait ?

22 11 2009
didou

Yes, bien installé. Je viens de trouver, il fallait que j’installe en plus libeet-dbg depuis le repo ubuntu.

C’est partit !!🙂

22 11 2009
Strofe

Bonjour

Merci pour le tuto

Il faut ajouter au début :

sudo apt-get install automake

sinon

./autogen.sh

ne fonctionne pas.

A+

22 11 2009
zigazou

Merci pour cette précision, j’ai rajouté automake à l’article.

22 11 2009
Strofe

Bonjour

Une autre opération à ajouter

——————
En regardant dans synaptic installer :
libtool 2.2.4-0ubuntu4
——————
A+

22 11 2009
zigazou

Est-ce nécessaire d’aller jusque là ?

Les personnes faisant des compilations régulièrement ont généralement ce type de paquetage installé, tu ne crois pas ?

Pour automake, ça me paraissait normal, mais pour libtool, j’ai un doute.

As-tu plus d’informations sur le sujet ?

22 11 2009
Strofe

Bonjour

Oui mais pour ma part, je découvre l’univers de Linux.

Je suis un pur et dur de 20dose (personne ne peut etre parfait)

Je bute sur « zlib.h » qui n’est pas trouvé..

22 11 2009
zigazou

Normalement, ça se trouve dans zlib1g-dev sous Ubuntu.

Les paquets sans -dev à la fin ne contiennent pas les fichiers include (utiles uniquement au développement).

22 11 2009
Strofe

A jouter :

sudo apt-get install zlib1g-dev

sudo aptitude install libjpeg-dev

sudo apt-get build-dep compiz

par contre pour : edje-svn –> il manque « lua » et là je sèche.

Merci

22 11 2009
zigazou

liblua5.1-0-dev ?

→ sudo aptitude install libjpeg-dev
c’est pas sudo apt-get plutôt ? Il faut éviter de mixer😉

→ sudo apt-get build-dep compiz
bizarre, je n’ai pas les bibliothèques de développement de compiz installées et il ne m’a pas posé de problèmes…

22 11 2009
Strofe

Bonsoir

Merci pour ton aide.
——————————–
Premier test

elixir Simple.js
——————————–
message : elixir: command not found

Grrrrr, où j’ai pas bon…

22 11 2009
zigazou

L’exécutable elixir est installé lors du “sudo make install” dans /usr/local/bin (comme exlir-compile et elixir-config).

Vérifie déjà qu’ils y sont bien, n’hésites pas à refaire un “sudo make install” depuis le répertoire elixir-0.1.24 (ça ne fera aucun mal).

Vérifie que ta distribution Linux inclut /usr/local/bin dans ton path (echo $PATH). Il devrait normalement s’y trouver mais on ne sait jamais.

23 11 2009
Strofe

Bonsoir

J’ai trouvé une alternative pour les « nuls ».

http://groups.google.com/group/freebox-elixir/browse_thread/thread/b1b73566f84e629b#

Encore merci pour ton aide.

Amicalement Christophe

23 11 2009
zigazou

Cool ! Je pense que c’est ce qui manquait au projet dans son ensemble !

Vivement la moisson de jeux !😉

24 11 2009
Ludovic

Il faut également installer la librairie libdbus-1-dev
apt-get install libdbus-1-dev

24 11 2009
Ludovic

et ajouter dans la foulée gperf.

apt-get install libdbus-1-dev

27 11 2009
tripatte

A quand une âme charitable pour porter l’émulateur Gens32 sur la freebox ? (ou tout autre émulateur megadrive d’ailleurs🙂 )

27 11 2009
zigazou

Vu qu’on aura surtout accès à un interpréteur JavaScript, il faudrait que la FreeBox soit sacrément costaud pour que quelqu’un puisse mettre en ligne un émulateur MegaDrive😉

Dans cette catégorie, cela ne dépend que du bon vouloir de Free…

29 11 2009
nighty

Merci pour cet excellent tuto ! N’étant pas un expert sous linux loin s’en faut, ce tuto m’a énormément aidé.

Le seul problème dont je n’ai pas trouvé la solution dans ce tutoriel ou les commentaires provient de la compilation d’elementary qui me retourne une erreur sur mon Karmic Koala lorsqu’il appelle edje_cc :

edje_cc: Error. Unable to load image for image « dia_grad.png » part entry to default.edj. Missing PNG or JPEG loader modules for Evas or file does not exist, or is not readable.

J’ai essaye de récupérer elementary depuis le svn, modifier un peu default.edc pour changer les adresses des images, et je n’ai pas réussi à contourner le problème… Si vous avez une idée, je suis preneur😉

29 11 2009
zigazou

De rien, je suis content que ça ait servi à quelqu’un !

Concernant ton problème de PNG/JPEG, tu peux essayer de voir si tu as les paquetage libpng*-dev et libjpeg*-dev installé (et les installer le cas échéant).

29 11 2009
nighty

Merci pour la réponse !

En fait j’ai vérifié et installer tout ce qui peut l’être en libpng*-dev et libjpeg*-dev, mais c’est visiblement un problème de chemin.

J’ai essayé d’éditer à la main le fichier /data/themes/default.edc, et j’ai changé une ou deux images pour leur mettre un chemin absolu, ce qui réglait partiellement le problème (l’erreur se reportait à l’image d’après, à savoir dia_topshad.png, ce qui prouve qu’il trouvait bien la première…). J’ai bien essayé de changer la totalité des chemins de cette manière, mais visiblement ça n’a pas fonctionné, et tant qu’à faire je préfèrerais savoir ce qui cloche.

A vue de nez, comme ça, je pencherais pour une variable d’environnement, ou quelque chose de ce genre…

4 12 2009
nighty

J’ai finalement trouvé ce qui m’a bloqué… comme il n’en est fait mention nulle part sur le tutorial, je le signale dés fois que ça dépanne quelqu’un.

Si une erreur du genre « Missing PNG or JPEG loader modules for Evas or file does not exist, or is not readable. » est levée lors de la compilation d’elementary, il faut recompiler evas avec les options suivantes :

./configure –enable-image-loader-jpeg –enable-image-loader-png
make
sudo make install

Après, la compilation d’elementary devrait se passer sans heurts😉

28 12 2009
Coucal

Question sans doute idiote : edje_viewer permet-il uniquement de voir l’interface ou de tester son fonctionnement ?
Après une install easy_install.sh, quand je lance elixir Simple.js çà marche mais pas quand je lance elixir Morpion.js par exemple.
Donc ma question est comment tester une appli edj ?
Merci
Alain

28 12 2009
zigazou

Comme indiqué dans le billet, edje_viewer permet de voir graphiquement les ressources des fichiers .edj (c’est un viewer, pas un player).

Concernant le test de Morpion.js, c’est différent.

Simple.js se suffit à lui tout seul, il n’y a aucun autre fichier ou ressource, tout est inclus dedans.

Morpion.js, quant à lui, fait partie d’un ensemble. Ce n’est pas lui qu’il faut donner en entrée à la commande elixir, mais le fichier Morpion.edj.

Et pour que cela fonctionne correctement, il faut d’abord te placer dans le sous-répertoire package du répertoire morpion et ensuite taper « elixir Morpion.edj ».

Aurais-je oublié de mentionner que cela ne fonctionnera que si tu as d’abord fait un « make » dans le répertoire principale morpion ?

1 01 2010
Yopai

manque pour compiler elixir :
gperf
libgcrypt-dev (sinon erreur de compil sur BLOCK_SIZE indéfini – il n’est défini que si GCRYPT est installé)
et peut-être gcrypt

2 01 2010
zigazou

Merci pour la précision !

gperf était déjà indiqué, mais je vais rajouter les autres, ça ne peut pas faire de mal !😉

15 05 2010
NicolasB

Bonjour,
J’ai tout bien compiler, mais quand je lance edje_viewer, avec tout ce que l’on veut, un écran noir s’affiche et dans le coin en haut à gauche il y a une flèche qui vise vers la gauche et un bouton noir où l’on distingue « gnais ». Que faire ? Merci d’avance pour votre aide, nicolas.

15 05 2010
zigazou

Euh… bonne question…

Je ne vois pas trop car je n’ai pas encore rencontré ce problème.

Désolé.

Tu es bien sur un Ubuntu 9.04 ?

16 05 2010
NicolasB

Je suis sous 9.10, mais j’étais avant sur 9.04 et j’avais le même problème.

5 09 2010
Math

Salut,

pour ma part j’obtiens toujours la même erreur lors du « sh configure » d’elixir :

disabling sdl mixer module
checking for EINA… configure: error: Package requirements (eina-0) were not met:

No package ‘eina-0’ found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables EINA_CFLAGS
and EINA_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

16 01 2011
Nicolas

Salut,

Je suis en train d’installer l’environnement de dev elixir sur une Ubuntu lucid 10.04 et je viens de tomber sur ton site par hasard – très bien fait ! Merci.

Pour les EFL j’utilise les paquets dispo à partir du gestionnaire de package, et je tombe sur la même erreur sur le prototype de la fonction ecore_thread_run.

Par contre, je ne suis pas sur de la modif que tu proposes:
result = ecore_thread_run(_elixir_func_heavy, _elixir_func_end, new,NULL);

Chez moi, le prototype de la fonction ecore_thread_run (dans /usr/include/Ecore.h) est plutôt:
EAPI Ecore_Thread *ecore_thread_run(void (*func_heavy)(void *data), void (*func_end)(void *data), void (*func_cancel)(void *data), const void *data);

Je propose plutôt la modif suivante:

result = ecore_thread_run(_elixir_func_heavy, _elixir_func_end, _elixir_func_cancel, new);

Et rajouter la petite fonction suivante dans le même fichier ecore_module.c:

static void
_elixir_func_cancel(void *data)
{
(void)data;
}

Je pense que la fonctionnalité thread_run est cassée avec la modif proposée initialement.
Qu’en pensez-vous ?

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s




%d blogueurs aiment cette page :