Aide MILLEAccueil | À propos | Aide | FAQ | Pages spéciales | Identification

Version imprimable | Avertissements

Installation du BV

Sommaire

Installation du bureau virtuel

Le texte qui suit décrit essentiellement les étapes suivantes:

 * Installation et compilation du Bureau Virtuel sur un poste Windows
 * Déploiement du Bureau Virtuel sur un serveur Unix

Ce texte a pour but d'apporter un complément d'information susceptible de guider celui qui a déjà installé ou qui installe pour la première fois le Bureau Virtuel.

-o //Les liens de téléchargement sont disponibles à titre indicatif. Rien ne garantie qu'ils seront toujours valides (mais ils peuvent orienter la recherche...)//


Installation du BV - Aide MILLE

Préparation du serveur de déploiement (Unix Server)

Références utiles

 * http://java.sun.com/javase
 * http://tomcat.apache.org/

Installation de Java 1.5

 * Télécharger le package sur le site de Sun : jdk5 (voir JDK 5.0 Update //x// => Download => jdk-1_5_0_//x//-linux-i586-rpm.bin)
 * Avec un //sudoer//, exécuter les commandes suivantes :

sh jdk-1_5_0_x-linux-i586-rpm.bin (Répondre "Oui" à la licence) sudo rpm -ivh jdk-1_5_0_x-linux-i586.rpm --force (RPM : Package Manager) cd /usr/java/ sudo ln -s jdk1.5.0_x/ jdk15 (création d'un lien symbolique)

Installation de Tomcat 5.5

Avec un //sudoer// :

 * Créer un utilisateur tomcat55

sudo /usr/sbin/adduser -u 8080 -d /usr/local/tomcat55 tomcat55

 * Télécharger Tomcat 5.5.  Ex : Tomcat 5.5.23
 * Exécuter les commandes suivantes

cd /usr/local sudo tar xzf ~/apache-tomcat-5.5.x.tar.gz sudo ln -s apache-tomcat-5.5.23 tomcat55 (création d'un lien symbolique)

 * Changer les permissions :

sudo chown -R tomcat55.tomcat55 apache-tomcat-5.5.23

 * Changer le script de démarrage (/etc/init.d/tomcat55):

sudo cp tomcat55 /etc/init.d/

 * Créer un fichier "setenv.sh" pour les variables d'environnement de tomcat55

cd /usr/local/tomcat55/bin vi setenv.sh


export JAVA_HOME="/usr/java/jdk15" export JAVA_OPTS="-Xms1024m -Xmx1024m -Djava.awt.headless=true"


sudo chown tomcat55.tomcat55 setenv.sh sudo chmod 755 setenv.sh

 * Démarrer et arrêter Tomcat55

sudo /etc/init.d/tomcat55 start sudo /etc/init.d/tomcat55 stop

 * Tester : aller à http://localhost:8080 (par défaut)

Installation de mod_jk (Pour Apache 2)

L'installation qui suit se base sur le répertoire d'installation de mod_jk 1.2.21.rh4.prod

 * Installer : Lire les instructions du fichier README.txt et avec un //sudoer// :

tar xzf tomcat-connectors-1.2.21-src.tar.gz cd tomcat-connectors-1.2.21-src/native sudo ../../make_jk.sh

 * Configurer
   * Le fichier de configuration est le suivant: /etc/httpd/conf/workers.properties
   * Au besoin, ajouter la directive "ServerName //yourDomainName//:80" dans /etc/conf/httpd.conf

Configuration du Virtual Host (vhost)

Pour configurer un vhost, on crée un fichier serverName.conf dans le répertoire /etc/conf.d/.

 * Le fichier contient les informations suivantes :

<VirtualHost 207.134.97.21>

   ServerAdmin admin@mail.com
   DocumentRoot /var/www/vhosts/portal
   ServerName serverName (ex: www.mille.ca)
   ErrorLog logs/portal-error.log
   CustomLog logs/portal-access.log combined
   RedirectMatch ^/$ /portal/
   JkMount /portal/* workerT55
   <Directory "/var/www/vhosts/portal">
     Options  FollowSymLinks -Indexes
     AllowOverride All
     Order allow,deny
     Allow from all
     <LimitExcept GET POST HEAD>
       Order allow,deny
       deny from all
     </LimitExcept>
   </Directory>

</VirtualHost>

 * On crée le répertoire /var/www/vhosts au besoin.
 * On récupère les valeurs des attributs User et Group dans le fichier httpd.conf
 * Dans /var/www, on exécute :

chown -R UserValue:GroupValue vhosts

Divers

Dans le fichier de configuration du serveur SSH (sshd_config), la directive ClientAliveInterval permet d'éviter la déconnexion automatique du client :

  ClientAliveInterval 150

Whiteboard : le port 3141 (par défaut) doit être accessible sur le serveur.

Installation de la BD - PostgreSQL 8.1.9

Références utiles

Documentation PostgreSQL 8.1.9

Notes sur le téléchargement et l'installation

 * Télécharger PostgreSQL 8.1.//x// à l'adresse suivante: Site de téléchargement
 * Sur Windows, le plus simple est d'utiliser la version avec //installer//.
 * Installer PostgreSQL en tant que service.
 * Installer le langage plpgsql.
 * Définir une variable d'environnement PG_HOME et ajouter PG_HOME\lib au path.
 * L'installation va créer un utilisateur -**postgres**- (//superuser// mais non-administrateur du système) qui sera utiliser pour :
   * créer des utilisateurs
   * créer et supprimer des bases de données

Préparation des bases de données pour le BV

 * Création d'un utilisateur uportal : 

Avec Windows dans PG_HOME\bin, createuser --encrypted --username postgres --pwprompt uportal Enter password for new role: uportal Enter it again: uportal Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) n Shall the new role be allowed to create more new roles? (y/n) n Password: postgres Avec Unix et un //sudoer//, sudo su postgres createuser --encrypted uportal --pwprompt Enter password for new role: uportal Enter it again: uportal Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) n Shall the new role be allowed to create more new roles? (y/n) n

 * Création de la base de données **uportal** (pour le socle) :

createdb –-encoding LATIN1 --owner uportal –-username postgres uportal (Omettre --username postgres sous Unix)

 * De la même manière, création des bases de données pour le BV :
   * **agenda**
   * **cuportal**
 * Si on prévoit utiliser csadmin, créer la base de données **bdcs**.
 * Si le langage plpgsql n'existe pas pour les nouvelles bases de données, pour chaque bd, exécuter :

createlang plpgsql nomBD --username postgres (Omettre --username postgres sous Unix)

Installation du socle - uPortal 2.5.3

Compilation et déploiement local de uPortal 2.5.3 dans Eclipse 3.2 et Tomcat 5.5.

Références utiles

Site de uPortal

Logiciels requis

 * jdk 5
 * Eclipse 3.x
 * Tomcat 5.5
 * Ant
 * //Optionnel// - plugin Tomcat Sysdeo
 * //Optionnel// - plugin Subclipse

Téléchargement et installation

 * Aller à http://uportal.org/download.html
 * Télécharger le release 2.5.3 (uPortal only)
 * Extraire le fichier (Par défaut, le contenu sera extrait dans un répertoire uPortal_2-5-3_GA)
 * Créer un nouveau workspace dans Eclipse
 * Importer le projet uPortal dans Eclipse :
   * Nommer le uPortal_2-5-3_GA //(inutile de copier le projet dans le workspace)//
 * //Optionnel avec le plugin Tomcat// - Ajouter le projet dans les chemins de recherche des préférences de Tomcat (pour le debugging)

Configuration

 * Trouver le driver de postgreSQL (ex: C:\Program Files\PostgreSQL\8.1\jdbc\postgresql-8.1-405.jdbc3)
   * Copier le driver dans TOMCAT_HOME/common/lib et dans uPortal_2-5-3_GA/lib
   * Pour postgreSQL 8.1.5 et postgresql-8.1-405.jdbc3.jar, le fichier /properties/db/dbloader.xml doit contenir le db-type-mapping suivant :

<db-type-mapping>

 <db-name>PostgreSQL</db-name> 
 <db-version>8.1.5</db-version> 
 <driver-name>PostgreSQL Native Driver</driver-name> 
 <driver-version>PostgreSQL 8.1 JDBC3 with SSL (build 405)</driver-version> 
 <type>
   <generic>LONGVARCHAR</generic> 
   <local>TEXT</local> 
 </type>
 <type>
   <generic>VARCHAR</generic> 
   <local>VARCHAR</local> 
 </type>
 <type>
   <generic>LONGVARBINARY</generic> 
   <local>BYTEA</local> 
 </type>
 <type>
   <generic>VARBINARY</generic> 
   <local>BYTEA</local> 
 </type>
 <type>
   <generic>INTEGER</generic> 
   <local>integer</local> 
 </type>

</db-type-mapping>

 * Configuration de la connexion à la base de données **uportal**
   * Le fichier /properties/rdbm.properties doit être modifié :

  1. jdbcDriver=org.hsqldb.Driver
  2. jdbcUrl=jdbc:hsqldb:hsql://localhost:8887
  3. jdbcUser=sa
  4. jdbcPassword=

... jdbcDriver=org.postgresql.Driver jdbcUrl=jdbc:postgresql://localhost:5432/uportal jdbcUser=uportal jdbcPassword=uportal

 * Configuration des variables globales (Ant)
   * Le fichier /build.properties doit être modifié //(Utiliser les valeurs propres à votre environnement...;-))//:

  1. Répertoire Tomcat pour le déploiement

server.home=C:/Tools/Tomcat/Tomcat-5.5-uPortal ...

  1. webapp.contextFile=uPortal.xml

... webapp.contextFile=uPortal55.xml ...

  1. jdbcDriver.jar=${lib.path}/hsqldb.jar

jdbcDriver.jar=${lib.path}/postgresql-8.1-405.jdbc3.jar

 * //Info// - Quelques fichiers de configuration utiles :
   * /portal.properties : configuration globale de uPortal
   * /properties/ldap.xml : configuration du serveur ldap
   * /properties/uPortal55.xml : fichier de contexte uPortal pour Tomcat 5.5
   

Initialisation et exécution de uPortal

 * Exécuter **ant initportal** :
   * Soit en ligne de commande dans le répertoire uPortal_2-5-3_GA (où se trouve build.xml)
   * Soit avec External Tools dans Eclipse (clic droit sur uPortal_2-5-3_GA/build.xml => Run as... => Ant Build... : cocher ensuite initportal puis Run)
 * L'exécution de **ant initportal** consiste à :
   * Compiler uPortal
   * Initialiser la base de données uportal (Écrase tout...)
   * Déployer uPortal (exploded) dans le répertoire webapps de Tomcat (server.home)
 * Démarrer Tomcat
 * Ouvrir le navigateur et vérifier que uPortal fonctionne (par défaut, http://localhost:8080/uPortal).
   * Nom d’utilisateur : **admin**
   * Mot de passe : **admin**
 * Arrêter Tomcat

Installation de l'Update Mille - millebv_builder

L’Update contient des modifications apportées à uPortal pour le bureau virtuel. L’Update est régulièrement mis à jour, d’où l’utilité d’utiliser SVN pour télécharger et mettre à jour le code source.

Téléchargement

 * À partir d’Eclipse, dans la perspective **SVN Repository Exploring** ajouter le repository suivant (ou à partir de TortoiseSVN):   

https://millebv.svn.sourceforge.net/svnroot/millebv

 * Faire un checkout (Checkout as a project in the workspace) de millebv/trunk/millebv_builder
 * //Optionnel// Si téléchargé avec TortoiseSVN, importer le projet dans Eclipse

Configuration

Pour éviter d'avoir a configurer plusieurs fichiers build.properties différents, créer un fichier build.properties dans votre répertoire d'usagers.\\ (ex: C:\Documents and settings\//myWindowsUserName//\build.properties)

Ajouter les valeurs suivantes :

 * server.home = chemin de TOMCAT_HOME
 * uportal.home = chemin des sources de uPortal (ex: C:/Sources/uPortal/uPortal_2-5-3_GA)
 * uportal.docBase = nom du contexte de uPortal (par défaut : uPortal, doit être égale à webapp.docBase dans uPortal_2-5-3_GA/build.properties)
 * Lorsqu’on installe les fichiers de l'Update Mille, ceux-ci s’ajoutent et écrasent des fichiers du socle, dont certains fichiers de configuration.  Pour ne pas perdre les fichiers préalablement configurés dans uPortal (et qui ne changeront pas dans le BV), on copie ces fichiers en respectant l’arborescence dans le répertoire Custom/uportal de millebv_builder. (Ex : Copier dbloader.xml dans Custom/uportal/properties/db/)
 * Les fichiers importants sont :
   * uPortal_2-5-3_GA/build.properties
   * uPortal_2-5-3_GA/properties/rdbm.properties
   * uPortal_2-5-3_GA/properties/db/dbloader.xml

Il faut ajouter les ressources suivantes dans le fichier TOMCAT_HOME/conf/server.xml : (Ces ressources sont utilisées par uPortal et superadmin <Resource name="jdbc/PortalDb" auth="Container" type="javax.sql.DataSource"

username="uportal" password="uportal"
driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/uportal"
maxActive="100" maxIdle="30" maxWait="10000"/>

<Resource name="jdbc/cPortalDb" auth="Container" type="javax.sql.DataSource"

username="uportal" password="uportal"
driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/cuportal"
maxActive="100" maxIdle="30" maxWait="10000"/>

<Resource name="jdbc/agenda" auth="Container" type="javax.sql.DataSource"

username="uportal" password="uportal"
driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/agenda"
maxActive="100" maxIdle="30" maxWait="10000"/>

<Resource name="jdbc/bdcs" auth="Container" type="javax.sql.DataSource"

username="uportal" password="uportal"
driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/bdcs"
maxActive="100" maxIdle="30" maxWait="10000"/>

Exécution

 * Exécuter ant millebv.updateuportal millebv.customuportal
 * Réinitialiser uPortal ant clean initportal
 * Démarrer Tomcat
 * Ouvrir le navigateur et vérifier que uPortal fonctionne (par défaut, http://localhost:8080/uPortal).
   * Attention au nom du contexte!  Le nom du contexte est défini dans uPortal_2-5-3_GA/build.properties : webapp.docBase
   * Attention! Le nom d'utilisateur doit exister sur le serveur ldap.
 * Arrêter Tomcat

Installation des Channels du BV

Plusieurs channels sont requis par défaut pour que le BV fonctionne bien.

Téléchargement (checkout)

Pour la version internationalisée du BV, il faut sur (https://millebv.svn.sourceforge.net/svnroot/millebv):

 * Faire un checkout de tous les channels/projets qui se trouve dans channels/trunk 
 * Pour les communautés, faire un checkout de tous les channels/projets qui se trouve dans communities/trunk
 * Si on prévoit utiliser csadmin, faire un checkout de csadmin/trunk/csadmin
-o Tous les projets doivent se trouver dans le même répertoire (car ils font référence les uns aux autres)

Compilation

Au moment où ces lignes sont écrites, quelques modifications ont été nécessaires pour la compilation des channels :

 * jar manquant dans calculatrice/lib : le copier à partir de calculatrice/docs
 * Activer la compatibilité 1.4 pour annuaires (clic droit annuaires => properties => Java Compiler => Cocher Enable Project Specific Settings => Mettre Compiler Compliance level à 1.4)
 * Le projet uPortal doit s'appeler uPortal_2-5-3_GA
 * Définir la variable TOMCAT_HOME dans Eclipse

Mise à jour des bases de données

Il faut créer les schémas et ajouter les données nécessaires aux channels. Au moment où ces lignes sont écrites, les scripts suivants doivent être exécutés :

 * Sur la bd **agenda**, exécuter
   * agenda/misc/db/agenda-schema.sql
   * agenda/misc/db/agenda-data.sql
   * agenda/misc/db/triggers-keyword-index.sql
   * agenda/misc/db/patche2.sql
   * agenda/misc/db/patche3.sql
   * agenda/misc/db/patch_ajout_styles.sql
 * Sur la bd **cuportal**, exécuter
   * cportaldb/misc/db/cuportal-schema.sql
   * cportaldb/misc/db/cuportal-data.sql
   * cportaldb/misc/db/patche1.sql
   * cportaldb/misc/db/patche2.sql
   * cportaldb/misc/db/patche3.sql
   * statsanalyzer/misc/db/statanalyzer.sql
 * Si on utilise csadmin (si non, la bd **bdcs** est inutilisée...), exécuter
   * ...
 * Pour le canal CNewsRendering, prendre note que la table cc_xmlnews sera initialisé lors de la première connexion à l'administration des nouvelles (Administration - Section Nouvelles)

Package et déploiement

Il existe des dépendances entre les channels, donc, certains doivent être "distribués" avant les autres.

Avant le déploiement, il faut modifier le fichier suivant dans superadmin :

 * init.cfg.xml

... <property name="connection.username">uportal</property> <property name="connection.password">uportal</property> <property name="connection.driver_class">org.postgresql.Driver</property> <property name="connection.url">jdbc:postgresql://localhost:5432/cuportal</property> ...

On peut maintenant déployer les channels (exécuter les 'target' spécifiés pour chaque channel) :

 * common : dist
 * cportaldb : dist
 * whiteboardapplet : deploy
 * whiteboard : dist
 * calculatrice : deploy
 * geonext : deploy
 * homepage : deploy
 * bookmarks : dist
 * bulletin : deploy
 * newsrendering : deploy
 * forum : dist
 * filemanager : dist
 * agenda : dist
 * pwdstore : deploy
 * UBC_webmail : deploy
 * UBC_addressBook : deploy
 * ressources : deploy
 * annuaire : deploy
 * channelshelpeditor : deploy
 * statsanalyzer : deploy
 * superadmin : initdb dist et deploy (Pour le déploiement à distance, exécuter initdb sur la bd distante...)
 * community : deploy (community dépend des dist de superadmin, uportal, bookmarks, agenda, etc.)

Pour compléter le déploiement local, il faut exécuter les manoeuvres suivantes :

 * calculatrice : copier cjmath.jar et gapplet.jar dans le dossiers applets de la 'webapp' de uPortal (dans Tomcat)
 * superadmin : remplacer la librairie TOMCAT_HOME/shared/lib/pluto-1.0.1-rc2.jar par pluto-1.0.1.jar
   * Attention au redéploiement par contre... pour éviter d'avoir à répéter l'opération, il faut modifier uPortal_2-5-3_GA/build.properties

...

  1. pluto.jar=${lib.path}/pluto-1.0.1-rc2.jar

pluto.jar=${lib.path}/pluto-1.0.1.jar ...

Configuration du serveur

Les channels filemanager et forum ont besoin de répertoires pour le stockage des fichiers.

Pour une installation typique, il faut créer les répertoires suivants avec //l'usager qui exécute tomcat// :

 * PORTAL_HOME/WEB-INF/data/filemanager
 * PORTAL_HOME/WEB-INF/data/forum

Forum :

 * Le chemin du répertoire doit être ajouté au fichier /forum/properties/forum.properties.  Voir la propriété attachmentLocation.

Filemanager :

 * Le chemin du répertoire doit être ajouté au fichier /filemanager/properties/fileManagerExampleConfig.xml.
 * Il peut y avoir plusieurs fichiers de configuration au filemanager. Ils peuvent être définis avec le paramêtre configFileName à l'initialisation du système de fichier. (voir la méthode IFileSystem#init())

Configuration de l'authentification avec LDAP

Le BV permet l'authentification avec LDAP. Les utilisateurs doivent être gérés par l'administrateur du serveur LDAP, car le BV ne permet pas d'ajouter d'utilisateurs via ses interfaces d'administration.

Fichiers importants :

 * ldap.xml : information de connexion au serveur LDAP
 * PAGSGroupStoreConfig.xml : configuration des attributs de groupes (**P**erson **A**ttributes **G**roup **S**tore)
 * personDirectory.xml : mapping des attributs LDAP

Connexion à LDAP

Configuration de la connexion :

 * Côté du BV
   * Identification du serveur LDAP : mettre à jour le fichier ldap.xml
   * //Optionnel// À partir des sources de uPortal, redéployer uPortal : ant deploy (**ne pas exécuter** initportal...)
   * Redémarrer Tomcat
 * Côté du répertoire LDAP
   * Les utilisateurs doivent avoir la valeur "uportal" dans l'attribut description

Test : Se connecter au BV avec un utilisateur LDAP valide

NOTE : Pour le moment, aucun onglet ne s'affiche parce que l'utilisateur n'appartient pas à un groupe défini dans le BV.

Critères de recherche : ldap.xml

Par défaut, n'importe quel utilisateur LDAP valide peut se connecter au BV avec son uid. Pour que l'utilisateur puisse se connecter avec son uid OU son courriel (attribut mail), il faut décommenter l'élément searchFilter dans ldap.xml. ... <uidAttribute>uid</uidAttribute> <searchFilter>(&(|(uid={0})(mail={0}*))(description=uportal))</searchFilter> ...

La valeur de l'élément <searchFilter> permet à n'importe quel utilisateur, ayant "uportal" dans son attribut description, de se connecter soit avec son uid ou son mail.

Configuration des groupes

Les groupes du BV sont configurés dans PAGSGroupStoreConfig.xml. Pour qu'un utilisateur LDAP puisse appartenir à un groupe du BV, il faut que l'attribut LDAP businessCategory soit égal à un groupe du BV.

Ex: Enseignant <group>

 <group-key>org_ens_001</group-key>
 <group-name>Enseignants_001</group-name>
 <group-description>Enseignants Ecole La Passerelle</group-description>
 <selection-test>
   <test-group>
     <test>
       <attribute-name>title</attribute-name>
       <tester-class>org.jasig.portal.groups.pags.testers.StringEqualsIgnoreCaseTester</tester-class>
       <test-value>Enseignant</test-value>
     </test>
   </test-group>
 </selection-test>	

</group>

Pour qu'un utilisateur LDAP fasse partie du groupe Enseignants_001, son attribut businessCategory doit être égal à Enseignant (<test-value>Enseignant</test-value>)

Mapping des attributs LDAP avec le BV

Dans le fichier personDirectory.xml, remplacer la valeur de l'attribut key dans <entry key="title"> par le nom donné à l'attribut LDAP du groupe d'appartenance.

Ex: ^ Attribut ^ Valeur ^ | cn | Sylvain | | group | Eleve Primaire | | mail | sylvain@mail.com |

On obtient pour le mapping des attributs LDAP à BV dans personDirectory.xml : ... <entry key="cn">

 <value>displayName</value>

</entry> ... <entry key="group">

 <value>title</value>

</entry> ... <entry key="mail">

 <set>
   <value>mail</value>
   <value>user.home-info.online.email</value>
 </set>

</entry> ...

Il faut que le groupe existe dans PAGSGroupStoreConfig.xml. \\ (Dans l'exemple ci-dessus, le groupe 'Eleve Primaire' existe dans PAGSGroupStoreConfig.xml)

 * L'utilisateur se connecte au BV
 * Le portail cherche l'utilisateur dans le répertoire LDAP
 * Le portail lit l'attribut LDAP déterminant le groupe de l'utilisateur (Dans l'exemple, l'attribut group)
 * Le portail trouve le groupe correspondant de l'utilisateur dans PAGSGroupStoreConfig.xml
 * Le portail retourne les onglets et les channels associés à ce groupe

Configuration - Logging

Prendre note que le fichier log4j.properties de uPortal est uPortal_2-5-3_GA/properties/logger.properties.

Default skin

Les images du "skin" par défaut sont dans : \TOMCAT_HOME\webapps\portal\media\org\jasig\portal\layout\AL_TabColumn\integratedModes\default_skin \\ Les images de la bannière (logo, etc.) se trouve dans : ...\default_skin\institutional


Notes sur le déploiement du BV sur un serveur Unix

-o En construction...

Pour déployer le BV sur un autre Tomcat :

 * Ajouter les 'webapps' générées par le déploiement local du BV (superadmin, uportal et proxyportlet)
 * Optionnel : Copier shared/classes (PortletServlet) pour le portlet Filemanager
 * Copier shared/lib (pluto et portlet)
 * Copier common/endorsed/xalan.//x//.jar
 * Copier common/lib///postgreSQLDriver//
 * Ajouter les ressources dans server.xml
 * Ajouter les fichiers de contextes de conf/catalina/localhost

Récupérée de "http://aide.mille.ca/index.php/Installation_du_BV"

Cette page a été consultée 7456 fois. Dernière modification de cette page : 4 nov 2008 à 15:36. Contenu disponible sous GNU Free Documentation License 1.2.