Compilare i programmi Mozilla in italiano su Linux

In questa guida vedremo come compilare Firefox e Thunderbird su Linux, a partire dai sorgenti disponibili sui server Mozilla. La stessa procedura, con l’unica differenza delle variazioni al file mozconfig, vale anche per tutti gli altri programmi Mozilla come SeaMonkey o Lightning. La guida presente è stata scritta per Firefox 3.6 e Thunderbird 3.1, ma con dei semplici ed evidenti cambi di numeri nei percorsi dei file resta valida anche per le versioni successive.

Scaricare i sorgenti

I sorgenti dei programmi si trovano in formato compresso bz2 sui server Mozilla. Ad esempio i link per Firefox e Thunderbird sono:

http://releases.mozilla.org/pub/mozilla.org/firefox/releases/x.x.x/source/
http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/x.x.x/source/

dove a x.x.x va sostituita la versione che si vuole scaricare. Il file scaricato può essere decompresso con i programmi di archiviazione grafici (ark, file-roller) oppure col comando da console:

tar vfxj nomefile.tar.bz2

dopo essersi spostati nella cartella contenente il file.

Scaricare la traduzione italiana

Dopo aver scaricato i sorgenti, se si vuole il programma in italiano occorre scaricare anche i file della traduzione italiana. Per la traduzione purtroppo non esiste un semplice pacchetto da scaricare, ma bisogna scaricare i file dal repository hg (mercurial) di Mozilla. Questo comporta scaricare un grande numero di file anche inutili, perché nel repository sono presenti le traduzioni per tutti i programmi, non soltanto quello che vogliamo compilare.
Come detto, i file vanno scaricati dal repository hg, quindi assicuratevi di installare il pacchetto necessario dal vostro package manager di fiducia (tutte le distribuzioni ormai lo includono nei loro repository), oppure compilate il programma hg scaricandone i sorgenti. Ipotizzando di usare il desktop come cartella di lavoro (d’ora in avanti quando scriverò desktop in corsivo mi riferò a /home/nomeutente/Desktop, o comunque si chiami quella cartella nella vostra distribuzione. Ovviamente potete scegliere come cartella di lavoro quella che più vi piace), create una cartella (ad esempio di nome l10n) per contenere i file della traduzione. A quel punto dalla console entrate in quella cartella e date il comando:

hg clone http://hg.mozilla.org/releases/l10n-mozilla-1.9.2/it/

ovviamente il numero 1.9.2 cambierà in futuro. Potete decidere di cancellare questa cartella dopo la compilazione, e quindi ridare questo stesso comando la volta successiva che ne avrete necessità, oppure tenerla e quindi solamente aggiornarla la volta successiva invece che scaricarla tutta nuovamente, tramite il comando:

hg pull -u

dato all’interno della cartella it.

Installare le dipendenze

Per compilare i programmi Mozilla sul computer devono essere installate delle librerie e i programmi necessari per la compilazione. Assicuriamoci quindi di avere installati i seguenti pacchetti (i nomi sono riferiti alla distribuzione Debian/Ubuntu, in questa pagina sono descritte le procedure per (Open)SUSE e RedHat/CentOS/Fedora): build-essential zip libasound2-dev libcurl4-gnutls-dev libcurl4-gnutls libnotify-dev libxt-dev libiw-dev mesa-common-dev autoconf2.13 libgtk2.0-dev gcc yasm.
A questo punto siamo pronti a partire, vediamo prima come compilare e creare un pacchetto di Firefox, e poi quello di Thunderbird (la procedura descritta per Thunderbird vale anche per Lightning e per SeaMonkey, con le dovute modifiche al file mozconfig).

Compilare Firefox

Quando si estraggono i sorgenti di Firefox viene creata la cartella mozilla-1.9.2 (di nuovo, i numeri cambieranno con le versioni successive). Dentro a questa cartella bisogna creare un file di testo chiamato mozconfig con all’interno queste righe:

ac_add_options --enable-application=browser
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --enable-official-branding
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-release
mk_add_options MOZ_MAKE_FLAGS="-j4"

export CFLAGS="-gstabs+"
export CXXFLAGS="-gstabs+"

# For NSS symbols
export MOZ_DEBUG_SYMBOLS=1

# Needed to enable breakpad in application.ini
export MOZILLA_OFFICIAL=1

# Localization
mk_add_options MOZ_CO_LOCALES="it"
ac_add_options --enable-ui-locale=it
ac_add_options --with-l10n-base=desktop/l10n

Questo è il mozconfig usato da Mozilla per costruire le build. Ci sono anche tanti altri parametri da poter passare al compilatore, un elenco completo è in questa pagina. Eventuali parametri aggiuntivi potrebbero migliorare le prestazioni sul vostro sistema, limitando però l’esecuzione del programma a certi tipi di processori. Notare l’ultima riga del file: modificare il percorso se non si è usato quello che sto usando io in questa guida.
Ora esportiamo il file appena scritto tra le variabili di ambiente. Digitare nella console:

export MOZCONFIG=desktop/mozilla-1.9.2/mozconfig

A questo punto non resta che far partire la compilazione, digitare quindi il comando:

make -f client.mk build MOZ_CURRENT_PROJECT=browser

per compilare Firefox. Ora andate pure a pranzo, a cena o a fare una passeggiata, perché la compilazione richiede almeno un’ora. Dopo che la compilazione è finita creiamo il pacchetto contenente i binari. Muoversi all’interno della cartella col makefile dell’installer:

cd desktop/mozilla-1.9.2/objdir-ff-release/browser/installer

e lanciare il comando make. Una volta concluso il comando, il pacchetto .tar.bz2 contenente Firefox compilato si troverà all’interno della cartella objdir-ff-release/dist/.

Compilare Thunderbird

Quando si estraggono i sorgenti di Thunderbird viene creata la cartella comm-1.9.2 (di nuovo, i numeri cambieranno con le versioni successive). Dentro a questa cartella bisogna creare un file di testo chiamato mozconfig con all’interno queste righe:

ac_add_options --enable-application=mail
ac_add_options --enable-optimize
ac_add_options --enable-static
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --disable-shared
ac_add_options --enable-official-branding
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-tb-release
mk_add_options MOZ_MAKE_FLAGS="-j4"

export CFLAGS="-gstabs+"
export CXXFLAGS="-gstabs+"

# Needed to enable breakpad in application.ini
export MOZILLA_OFFICIAL=1

# For NSS symbols
export MOZ_DEBUG_SYMBOLS=1

# Localization
mk_add_options MOZ_CO_LOCALES="it"
ac_add_options --enable-ui-locale=it
ac_add_options --with-l10n-base=desktop/l10n

Di nuovo, questo è il file mozconfig usato da Mozilla per le proprie build. Valgono le stesse considerazioni fatte precedentemente per la modifica di questo file. Per esportarlo tra le variabili d’ambiente dare il comando:

export MOZCONFIG=desktop/comm-1.9.2/mozconfig

e poi il comando per la compilazione:

make -f client.mk build MOZ_CURRENT_PROJECT=mail

Di nuovo la compilazione richiede molto tempo.
Il makefile per creare il pacchetto si trova in objdir-tb-release/mail/installer/ e il file .tar.bz2 può essere recuperato in objdir-tb-release/mozilla/dist/ (notare il percorso leggermente diverso rispetto a Firefox).

Creare un pacchetto per la vostra distribuzione

Se invece di creare un file .tar.bz2 da scompattare in /usr/local preferite creare un pacchetto per la vostra distribuzione (the easy way) per poterlo gestire col vostro package manager, vi basterà installare sul sistema il programma checkinstall. A questo punto, dopo aver compilato il programma, spostatevi nella cartella objdir-*-release, lanciate il comando checkinstall e seguite le istruzioni che compariranno in console per la creazione del pacchetto.