wiki:bui/lin/xulrunner

Procédure de construction des applications SCENARI avec recompilation de xulrunner et des XPCOMs SCENARI sous Linux

Conseil

Une nouvelle procédure est décrite ici et semble remplacer toutes les instructions indiquées ci-dessous au profit d'un build beaucoup plus automatisé pour les versions >= Scenari 3.7 : http://scenari-platform.org/trac/dev-core/browser/trunk/Lib_XulRunner/bui/README.txt

L'environnement de développement SCENARI

Construction des applications SCENARI sous Linux

Attention !

  • Cette procédure construit les application SCENARI à partir du “trunk” qui est actuellement la version 3.5 en cours de développement, cette version n'est PAS stable. Pour une construction de la dernière version stable (3.5) récupérer les sources depuis l'adresse : http://scenari-platform.org/svn/dev-core/versions/3.5.1
  • Cette procédure construit les application avec les versions embarqués de xulrunner, si on désire les remplacer, avant de générer les applications (c.f. Préparation et lancement du build), il est nécessaire de les recompiler.

Compilation de xulrunner

Lectures préliminaires

Initialisation de l'environnement de compilation

$ cvs -d :Pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH mozilla/client.mk

Attention !

  • Cette commande créé un sous dossier mozilla qui contiendra toutes les sources, avant de faire le « vrai » checkout des sources il faut paramétrer l'environnement de compilation.
  • SCENARI utilise actuellement la branche 1.8 de mozilla (tout autre branche est non testé).

Paramétrage de l'environnement de compilation

Dans le dossier mozilla ainsi créé, ajouter un fichier .mozconfig contenant :

# Options for client.mk. 
mk_add_options MOZ_CO_PROJECT=xulrunner 
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../builds 
  
# Make use of dual core (only activate on dual core systems)
#mk_add_options MOZ_MAKE_FLAGS=-j2 

# Options for 'configure' (same as command-line options). 
ac_add_options --enable-application=xulrunner 
ac_add_options --enable-extensions=default,spellcheck 
ac_add_options --enable-svg  
ac_add_options --enable-canvas 

# Path to java bin & include folders
ac_add_options --with-java-include-path=/path/to/java/include 
ac_add_options --with-java-bin-path=/path/to/java/bin 

# Elimination extras 
ac_add_options --disable-installer 
ac_add_options --disable-tests 
  
# Mode de compile 
ac_add_options --disable-debug 
ac_add_options --enable-optimize 
  
# Version condensée 
ac_add_options --disable-libxul 
ac_add_options --enable-static --disable-shared

Attention !

Il faut modifier certaines option spécifiques à la machine de compilation (--with-java*, MOZ_MAKE_FLAGS, MOZ_OBJDIR).

Checkout des sources mozilla

Dans le dossier mozilla, exécuter :

$ make -f client.mk checkout

Application des patchs SCENARI

Appliquer tous les patchs se trouvant dans les sources de SCENARI récupérés précédemment, dans l'exemple du WIKI ceux-ci se trouvent dans le dossier /scenariBuild/sources/Lib_XulRunner/patches. Par exemple :

$ patch -p0 < /scenariBuild/sources/Lib_XulRunner/patches/01_spellscan.patch

etc...

Compiler xulrunner

$ make -f client.mk build

La compilation prend à peut près 20 minutes sur un dual-core moderne.

Packager xulrunner

Une fois la compilation terminé, il faut packager xulrunner : aller dans le dossier MOZ_OBJDIR (ici ../builds) et exécuter :

$ make -C xulrunner/installer

Cette commande produira deux tar.gz dans le dossier :

$ ll dist/*.tar.gz 
-rw-r--r-- 1 sam sam 2109986 2007-09-22 11:39 dist/xulrunner-1.8.1.8pre.en-US.linux-i686.sdk.tar.gz 
-rw-r--r-- 1 sam sam 8453489 2007-09-22 11:39 dist/xulrunner-1.8.1.8pre.en-US.linux-i686.tar.gz 

Intégrer xulrunner aux sources SCENARI

Copier le fichier dist/xulrunner-1.8.xxxxx.tar.gz (pas le SDK) vers le dossier /scenariBuild/sources/Lib_XulRunner/lin/ en le nommant xulrunner.tar.gz, par exemple :

$ cp dist/xulrunner-1.8.1.8pre.en-US.linux-i686.tar.gz \
/scenariBuild/sources/Lib_XulRunner/lin/xulrunner.tar.gz

Compilation du composant audio

Compilation de Daim

  • Créer un répertoire de travail pour la compilation de daim
  • Récupérer les sources de daim sur le svn de dev-audio, décompressez l'archive et renommer le répertoire des sources
    daim$ svn co http://scenari-platform.org/svn/dev-audio/daim/ .
    daim$ tar -zxvf daim-src.tar.gz
    daim$ mv daim source
    
  • Créer un répertoire config.local :
    daim$ mkdir config.local
    
  • Copier le Makefile de configuration vers config.local :
    daim$ cp source/user_config.mk.linux config.local/user_config.mk
    
  • Editer config.local/user_config.mk et paramétrer votre compilation (vérifier bien que la variable BUILD_CONFIG est égale à -linux-gcc).
  • Exporter la variable DAIM_HOME.
    daim$ export DAIM_HOME=$PWD
    
  • Se placer dans le répertoire source/config et lancer la compilation.
    daim$ cd source/config
    config$ make
    
  • Aller boire un café.

Attention !

Si la compilation échoue à la liaison en ne trouvant pas la bibliothèque libungif (/usr/bin/ld: cannot find -lungif), aller dans le répertoire /usr/lib et lié la biblothèque partagée libgif.so.X.X.X vers libgif.so. Exemple :

config$ cd /usr/lib
lib$ sudo ln -s libungif.so.4.1.4 libungif.so

  • Retourner dans le répertoire daim et copier le répertoire dist/build-linux-gcc/runtime/ vers le répertoire builds/xulrunner/dist/xpi-stage de la compilation Mozilla.
    daim$ cd ../..
    daim$ cp dist/build-linux-gcc/runtime ../mozilla-builds/xulrunner/dist/xpi-stage -R
    

Installer portaudio et sndfile

Ces deux bibliothèques sont disponibles sous Ubuntu 7.10 :

$ sudo apt-get install portaudio19-dev libsndfile1-dev

Attention !

La version de portaudio utilisée est la 1.9 (ou 2). Elle n'est pas encore très répandue. Si celle version n'est pas disponible sur votre distribution, il faut compiler et installer cette bibliothèque manuellement (non documenté).  Site web de portaudio

Compilation des XPCOM

  • Récupérer le repository de dev-audio de http://scenari-platform.org/svn/dev-audio/trunk dans mozilla/extensions/scenari
    mozilla$ cd extension
    extension$ svn co http://scenari-platform.org/svn/dev-audio/trunk scenari
    
  • Modifier le mozconfig de mozilla pour ajouter scenari dans les extensions activées
    ac_add_options --enable-extensions=default,scenari
    
  • Reprendre les instructions de compilation de xulrunner à partir de Compiler xulrunner