Compiler Minefield sur les distributions linux « moins grand publics » – Partie 1 – Frugalware Linux.

Depuis l’an 2000 (en gros), j’ai pu faire compiler à mes différentes machines (PC sous Windows ou Linux, ou encore mon MacMini à l’époque de MacOS-X Tiger) le code source de la suite Mozilla (devenue SeaMonkey) puis de Mozilla Firefox et de Mozilla Thunderbird, ce qui m’a permis de vivre leur évolution depuis près de 10 ans.

Pour fêter ces 10 ans (déjà !), j’ai décidé de faire une série de tutoriels pour montrer comment faire compiler Mozilla Firefox – du moins le code du tronc connu comme MineField (champ de mines) – sur les distributions linux moins « grand public ».

Le premier article est consacré à la Frugalware Linux. Je ferais aussi des articles pour la Slackware et pour la ArchLinux. Les distributions plus « connues » que sont Ubuntu Linux ou encore la Fedora sont déjà couverte via le biais de la debian et de la RedHat sur cette page consacrée aux développeurs sur le site de la Fondation Mozilla : https://developer.mozilla.org/En/Developer_Guide/Build_Instructions/Linux_Prerequisites

La Frugalware Linux est une version 1.1 en 64 bits que j’ai fait passé vers current. L’ayant installé depuis le DVD, j’ai rajouté le groupe « devel » ce qui me permet d’avoir 99% des outils de compilation.

Le point ennuyeux ? L’absence d’autoconf 2.13 qui est indispensable pour lancer la compilation du code source. Cf le bug 104642 sur le bugzilla de Mozilla.

Mis à part compiler le code source d’autoconf 2.13 – ce qui est assez peu propre par rapport à pacman-g2 pour la gestion des paquets, on peut utiliser le FrugalBuild suivant en suivant les instructions ici : http://wiki.frugalware.fr/index.php/Cr%C3%A9ation_de_paquets

# Compiling Time: 0.01 SBU
# Maintainer: Devil505
pkgname=autoconf-compat
_F_archive_name= »autoconf »
pkgver=2.13
pkgrel=1
pkgdesc= »A GNU tool for automatically configuring source code (Legacy 2.1x version) »
url= »http://www.gnu.org/software/autoconf »
depends=(‘gawk>=3.1.6-3’ ‘m4>=1.4.11-2’ ‘diffutils>=2.8.1-4’ ‘bash’)
groups=(‘devel-extra’)
archs=(‘i686’ ‘x86_64’)
up2date=$pkgver # (legacy version)
Finclude texinfo
Fconfopts= »${Fconfopts[@]} –infodir=/usr/share/info –program-suffix=-2.13″
source=(http://ftp.gnu.org/pub/gnu/$_F_archive_name/$_F_archive_name-$pkgver.tar.gz)
sha1sums=(‘e4826c8bd85325067818f19b2b2ad2b625da66fc’)
build()
{
Fcd $_F_archive_name-$pkgver
Fconf
Fmake
make prefix= »$Fdestdir/usr » infodir= »$Fdestdir/usr/share/info » install || Fdie
mv $Fdestdir/usr/share/info/autoconf{,-${pkgver}}.info
mv $Fdestdir/usr/share/info/standards{,-${pkgver}}.info
}

Merci à Devil 505 pour le FrugalBuild en question.

Or, pour cet article, Devil 505 a mis en ligne le paquet déjà près à l’emploi (j’ignore combien de temps il restera disponible, donc l’option précédente sera la plus « sereine) installable via un petit :

pacman-g2 -U http://frugalware.org/~devil505/autoconf-compat-2.13-1-x86_64.fpm

Il faut rajouter mercurial car celui-ci n’est pas installé par défaut avec le groupe devel :

pacman-g2 -S mercurial

Pour gagner du temps, j’ai utilisé le paquet du code source que j’utilise dans ma machine réelle. Il faut dire que le code source pèse quelque chose comme 600 MiO décompressé.

Sinon, pour récupérer le code source en entier :

hg clone http://hg.mozilla.org/mozilla-central/ src

Le code source est localisé dans ~/fox/src

Le fichier de configuration .mozconfig utilisé est le suivant :

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

export AUTOCONF=autoconf-2.13

. $topsrcdir/browser/config/mozconfig

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir-fx

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

Ensuite on verifie que le code source est bien à jour :

hg --verbose pull -u

Et la compilation proprement dite :

make -f client.mk build

Après une attente d’une grosse heure, on va empaqueter le résultat :

cd ../objdir-fx
make package

Le résultat est disponible dans le répertoire objdir-fx/dist/firefox/

Il suffit d’entrer un ./firefox & pour avoir le résultat.

Minefield compilé sur frugalware-current

On peut récupérer aussi l’archive du logiciel pour l’installer, il suffit de copier le fichier en tar.bz2 et le décompacter ailleurs.

Voila ! 🙂