Instalação do B2G Desktop e do Gaia no Mac OS/X

Screenshot do B2G Desktop

Provavelmente no final de 2012 ou início de 2013 vamos ter o lançamento do Boot2Gecko, o sistema operacional mobile da Mozilla que é 100% open source e tem como plataforma apenas a Web. É um projeto de encher os olhos de quem trabalha com desenvolvimento web.

Já podemos fazer alguns testes e criar aplicativos para o B2G, uma forma de fazer isso, com pouco custo, é instalar o B2G Desktop, que é – de certa forma – uma versão do Firefox que emula o sistema, afinal, o que temos por aí é Web.

Fui experimentar esse processo de instalação no meu Mac e resolvi relatar cada passo que fiz para obter sucesso. Meu planejamento é que em breve faça o mesmo guia no Linux.

Se interessar, podem também acompanhar o gist onde fiz esse mini tutorial.

Site de referência:

https://wiki.mozilla.org/Gaia/Hacking#Building_B2G

Primeiros passos:

Da pasta usuário (~):

hg clone http://hg.mozilla.org/mozilla-central mozilla-central
git clone https://github.com/andreasgal/gaia gaia

OBS: o mozilla-central demora muito, aguarde alguns instantes.

Se ainda não tiver o hg (mercurial) ou o git instalados, instale-os via Homebrew com brew install hg, etc

Dependências para o Mac OS X:

Há algumas dependências para o Mac OS X para fazer o build do mozilla-central como visto em https://developer.mozilla.org/en/Mac_OS_X_Build_Prerequisites, entre elas o yasm e o libidl

Instale-as também com o Homebrew:

brew install yasm libidl

Outra dependência peculiar é a versão 2.13 do autoconf, você pode obter mais uma vez pelo Homebrew:

brew install https://raw.github.com/Homebrew/homebrew-versions/master/autoconf213.rb

Criação do MozConfig:

na pasta do ~/mozilla-central criei um arquivo mozconfig com o seguinte conteúdo:

mk_add_options MOZ_OBJDIR=../b2g-build
mk_add_options MOZ_MAKE_FLAGS="-j9 -s"
 
ac_add_options --enable-application=b2g
ac_add_options --disable-libjpeg-turbo
 
# This option is required if you want to be able to run Gaia's tests
ac_add_options --enable-tests
 
# turn on mozTelephony/mozSms interfaces
# Only turn this line on if you actually have a dev phone
# you want to forward to. If you get crashes at startup,
# make sure this line is commented.
ac_add_options --enable-b2g-ril

Note que essa última linha pode ser comentada se começar a ter crashes no startup do B2G. Não tive nenhum problema com ou sem o uso dessa opção (fiz duas builds diferentes).

Build do mozilla-central

Faça o build com o seguinte comando:

make -f client.mk build

Aguarde, pois vai demorar (mais de uma hora).

Build do Gaia

Agora é hora de fazer o build do Gaia. Vá até a pasta onde ele foi instalado. Por exemplo, a minha foi a ~/gaia.

O build do Gaia é rápido, mas tive problemas na inicialização que resolvi adicionando um valor para a palavra DEBUG, antes de executar o make, então recomendo o seguinte para fazer o build do Gaia:

DEBUG=1 make

O processo vai gerar uma pasta profile dentro do Gaia que vamos utilizar mais a frente.

Arquivo Hosts

O perfil do Gaia cria um serviço web e você precisa adicionar sua máquina para os domínios e subdomínios chamados.

Logo, modifique o seu /etc/hosts como root e inclua as seguintes linhas:

127.0.0.1     gaiamobile.org 
127.0.0.1     homescreen.gaiamobile.org
127.0.0.1     dialer.gaiamobile.org 
127.0.0.1     sms.gaiamobile.org 
127.0.0.1     browser.gaiamobile.org 
127.0.0.1     maps.gaiamobile.org 
127.0.0.1     camera.gaiamobile.org
127.0.0.1     gallery.gaiamobile.org
127.0.0.1     video.gaiamobile.org 
127.0.0.1     market.gaiamobile.org
127.0.0.1     music.gaiamobile.org 
127.0.0.1     settings.gaiamobile.org
127.0.0.1     clock.gaiamobile.org
127.0.0.1     crystalskull.gaiamobile.org
127.0.0.1     penguinpop.gaiamobile.org
127.0.0.1     towerjelly.gaiamobile.org
127.0.0.1     wikipedia.gaiamobile.org
127.0.0.1     cnn.gaiamobile.org 
127.0.0.1     bbc.gaiamobile.org 
127.0.0.1     nytimes.gaiamobile.org 
127.0.0.1     calculator.gaiamobile.org

No OS/X o arquivo hosts não aceita vários domínios em uma mesma linha, logo, é preciso quebrar em linhas diferentes como no exemplo acima.

Execução do B2G Desktop e Gaia

Após os builds feitos, chame o browser simulador do B2G para abrir a partir do perfil do Gaia:

../b2g-build/dist/B2G.app/Contents/MacOS/b2g -profile ~/gaia/profile

Lembre-se que os diretórios ~/b2g-build e ~/gaia são de sua escolha e podem ser diferentes nesse processo.

Provavelmente virá a seguinte resposta:

Opened socket on 4242
======================= webapi+apps.js ======================= 
DataCallSettings - ril.data.enabled:falseDataCallSettings - ril.data.roaming.enabled:falseDataCallSettings - ril.data.apn:DataCallSettings - ril.data.user:DataCallSettings - ril.data.passwd:

Não tem que inserir password, simplesmente alterne as janelas abertas para abrir o B2G Desktop e divirta-se.