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 😉

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.

Etrange l’annonce d’un cheval de troie quelques jours après la sortie de MacOS-X 10.5…

Je ne parle plus trop des Macs et d’Apple en général. Mais l’annonce catastrophiste – et désespérée – du fabricant d’antivirus pour MacOS-X (aussi utiles que les antivirus pour distribution linux) Intégo m’a donné envie d’en parler.

On peut lire un article sur OSNews ou encore sur MacgenerationIntégo parle ainsi de ce troyen qui tombe étrangement à point nommé… Et il faut réunir plusieurs conditions.

  1. Aller sur un site porno « infecté ».
  2. Cliquer sur une image qui lancerait la récupération de la vidéo.
  3. Accepter de télécharger un paquet contenant soit disant un codec pour lire la vidéo.
  4. Avoir activé l’option d’ouverture automatique des fichiers « sains » dans Safari (ou option équivalente dans d’autres navigateurs qui n’existe pas à ma connaissance).
  5. Sinon, installer le paquet manuellement, ce qui demandera automatiquement le mot de passe de l’utilisateur.

Bref, un sacré paquet de conditions. Déjà, utiliser un installateur est assez rare sur MacOS-X, l’idée générale étant d’utiliser des paquets contenant l’ensemble des fichiers d’une application, pour pouvoir l’enlever à volonté.

Mais ce troyen, si ce n’est pas un écran de fumée pour vendre des logiciels d’antivirus de la dite marque, ne se base que sur ce qu’on appelle l’ingénierie sociale.

Je cite :

L’ingénierie sociale (social engineering en anglais) est la discipline consistant à obtenir quelque chose (un bien ou une information) en exploitant la confiance mais parfois également l’ignorance ou la crédulité de tierces personnes. Il s’agira pour les personnes usant de ces méthodes d’exploiter le facteur humain, qui peut être considéré comme le maillon faible de tout système de sécurité. Kevin Mitnick, avec son ouvrage L’art de la supercherie a théorisé et popularisé cette pratique.

En tout cas, ce cheval de troie me fait me souvenir d’un « virus » équivalent sorti à l’époque de MacOS-X 10.4.4 ou 10.4.5 (en février 2006), à l’époque j’avais écris un billet sur cette fonctionnalité « idiote » qu’était l’ouverture automatique des fichiers sains.

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 😉

De Phoenix 0.1 à Firefox 2.0.0.8 : quelle histoire – dernière partie.

Ultime partie des articles sur l’histoire de firefox; on arrive enfin à la période où le projet prend son nom actuel.

Firefox 0.8, nom de code « Royal Oak »
(http://www.mozilla.com/en-US/firefox/releases/0.8.html)

En février 2004, la version 0.8 sort, et se base sur une version 1.6 de Mozilla.

Au menu des nouveautés ?

Un installateur pour Windows, une nouvelle version pour le gestionnaire de téléchargement, un nouvelle interface pour ajouter des marque-pages, le travail hors-ligne est rajouté, une meilleure gestion des types de fichiers et un nouveau thème pour MacOS-X.

Coté taille, la version linux pèse 7494 Ko, contre 8832 pour la version 0.7. Un gain de 11,38% entre les deux versions.

Firefox 0.8 sous Linux Slackware 12.0

Firefox 0.9, nom de code « One Tree Hill »
http://www.mozilla.com/en-US/firefox/releases/0.9.html

Entre juin et août 2004, 3 versions 0.9.x sortent. Les 0.9 et 0.9.1 en juin, la 0.9.2 est introuvable ??, la 0.9.3 sort début août 2004. Les versions se base sur Mozilla 1.7 à 1.7.2.

Au menu des nouveautés ?

Linux possède son installateur, un outil d’import de données arrive pour le profil, un nouveau gestionnaire d’extensions et de thème fait son apparition. L’aide en ligne est rajoutée, et pleins de bugs sont corrigés.

Coté taille, elle remonte un peu en passant à 7954 Ko.

Firefox 0.9 sous Linux Slackware 12.0

Firefox 1.0PR, nom de code « GreenLane »
(http://www.mozilla.com/en-US/firefox/releases/0.10.html)

Septembre 2004 : la version 1.0 Preview Release sort. Basée sur Mozilla 1.7.4, cette version apporte les nouveautés suivantes : Live bookmarks (les fils RSS), recherche améliorée, on peut gérer les popups et autres sites sur lesquels installés des logiciels de manière simple. La compatibilité avec Internet Explorer est améliorée, et l’intégration dans Gnome est améliorée.

Firefox 1.0pr sous Linux Slackware 12.0

Firefox 1.0
(http://www.mozilla.com/en-US/firefox/releases/1.0.html)

Novembre 2004. C’est la sortie de la version 1.0 au bout de 26 mois de développement. Le point principal de cette version, c’est une meilleure gestion des onglets.

Coté taille, on arrive à 8032 Ko.

Firefox 1.0 sous Linux Slackware 12.0

Firefox 1.5, nom de code « Deer Park »
(http://www.mozilla.com/en-US/firefox/releases/1.5.html)

Novembre 2005. La deuxième version majeure de Firefox sort, la 1.5. Basé sur Gecko 1.8, la suite ayant été « abandonnée » entre temps, cette version apporte pas mal de nouveautés.

Dans la liste non exhaustive, on peut citer l’automatisation des mises à jour, la réorganisation dynamique des onglets, la possibilité de vider les données sensibles facilement, ajout d’un mode « sans échec », une meilleure accessibilité, une amélioration de la vitesse de rendu, un meilleur support de MacOS-X.

Coté taille, Firefox a pris un peu d’embonpoint. On arrive à 8311 Ko pour les versions linux. Ce qui reste somme toute assez peu.

fFirefox 11.5 VF sous Linux Slackware 12.0

Firefox 2.0, nom de code « Bon Echo »
(http://www.mozilla.com/en-US/firefox/2.0/releasenotes/)

Novembre 2006. C’est la 3ième version, que certaines personnes ont surnommés ironiquement « 1.6 ». Il est vrai que l’on est passé de Gecko 1.8 à Gecko 1.8.1.

Il est vrai que la plus grosse partie des nouveautés est sous le capot. Mais il faut quand même noter la présence d’un anti-phishing, la gestion des moteurs de recherche est améliorée, on peut récupérer les onglets d’une session précédente en cas de plantage. La gestion des fils RSS est améliorée, les gestionnaires d’extensions et de thème sont fusionnés. Sans oublier l’arrivée du Javascript en version 1.7

Coté taille, c’est vraiment la prise de poids. On arrive à une version 2.0 pour linux qui pèse 9397 Ko !!!

Mais la tendance semble être repartie à la baisse. Sur la dernière version alpha du futur firefox 3, l’alpha8 de Gran Paradiso, la taille est bien redescendue : A peine 8864 Ko 😉