Instalação do B2G Desktop e do Gaia no Ubuntu (Linux)

Sites de referência:

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

https://developer.mozilla.org/en/Linux_Build_Prerequisites

Nota:

É preferencial que o Linux utilizado seja a versão de 32 bits, mas isso não impede que você utilize uma versão de 64 bits. Nesse caso, você pode não ter uma resposta ideal dos processos desse roteiro.

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 um pouco, aguarde.

Se não tiver o hg (mercurial) ou o git, instale-os via apt-get com sudo apt-get install git-core mercurial, etc

Atualização

Lembre-se sempre de atualizar seus repositórios quando for tentar novas builds.

Para atualizar o mozilla central vá até a sua pasta e entre com os comandos:

hg pull
hg update

Para atualizar o gaia vá até a sua pasta e entre com os comandos:

git fetch
git pull origin master

Dependências para o Ubuntu:

Há algumas dependências para o build do mozilla-central no Ubuntu. Uma lista completa para outras versões do Linux pode ser vista na MDN – Linux Build Prerequisites.

Segue um comando para instalar algumas que consegui identificar:

sudo apt-get build-dep firefox
sudo apt-get install autoconf2.13 build-essencial yasm libgtk2.0-dev mesa-common-dev libasound2-dev libdbus-glib-1-dev gconf2 libgconf2-dev libnotify-dev curl libcurl4-openssl-dev libiw-dev libxt-dev

Autoconf 2.13

O mozilla-central requer a versão 2.13 do Autoconf, não funciona com versões diferentes, mesmo que posteriores. Para utilizar a versão correta você pode recorrer a 2 meios:

  • O primeiro é adicionando a seguinte linha ao seu .profile:
export AUTOCONF=autoconf2.13
  • A outra opção – mais limpa – é adicionar a seguinte linha ao seu arquivo mozconfig (mais informações sobre esse arquivo logo abaixo):
mk_add_options AUTOCONF=autoconf2.13

Vou considerar essa opção como a preferencial e manter ela.

Criação do MozConfig:

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

mk_add_options AUTOCONF=autoconf2.13
 
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.

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:

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 a seguinte linha:

127.0.0.1     gaiamobile.org 
127.0.0.1     system.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

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/bin/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.

Se tudo estiver ok uma janela com o emulador do Boot2Gecko deve se abrir. Divirta-se!