Code source de comm-central (Mercurial)

par 2 contributeurs :

Mercurial est un outil de gestion de code source permettant aux utilisateurs de suivre les changements du code source localement et de partager ces changements avec d'autres. Le projet Mozilla est en transition depuis CVS pour le développement de Mozilla 1.9 vers Mercurial pour Mozilla 1.9.1 et au-delà.

Note : Si vous désirez soumettre des patchs pour le développement de Thunderbird 2.0, SeaMonkey 1.1 ou Firefox 3.0, utilisez CVS.

Paramètres client

Les paramètres sont les mêmes que pour le développement principal de Firefox 3/XULRunner 1.9.1. Consultez Code source de Mozilla (Mercurial)#Paramètres client.

Récupération d'un arbre de sources

Différents référentiels hg sont hébergés à mozilla.org, consultez http://hg.mozilla.org/ pour la liste complète.

Le référentiel d'intégration pour le développement de Thunderbird 3.0/SeaMonkey 2.0 est comm-central. Il contient le code nécessaire pour Thunderbird et SeaMonkey.

Pour obtenir les sources de comm-central (« cloner » le référentiel, selon la terminologie de Mercurial) :

# Récupération du code source de Mozilla dans le dossier src/ - peut prendre un certain temps
# car des centaines de mégaoctets d'historieque sont téléchargés vers .hg
hg clone http://hg.mozilla.org/comm-central/ src

cd src

mettez à jour ou récupérez toutes les autres sources nécessaires via client.py :

python client.py checkout

Note : Si vous obtenez le message d'erreur « No module named subprocess », vous devrez installer python 2.4 ou supérieur

Si vous n'avez pas lancé client.py, la compilation ne se fera pas. client.py effectue plusieurs actions :

  • Récupère la base de code principale mozilla-central (Firefox 3.1/XULRunner 1.9.1) dans mozilla/
  • Récupère les répertoires suivants de CVS (les répertoires préfixés par extensions/ vont dans mozilla/extensions) :
    • calendar
    • extensions/irc (Chatzilla)
    • extensions/typeaheadfind
    • extensions/venkman
    • extensions/wallet
    • extensions/webdav
    • directory/c-sdk
  • Exécute un « hg pull » pour obtenir les changements. Ce n'est pas obligatoire (en fait, il peut être préférable de le faire manuellement). Passez --skip-comm à client.py pour passer cette étape.

Note : Cette étape téléchargera des centaines de mégaoctets de données. Elle peut prendre un certain temps, dépendant de votre connexion au réseau.


Note : La récupération des référentiels liés signifie que vous pouvez utiliser les mêmes répertoires de sources pour développer et compiler tous ces éléments, mais pas que vous pouvez créer des patchs couvrant plusieurs référentiels. Les patches couvrant plusieurs référentiels nécessiteront des ensemble de modifications séparés.

Compilation

Thunderbird et SeaMonkey

Configurez et compilez comme d'habitude avec un fichier .mozconfig et make -f client.mk :

# Entrée dans le répertoire de source
cd src

# Générez un mozconfig vous-même, ou utilisez cette version minimale par défaut pour Thunderbird
echo 'ac_add_options --enable-application=mail' > .mozconfig

# Builds with the object directory the same as the source directory are not
# supported, so set the object directory here. Note: Whether you have the
# object directory within the source directory is up to you. .hgignore includes
# objdir-* and obj-*, making your object directory start with one of them
# will make change finding easier and hg faster, but moving it to outside
# will make things like grep easier and quicker as well.
echo 'mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../objdir-tb' >> .mozconfig

# configure will be automatically generated using the 'autoconf-2.13'
# command.  If autoconf-2.13 isn't the right name for your system, as
# is the case on OS X using MacPorts and on Ubuntu Linux, use the 
# real command name as demonstrated below. (Note: it's "autoconf2.13"
# rather than "autoconf213" for Ubuntu 8.04, at least.)
echo 'mk_add_options AUTOCONF=autoconf213' >> .mozconfig

# Now do the build; configure will be run automatically
make -f client.mk build

Note : Le répertoire dist pour la sortie se trouvera à présent sous objdir /mozilla plutôt que simplement objdir /

Note : Il ne suffit plus de faire make -f client.mk pour mettre à jour le code ! Vous devrez lancer python client.py checkout auparavant !

Firefox et XULRunner

Vous pouvez, si nécessaire, compiler Firefox ou XULRunner depuis cet arbre. Comme client.py récupère le référentiel mozilla-central, les compilations et développements de Firefox et XULRunner peuvent avoir lieu depuis un référentiel venant de comm-central. La seule différence est que vous devrez vous rendre dans le répertoire mozilla/ avant de lancer la commande de compilation :

cd src/mozilla
make -f client.mk build

Voir également

Étiquettes et contributeurs liés au document

Contributeurs à cette page : teoli, BenoitL
Dernière mise à jour par : teoli,