C’est long de compiler un firefox ?

Compiler le code source de firefox, ce n’est pas trop compliqué, surtout si l’on suit les instructions fournies par le wiki des développeurs de la Fondation Mozilla.

< Mode troll de la mort qui tue, quoique…>
Même si mettre en place l’environnement de compilation sous des Unix (Linux, BSD libres, Solaris et MacOS-X) est largement plus simple que sous Windows 😉
</ Mode troll de la mort qui tue, quoique…>

Bref, une fois l’environnement de compilation mis en place, et le code source récupéré via CVS, on peut utiliser le .mozconfig suivant (Attention, fichier adapté pour la compilation du tronc, ou du code de la future version Beta 1 de Firefox).

Si vous désirez récupérer le code de Firefox 3.0 beta 1 pour le compiler, en gardant à l’esprit que ce n’est toujours qu’une version candidate à la version beta 1 officielle.

cvs co -r FIREFOX_3_0b1_RELEASE mozilla/client.mk mozilla/browser/config

Ensuite, on copie le .mozconfig suivant dans le répertoire .mozilla :

# See http://www.mozilla.org/build/ for build instructions.
#

export MAKEOPTS= »-j2″

. $topsrcdir/browser/config/mozconfig

# Options for ‘configure’ (same as command-line options).
ac_add_options –enable-optimize= »-Os -w -pipe »
ac_add_options –disable-debug
ac_add_options –disable-tests

ac_add_options –enable-default-toolkit=cairo-gtk2

ac_add_options –enable-strip
ac_add_options –disable-updater
ac_add_options –disable-mochitest

On récupère le code source :

make -f client.mk checkout

Enfin, on fait une copie du code source récupéré :

cd ..
tar cvf moz-fox.tar mozilla/ ; bzip2 -vv9 *.tar

On retourne dans le répertoire du code source, et on lance la compilation en chronométrant l’ensemble :

cd mozilla
time make -f client.mk ; make -C browser/installer

Une fois la compilation finie, on trouvera un fichier .zip ou .tar.bz2 contenant le firefox recompilé ne demandant plus qu’à être testé 😉

Pour donner un exemple : AMD Sempron 3100+ épaulé avec 1,5 Go de mémoire vive, gcc 4.2 et Ubuntu Linux 7.10 AMD64 :


real 46m28.493s
user 36m30.177s
sys 4m10.656s

Pour le support du compilateur gcc 4.2, j’ai rajouté les lignes suivantes dans le .mozconfig :


export CC=gcc-4.2
export CXX=g++-4.2

Je sais que c’est long, mais au moins, on voit le travail nécessaire pour la compilation d’un navigateur récent et au code moderne 😉

Y a pas quelque chose qui cloche ?

Désirant récupérer l’image iso du liveCD Fedora 8 x86_64 (version gnome), j’ai lancé le client bittorrent fourni avec mon ubuntu 7.10 AMD64.

Et je constate comme un léger bug :

bug de la récupération du fichier iso de la fedora 8 live (gnome) x86_64

Bug du client ? Bug du fichier torrent ?!

En tout cas, c’est étrange 😉

Vers la sortie de Gran Paradiso Beta 1 ?

Il semblerait que la prochaine version de développement de Firefox 3, alias Gran Paradiso sera une béta 1, et non une alpha9.

Pourquoi ? Pour deux choses au moins :

  • Le bug 401741
  • L’about d’une version compilée récemment : Build identifier: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9b2pre) Gecko/2007110720 Minefield/3.0b2pre

D’ailleurs, si on regarde les commentaires du bug 401741, on peut lire :

This was landed on the GECKO190_20071106_RELBRANCH at 2007-11-06 15:46 PST.

Il suffit d’entrer la commande suivante dans un terminal, en se basant sur un environnement de compilation permettant de construire Mozilla Firefox ou encore Mozilla Thunderbird :

fred@fredo-gutsy:~/download$ cvs co -r GECKO190_20071106_RELBRANCH mozilla/client.mk mozilla/browser/config
U mozilla/client.mk
cvs checkout: Updating mozilla/browser/config
U mozilla/browser/config/mozconfig
U mozilla/browser/config/version.txt
fred@fredo-gutsy:~/download$ cat mozilla/browser/config/version.txt
3.0b1

3.0b1 ? 😉

D’ici quelques jours – une grosse semaine ? – la première béta de Firefox 3 sortira enfin… Mieux vaut tard que jamais, après tout. Il est vrai que la version 9.5 d’Opera est arrivé en béta il y a une grosse quinzaine de jours.

Vrac’ons librement ;)

Un petit « en vrac » consacré au logiciel libre.

C’est tout pour aujourd’hui 😉

Thunderbird et Lightning. Un aperçu.

Avec la sortie la semaine dernière du duo Sunbird / Lightning, j’ai voulu voir à quoi ressemblait l’ensemble Thunderbird + lightning.

J’ai donc suivi les instructions de cette page. L’ensemble est intéressant, même si pour le moment, l’utilisation est assez ennuyeuse. A cause du bug 330753 il est impossible d’utiliser le script d’empaquetage de Thunderbird pour avoir un paquet tout en un, donc plus simple à utiliser dans la vie courante. Quoique j’ai trouvé un contournement, assez artisanal, mais qui fonctionne 😉

Pour la compilation, j’ai utilisé le .mozconfig suivant :

#
# See http://www.mozilla.org/build/ for build instructions.
#

. $topsrcdir/mail/config/mozconfig

# Options for ‘configure’ (same as command-line options).
ac_add_options –enable-optimize= »-Os -march=athlon64 -w -pipe »
ac_add_options –disable-debug
ac_add_options –disable-tests
ac_add_options –enable-default-toolkit=cairo-gtk2
ac_add_options –enable-strip

mk_add_options MOZ_CO_PROJECT=mail,calendar
ac_add_options –enable-extensions=default,lightning

Pour l’empaquetage, j’ai modifié le Makefile contenu dans le répertoire mozilla/mail/installer aux alentours de la ligne 90 en commentant (ajout du caractère #) devant les lignes de code suivantes :


ifdef BUILD_STATIC_LIBS
ifeq (WINNT,$(OS_ARCH))
MOZ_PKG_MANIFEST_P = $(srcdir)/windows/packages-static
endif
else
$(error you need a "--enable-static --disable-shared" build to create an installer)
endif

Et l’empaquetage s’est correctement déroulé. Voici donc une capture d’écran de Thunderbird + Lightning :

Thunderbird pré-3.0alpha1 et Lightning sous Ubuntu Linux 7.10 AMD64

L’agenda n’est qu’en version 0.7, mais il a déjà de la gueule 😉