Skip to content

Instantly share code, notes, and snippets.

@leobalter
Created May 2, 2012 07:20
Show Gist options
  • Save leobalter/2574765 to your computer and use it in GitHub Desktop.
Save leobalter/2574765 to your computer and use it in GitHub Desktop.

Site de referência:

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

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.

Se não tiver o hg (mercurial) ou o git, 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 e 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 a seguinte linha:

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

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.

Site 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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment