Compiler et installer Mozilla (1.0.x, 1.{2,3,4,5,6,7}.x)

Dernière mise à jour : 24/03/2004

    Ce petit article devrait vous permettre d'installer Mozilla 1.x sur votre machine préférée à partir des sources. Attention, dépendant des machines, la compilation prends du temps (1h sur un Athlon 1.4 Ghz / 50 minutes sur un XP 2000+). Il vous faudra pour compiler quelques librairies de développement telles que : zlib, ORBit, jpeg-6b, libmng, libpng, gtk+ 1.2 (2.x pour la version anti-aliasée) et java si vous voulez utiliser les plugins. J'ai créé ces instructions à partir de l'ebuild Mozilla pour Gentoo/Linux.



    J'ai mis à jour les informations contenues dans cette page pour refléter les modifications faîtes par l'équipe Mozilla dans la dernière version. Attention : cette méthode vous permet de créer des binaires que vous pouvez alors installer sur d'autres machines ou d'autres Linux. Si vous désirez installer Mozilla 1.2.x de façon traditionnelle, il vous suffit de décompacter Mozilla 1.2.x et d'éditer .mozconfig se trouvant dans la racine du source, lancez ensuite un traditionnel make ; make install. Vous pouvez aussi faire un make -f client.mk afin de sortir les derniers sources CVS mais cela est plutôt réservé à ceux qui aiment l'instable.

    Commencez par créer un répertoire temporaire dans votre $HOME tel que : build. Décompactez Mozilla à l'intérieur et commencez donc la configuration comme écrit ci-dessous. On va dans un premier temps exporter quelques variables pour indiquer à Mozilla ce dont on a besoin. Le emake permet de spécifier des builds parallèles, devant aider le système à compiler plus vite. Les lignes CFLAGS et CXXFLAGS sont nécessaires pour les possesseurs de GCC 3.x qui auraient des optimisations poussées, on les désactive et précise 686 à la place. Les deux autres optimisations sont pour éviter un crash lors du démarrage. Enfin le MOZ_PSM concerne le support des certificats SSL :

    Avant de vous lancer dans une compilation en particulier sous LFS (ou tout autre système source), pensez à lire les release notes et à installer les autres logiciels dont Mozilla a besoin pour compiler : zip, unzip, expat, pango, fontconfig, XFree 4.3.x (conseillé), et libIDL. Cela fait partie des paquets spécifiques que j'ai du installer sur ma LFS avant de compiler Mozilla 1.6b.

    Il nous faut ensuite faire notre ./configure dans lequel nous indiquons tous les paramètres de compilation. Donc je l'ai compilé personnellement avec son propre nspr (c'est plus propre), support ssl, java et j'ai désactivé tout le debug pour que ca prenne moins de place. Enfin, j'ai choisit de compiler mozilla pour aller dans /opt/mozilla mais libre à vous de le mettre ailleurs (n'oubliez pas de vérifier l'existence d'un autre mozilla généralement dans /usr/lib qu'il ne faut pas écraser !).

    Pour ceux qui veulent aussi bénéficier de l'anti-aliasing, installez xft et gtk2. Mozilla 1.3 (et plus) contient le code de facto pour vous aider à obtenir un beau mozilla, je vous déconseille donc d'utiliser une version précédente si vous le faîtes manuellement. C'est également la raison pour laquelle j'ai retiré mon patch 1.2.1 des téléchargements. Vous devez ensuite ajouter les paramètres suivants au configure : --enable-default-toolkit=gtk2 --enable-xft. Enfin s'il ne trouve pas xft, c'est fournit avec gnome2 et pango, cherchez alors le fichier pangoxft.pc et faîtes un lien symbolique vers xft.pc ou bien exportez la variable PKG_CONFIG_PATH (le miens se trouve dans /usr/lib/pkgconfig:)

    Le patch Mozilla 1.2.1 ne faisait pas que mettre à jour gtk2 mais fixait également quelques autres problèmes. Vous pouvez donc télécharger le patch pour : Mozilla 1.3.x. Je n'inclus plus les patches pour les Mozilla 1.4.x car ils sont suffisemment stables sans ajouter autre chose.

    Téléchargez donc la version qui vous convient. Il ne reste alors qu'à l'appliquer à votre version de Mozilla de cette façon :

    S'il ne vous a retourné aucune erreur, vous pouvez alors scander un make et aller vous faire un café. Cette compilation prendra entre 1h (Athlon 1.4 Ghz) et 4h (Céléron 566@850). Tout devrait se passer normalement. J'ai personnellement fais les tests avec GCC 3.2 qui ne m'a posé aucun soucis.

    La compilation du support NSS/SSL demande une petite manipulation supplémentaire. Commencez par créer un répertoire mozilla dans /opt en tant que root, que vous allez attribuer à votre utilisateur le temps de l'installation : mkdir /opt/mozilla ; chown frlinux.users /opt/mozilla. Il vous faut ensuite faire ceci :

    Nous allons à présent copier les fichiers IDL et les INCLUDES vers le répertoire d'installation. Notez ici l'utilisation de -LfR afin de copier récursivement des liens et de les remplacer par les binaires sur lesquels ils sont liés. Enfin nous installons Mozilla :
    Nous allons à présent copier les includes et headers des fichiers NSS vers l'installation. La raison de ces commandes est qu'un make install ne marche en fait pas (il ne les recopie pas). Les commandes suivantes vont servir à créer un répertoire temporaire où nous installons les binaires NSS/SSL, ici encore, ils seront installés en tant que liens symboliques, d'où la raison d'un répertoire temporaire :
    Nous recopions ensuite le fichier shell pour le lancement de Mozilla ainsi que les icones. La ligne suivante sert quant à elle à réparer les permissions pour que tous les utilisateurs puissent démarrer Mozilla.

    Enfin, nous installons à présent le thème par défaut et fixons deux ou trois autres problèmes de droits.

    Le moment de vérité est arrivé. Votre Mozilla est installé dans /opt/mozilla et ne devrait pas peser beaucoup en taille (74 Mo pour Mozilla 1.0.x et 59 Mo pour 1.2.x !). Il ne reste plus qu'à lancer la bête. Vous devez pour se faire déclarer juste une fois l'endroit où se trouvent les librairies de Mozilla, par la commande suivante :

    Comme vous l'aurez deviné, la seconde commande lance Mozilla. Suivez bien ce qu'il se passe en ligne de commande dans votre xterm afin de déceler des erreurs importantes. Normalement, vous devriez avoir un Mozilla flambant neuf devant vos yeux.