Un rapido riassunto di quello che è successo e di quello che ci attende nei prossimi giorni sul fronte Mozilla:

  • all’inizio di dicembre il ramo (branch) 1.9.1 è stato separato dal trunk. Dal ramo mozilla-1.9.1 avranno origine Firefox 3.1 e Thunderbird 3.0, mentre Fennec e Firefox 3.2 (ammesso che rimanga questo il numero di versione) continueranno lo sviluppo sul trunk (mozilla-central);
  • sul ramo 1.9.1 le regole di check-in saranno molto più strette rispetto a mozilla-central: saranno accettate solo patch con approvazione esplicita oppure correzioni di bug bloccanti, le patch dovranno prima essere inserite e verificate sul trunk;
  • nei prossimi giorni sono previsti diversi minor update (Firefox 3.0.5, Firefox 2.0.0.19, Thunderbird 2.0.0.19) e un paio di versioni beta (Firefox 3.1beta2 e Thunderbird 3.0beta1);
  • il prossimo aggiornamento per Firefox 2.0.x sarà l’ultimo del ramo mozilla-1.9.0: per questo motivo agli utenti verrà mostrata una pagina di avviso subito dopo l’installazione dell’aggiornamento;
  • in settimana dovrebbe uscire un nuovo sondaggio Mozilla rivolto in modo specifico ad alcune nazioni, tra cui l’Italia. Vi avviso da subito che avrò bisogno di far girar il più possibile questa notizia (maggiori dettagli appena il sondaggio verrà pubblicato): non vorremo mica far la figura dei cioccolatai con i cugini francesi? 😉

La prima notizia è che sono rientrato tutto intero da Barcellona, fisicamente provato da questa trasferta catalana ma assolutamente soddisfatto. Qualcun altro (il mio compagno di stanza) ha rischiato di fare il viaggio di ritorno in un sacchetto a là Dexter, ma non è il caso di soffermarsi sugli istinti omicidi del sottoscritto.

L’organizzazione è stata assolutamente perfetta: accoglienza in aeroporto con consegna di un biglietto da 10 corse per visitare la splendida Barcellona, albergo a pochi passi dal centro congressi (con auditorium, 3 aule per conferenze e laboratori), ottima copertura wi-fi durante i talk.

Qualche considerazione in ordine clamorosamente sparso (tanto per cambiare sono in debito di tempo):

  • a Barcellona, così come a Whistler, è evidente come l’attenzione in casa Mozilla sia assolutamente rivolta al futuro. I 10 anni della Mozilla Foundation non sono l’occasione per guardare ai traguardi ottenuti – e pochi avrebbero scommesso su simili risultati all’indomani dei licenziamenti in casa Netscape – quanto un’opportunità per definire gli obiettivi futuri;
  • si è parlato ampiamente di Mozilla Messagging e di Mobile (Fennec). Sulla questione mobile è stato chiarito che non si prevedono versioni per iPhone (causa limitazioni imposte dagli accordi per sviluppatori) e probabilmente nemmeno per Android (la risposta è stata, più o meno, “Android possiede già un browser valido”), mentre nel giro di un paio di settimane dovrebbero essere disponibili build per Windows Mobile. Per Symbian il problema è soprattutto tecnico, e ancora non è dato sapere se sarà possibile far funzionare Fennec su questi dispositivi;
  • in un paio di settimane dovrebbe essere disponibile un canale per Fennec su AMO;
  • decisamente interessante la libreria Silme, così come gli sviluppi relativi ai Mozilla Community Themes (dal mio punto di vista sarà fondamentale la possibilità di modificare senza particolari limitazioni il tema);
  • come sempre colpisce in modo positivo la disponibilità dimostrata da tutti i mozilliani, di ogni grado e ruolo;
  • incontrarsi di persona permette di prendere decisioni e dirimere questioni che richiederebbero settimane via mail, e rappresenta un passo fondamentale per costruire una comunità degna di questo nome;
  • le t-shirt di Mozilla Italia hanno ottenuto un notevole successo di pubblico;
  • finalmente ho le spille nere di Firefox (qualcuno doveva darmele mesi addietro…), quindi potete intuire il soggetto della prossima foto domenicale;
  • abbiamo un’accanita sostenitrice di Mozilla Italia (e dell’Italia in generale) tra i dipendenti di Mountain View. Inutile dire che tutti abbiamo cercato di scroccare una vacanza in California offrendo i nostri servigi come camerieri o cuochi. In ogni caso, da sabato possiamo dire di conoscere qualcuno che pranza da Google 😛

Mozilla Europe Camp ’08

19 Ottobre 2008

Un post intramuscolare per segnalare che il sottoscritto, insieme a ben 3 colleghi di Mozilla Italia, parteciperà al Mozilla Europe Camp ’08 che si terrà a Barcellona nei giorni 25 e 26 ottobre.

Il programma è decisamente fitto e, a meno di ripensamenti dell’ultimo minuto, viaggerò senza reflex al seguito (dovrò fare scalo su Roma, per cui preferisco viaggiare leggero). Quindi aspettatevi resoconti ma non fotografie 😛


Disclaimer: as you may have already noticed, this post is written in Italian. If you need an English version, just ask and I’ll provide one (comments inside the scripts are already in English) 😉

Come avrete sicuramente notato dal post precedente, in questi giorni ho la possibilità fare un po’ di test con un Nokia N810: per questo devo ringraziare Luca, che come sempre si è dimostrato gentilissimo – alla faccia del ferragosto e del periodo vacanziero – e mi ha messo in contatto con le persone giuste (un sentito grazie anche a loro e a Nokia Italia per la disponibilità).

Il punto di partenza è il post del team francese con le indicazioni per la localizzazione di Fennec 0.4. L’idea è quella di semplificare ulteriormente la procedura creando alcuni script, nella speranza che il post possa essere utile anche ad altri team l10n. Tutte le operazioni devono essere eseguite su una macchina debian-based (io uso una VM con Ubuntu su Parallels-OS X); dal momento che scrivere script non è esattamente il mio lavoro, sono sicuro che esistano ampi margini di miglioramento 😉

I pacchetti da localizzare sono due: Fennec e XulRunner. Per prima cosa è necessario scaricare i file dal server Mozilla.

Localizzazione di XulRunner

Partiamo dal pacchetto più semplice, in quanto non sono richiesti interventi manuali.

Per procedere bisogna inserire in una cartella:

  • lo script setup_xulrunner.sh
  • il file it.jar recuperato dal language pack italiano (attenzione: per xulrunner 1.9.1a2pre serve quello per Firefox 3.1)
  • il pacchetto fennec_0.6_armel.deb

Descrizione dello script:

  • imposto delle variabili con nome del pacchetto, nome del file .deb e il locale (utilizzate per semplificare il riutilizzo dello script)
  • estraggo il contenuto del pacchetto .deb in ./xulrunner, quello del file it.jar nella cartella ./locale_xulrunner
  • attraverso sed sostituisco il nome di una variabile in xpinstallConfirm.dtd (ancora mi chiedo il perché di questa differenza tra Firefox e XulRunner…)
  • ricreo il file it.jar (in realtà si tratta di un file zip con estensione .jar), sistemo il chrome.manifest sostituendo en-us con it (sempre usando sed)
  • elimino i file en-US e ricreo il pacchetto .deb con la localizzazione

setup_xulrunner.sh

#!/bin/sh
# Create an empty folder and place inside this directory:
# * this script (setup_xulrunner.sh)
# * the xulrunner .deb package
# * the ab-CD.jar file taken from your localized Firefox (for 1.9.1a2pre you need a Fx 3.1 language pack!)
#
# Change the package_name variable according to the the xulrunner package,
# language_code according to your locale
package_name="xulrunner_1.9.1a2pre-2008080410_armel"
language_code="it"
product_name="xulrunner"
# Create directories
mkdir ${product_name}
mkdir locale_${product_name}
# Extract deb package
cd ${product_name}
dpkg-deb -e ../${package_name}.deb
dpkg-deb -x ../${package_name}.deb .
# Extract locale files
cp ../${language_code}.jar ../locale_${product_name}
cd ../locale_${product_name}
unzip ${language_code}.jar
rm ${language_code}.jar
# Adapt Firefox localization to xulrunner
# - Remove reporter files
rm -r ./locale/${language_code}/reporter
# - Change variable name
sed -i 's/warningMain.label/warningPrimary.label/' ./locale/${language_code}/mozapps/xpinstall/xpinstallConfirm.dtd
# Create ab-CD.jar with localized files
cd locale_${product_name}
zip -r ${language_code}.jar *
# Move ab-CD.jar to package directory
mv ${language_code}.jar ../${product_name}/usr/local/${product_name}/chrome
# Change en-US.manifest and save as ab-CD.manifest
sed 's/en-US/'${language_code}'/g' ../${product_name}/usr/local/${product_name}/chrome/en-US.manifest > ../${product_name}/usr/local/${product_name}/chrome/${language_code}.manifest
# Remove en-US files (jar and manifest)
rm ../${product_name}/usr/local/${product_name}/chrome/en-US.jar
rm ../${product_name}/usr/local/${product_name}/chrome/en-US.manifest
cd ../${product_name}
# Create localized .deb package
dpkg-deb -b . ../${package_name}.${language_code}.deb

Localizzazione di Fennec

A differenza di XulRunner, la localizzazione avviene in due fasi:

  • nella prima fase (setup_fennec.sh) estraggo il contenuto del pacchetto .deb in ./fennec e creo la cartella ./locale_fennec
  • nella seconda fase (repackage_fennec.sh) ricreo il pacchetto .deb

Le due fasi sono necessarie in quanto bisogna localizzare a mano le stringhe presenti in ./locale_fennec: come riferimento è consigliabile utilizzare gli analoghi file del language pack di Firefox (molte stringhe sono simili o identiche).

setup_fennec.sh

#!/bin/sh
# Create an empty folder and place inside this directory:
# * this script (setup_fennec.sh)
# * the fennec .deb package
#
# Change the package_name variable according to the the fennec package,
# language_code according to your locale
#
# After the script is run, you should find a locale_fennec folder with the files to localize
fennec_package="fennec_0.6_armel"
# Create directories
mkdir fennec
mkdir locale_fennec
cd fennec
# Extract deb package
dpkg-deb -e ../${fennec_package}.deb
dpkg-deb -x ../${fennec_package}.deb .
# Extract locale files
cp ./usr/local/fennec/chrome/en-US.jar ../locale_fennec
cd ../locale_fennec
unzip en-US.jar
rm en-US.jar

repackage_fennec.sh

#!/bin/sh
# Change the package_name variable according to the the fennec package,
# language_code according to your locale
#
# Inside ./locale_fennec you should have the localized files
#
# Don't run this script twice: since the first execution deletes the en-US.manifest, the second one
# creates an empty ab-CD.manifest file (and a broken .deb package)
fennec_package="fennec_0.6_armel"
language_code="it"
product_name="fennec"
# Create ab-CD.jar with localized files
cd locale_${product_name}
zip -r ${language_code}.jar *
# Move ab-CD.jar to package directory
mv ${language_code}.jar ../${product_name}/usr/local/${product_name}/chrome
# Change en-US.manifest and save as ab-CD.manifest
sed 's/en-US/'${language_code}'/g' ../${product_name}/usr/local/${product_name}/chrome/en-US.manifest > ../${product_name}/usr/local/${product_name}/chrome/${language_code}.manifest
# Remove en-US files (jar and manifest)
rm ../${product_name}/usr/local/${product_name}/chrome/en-US.jar
rm ../${product_name}/usr/local/${product_name}/chrome/en-US.manifest
cd ../${product_name}
# Create localized .deb package
dpkg-deb -b . ../${fennec_package}.${language_code}.deb

Per installare i due pacchetti è sufficiente copiare i file sul dispositivo ed eseguirli: Fennec risulterà disponibile nella scheda Extra del menu (vedi screenshot) 😉

Tag Technorati: ,

Trattasi di post di servizio: dubito che qualcuno voglia occupare centinaia di MB del proprio disco per una simile operazione 🙂

Nota a margine: Firefox 3.1 è attualmente in pre-alpha2, quindi va usato solo per test e QA.

Ambiente Mac OS X

Per prima cosa bisogna preparare l’ambiente di compilazione:

Aprire il terminale e installare i seguenti pacchetti con MacPorts: mercurial, libidl, autoconf213.

$ sudo port sync
$ sudo port install mercurial libidl autoconf213

Nel mio caso il comando port (situato in /opt/local/bin) non veniva rilevato, per cui ho dovuto aggiungere queste linee al file ~/.bash_profile

export PATH=$PATH:/opt/local/bin
export MANPATH=$MANPATH:/opt/local/share/man
export INFOPATH=$INFOPATH:/opt/local/share/info

Ambiente Linux

L’ambiente dovrebbe già essere pronto (a parte l’installazione di Mercurial), attenzione solo alla versione di autoconf (deve essere necessariamente la 2.13).

Ambiente Windows

La soluzione più rapida è sicuramente quella di utilizzare Mozilla Builds (mai provato personalmente).

Per prima cosa creare una cartella – ad esempio sorgenti_hg – dove scaricare con Mercurial il codice sorgente completo e i file della lingua italiana.

Ecco un elenco dei repository utili:

  • mozilla-central per Firefox
  • comm-central per Thunderbird
  • l10n-central/it per i file della localizzazione italiana

Per semplificare prenderò in considerazione il language pack per Firefox, clonando il repository mozilla-central (il comando va eseguito all’interno della cartella sorgenti_hg, la cartella mozilla-central verrà creata automaticamente).

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

Clono il repository del locale it (in questo caso creo manualmente la cartella l10n-central)

mkdir l10n-central
cd l10-central
hg clone http://hg.mozilla.org/l10n-central/it

Creare un file .mozconfig all’interno della cartella mozilla-central e inserirvi queste righe

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../firefox
ac_add_options --with-l10n-base=/Users/utente/sorgenti_hg/l10n-central
ac_add_options --disable-compile-environment
ac_add_options --disable-ogg
ac_add_options --enable-application=browser

Il secondo parametro contiene il percorso completo al repository l10n-central (non alla cartella del locale it). Il parametro –disable-ogg serve per aggirare il bug 449936. Il parametro –enable-application avrà valore browser per Firefox, mail per Thunderbird.

Posizionarsi nella cartella mozilla-central e digitare

make -f client.mk configure
cd ../firefox/browser/locales
make langpack-it

A questo punto in sorgenti_hg/firefox/dist/install sarà disponibile il language pack in formato xpi. Una volta installato, per attivarlo bisogna usare l’estensione Locale Switcher (andrà forzata modificando il file install.rdf per risultare compatibile con le nightly).


Whistler Bug

31 Luglio 2008

L’aggiornamento di ieri sera sulla frana ad opera di John Lily era materiale da tramandare ai posteri, spero sinceramente che qualcuno l’abbia registrato. Nel frattempo, questa notte BugZilla era in manutenzione e non mancava certo l’ironia.

Già che c’erano hanno aperto pure un bug, vi consiglio caldamente di dargli un’occhiata.

P.S. In questo momento siamo pure senza elettricità nelle camere (quantomeno all’ottavo piano dell’ala est), ma il wi-fi continua a funzionare. Misteri della scienza.