Mozilla Firefox (Minefield)

Da qualche giorno pensavo di compilare Firefox 3 RC 1 per Ubuntu/Hardy (a 64-bit): questo, soprattutto in seguito alla notizia - fortunatamente “smentita” - relativa all’indisponibilità nei repository. Principalmente, perché sono troppi i “problemi” di Firefox 3 Beta 5. Tanto che grazie a Ubuntu Brainstorm il team della distribuzione ha fatto un “passo indietro” sui suoi piani! La verità? Ne sono rimasto (fortemente) deluso.

Ovviamente, questa versione non è localizzata e sarà necessario - ma ne parlerò, eventualmente, in un secondo intervento… - copiare manualmente i plugin per Adobe Flash etc.: non è certo questo il “punto”, trattandosi di una versione instabile. Avrei, però, gradito una migliore integrazione (rendendolo default) con applicazioni come Mugshot: purtroppo, ancora nulla di tutto questo.

Vediamo, comunque, come si può ottenere: anzitutto - anche in prospettiva Online Desktop - ho utilizzato un utente ad hoc (che non è quello di tutti i giorni) per testare la build, ciò perché dovremo “resettare” gconf e, di conseguenza, perderemo tutte le personalizzazioni di GNOME. Perciò risolviamo le dipendenze e prepariamoci a creare i pacchetti:

$ sudo apt-get build-dep firefox-3.0 && sudo apt-get install mercurial

Avrete di certo notato che ho scelto d’utilizzare Mercurial, nonostante in precedenza mi fossi rifiutato d’installare l’ennesimo VCS: in questo caso, ho valutato fosse la scelta migliore. Proseguiamo, quindi, ottenendo l’ultimo trunk

$ hg clone http://hg.mozilla.org/mozilla-central/ mozilla
$ cd mozilla/
$ python client.py checkout

Così facendo, avremo già tutto ciò che serve per cominciare la configurazione dei pacchetti: personalmente, ho scelto di compilare anche XULRunner, che mi sarà utile per altre applicazioni, mentre ho evitato di compilare il client di posta elettronica! A questo punto, dobbiamo creare il nostro file .mozconfig (che andrà salvato nella home dell’utente o, nel path dei sorgenti). Ecco il mio:

mk_add_options MOZ_OBJDIR=/path/to/home/src/mozilla/
mk_add_options MOZ_BUILD_PROJECTS="xulrunner browser"
mk_add_options MOZ_CO_PROJECT="xulrunner browser"
mk_add_options AUTOCONF=autoconf2.13
ac_add_options --disable-optimize --enable-debug
ac_add_options --enable-default-
toolkit=cairo-gtk2 --disable-freetype2 --enable-xft
ac_add_options --disable-static --enable-libxul
ac_add_options --disable-javaxpcom
ac_add_app_options browser --enable-application=browser
ac_add_app_options xulrunner --enable-application=xulrunner

È tutto pronto per “cominciare”: tenete presente che la procedura potrebbe durare qualche ora e che, alla fine, saranno occupati +3Gb. Trovate qualcosa da fare nell’attesa, quindi avviate la configurazione

$ make -f client.mk build

Qualora dovesse interrompersi o, non andare a buon fine la configurazione di un solo oggetto, è possibile ricompilarlo selettivamente con il comando: make -f client.mk build MOZ_CURRENT_PROJECT=project; è importante tenerlo presente perché potrebbe rivelarsi “frustrante” dover ripetere l’intero processo. Parola di chi è stato costretto a farlo. Ovviamente, non abbiamo ancora finito: posizionatevi nella cartella in cui è stata creata la build e create (finalmente) i pacchetti.

$ make package

Nel path /dist, troverete un archivio compresso che andrà “scompattato” dove intendete far risiedere l’applicazione: personalmente, ho scelto di farlo in /opt… ma non è mandatorio. Per evitare problemi, ho “resettato” gconf, prima d’avviare il browser: è per questo motivo che non ho utilizzato l’utente “quotidiano” per farlo!

$ gconftool-2 –shutdown
$ rm -rf ~/.gconf* ~/.gnome* ~/.config ~/.local
$ rm -rf ~/.mozilla ~/.nautilus

Tenete presente che le cartelle in corsivo le ho cancellate per eccesso di zelo: non è necessario farlo. Dopodiché, sarà sufficiente avviare Firefox dal path d’installazione e, opzionalmente, scegliere di renderlo default.