Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Preparando sua primeira compilação do B2G

Antes de você compilar o B2G, você precisa criar um clone do repositório e configurar sua árvore de compilação. Esse artigo explica como fazer isso.

Dependendo da sua conexão de internet, a etapa de configuração leva uma boa quantidade de horas para baixar os arquivos necessários para compilar o Firefox OS (com uma conexão medíocre de 150 kBps, baixar gigabytes de repositórios Android pode levar dezenas de horas). Uma vez que esperar não é uma tarefa muito divertida, depois de ler essa página e iniciar o script de configuração considere usar seu tempo para configurar e utilizar o Simulador do Firefox OS, familiarizar-se com a Documentação para desenvolvedores de aplicativos incluindo Projeto e Compilação de Aplicativos ou até mesmo ler sobre os próximos passos.

Você precisará ter uma outra tarefa para fazer, ou um amigo disponível para um café enquanto são executadas as tarefas de configurar e compilar o B2G. Elas podem levar um bom tempo.

Clonar o repositório B2G

O primeiro passo, antes de iniciar sua primeira compilação, é clonar o repositório B2G. Não será baixado tudo! Ao invés disso, somente o sistema de compilação e utilitários de configuração. A maioria do código real do B2G está no repositório principal da Mozilla: Mercurial.

Para clonar o repositório use o git:

git clone git://github.com/mozilla-b2g/B2G.git

Após clonar (o que somente levará um minuto numa conexão rápida), vá para o diretório B2G:

cd B2G

Configurando o B2G para seu dispositivo

Importante: Lembre-se que somente dispositivos rodando Android 4.0.4 (também conhecido como Ice Cream Sandwich), 4.3 (Jelly Bean) e 4.4 (KitKat))  e plataformas baseadas nessas versões são suportadas (como o caso do Firefox OS atual). Por favor verifique se seu telefone está rodando alguma dessas versões, do contrário essa etapa provavelmente irá falhar uma vez que alguns drives vêm de dispositivos "Não-Nexus". Observe também que se você for copiar o sistema (flash) para seu telefone com alguma dessas versões, alguns HUBs USB não funcionam bem com ferramentas de cópia de sistema, então conecte seu dispositivo numa porta USB do seu computador (sem usar HUBs).
Importante: Se você está compilando no Ubuntu 12.10+ ou Fedora, você precisa indicar o GCC 4.6 como o compilador padrão depois de baixar os fontes do B2G para que a compilação funcione (essas distros usam GCC 4.7 como padrão). Leia o artigo Modificando o compilador padrão para descobrir como fazer isso.
Nota: Por favor leia todas as instruções abaixo antes de executar qualquer comando do processo de compilação para certificar-se de que você está fazendo a coisa certa!

Uma vez que você tenha baixado o núcelo do sistema de compilação do B2G, você precisa configurá-lo para o dispositivo que você deseja instalar. Para conseguir uma lista dos dispositivos suportados, você pode usar o utilitário config.sh — execute o seguinte comando no diretório B2G:

./config.sh

Vai ser apresentada uma lista dos dispositivos suportados, como essa:

Usage: ./config.sh [-cdflnq] (device name)
Flags are passed through to |./repo sync|.

Valid devices to configure are:
- galaxy-s2
- galaxy-nexus
- nexus-4
- nexus-4-kk
- nexus-5
- nexus-5-l
- nexus-s
- nexus-s-4g
- flo (Nexus 7 2013)
- otoro
- unagi
- inari
- keon
- peak
- hamachi
- helix
- tarako
- dolphin
- dolphin-512
- pandaboard
- vixen
- flatfish
- flame
- flame-kk
- flame-l
- rpi (Revision B)
- emulator
- emulator-jb
- emulator-kk
- emulator-l
- emulator-x86
- emulator-x86-jb
- emulator-x86-kk
- emulator-x86-l
> Sony Xperia devices
- aries (Z3 Compact KK)
- aries-l (Z3 Compact L)
- leo-kk (Z3 KK)
- leo-l (Z3 L)
- scorpion-l (Z3 Tablet Compact L)
- sirius-l (Z2 L)
- tianchi-l (T2U L)
- flamingo-l (E3 L)

Se o seu dispositivo não estiver na lista, você deve parar agora ou ajudar a portar o B2G para o seu dispositivo, ou ainda esperar que alguém o faça. Nós preferimos que você ajude!

Nota: Você pode encontrar o nome do seu telefone na página Telefones Firefox.
Nota: A Configuração e Compilação do B2G para o Keon no Mac NÃO FUNCIONA!. Você precisa de um Linux para compilar para esse aparelho.
Nota: Se, por alguma razão, você desejar compilar usando uma versão específica
do Gecko, veja Compilando um Gecko customizado antes de
prosseguir. Se você desejar compilar um branch que não seja o padrão para o
seu dispositivo (por exemplo, para compilar uma versão específica do B2G),
veja Compilando um branch. Nota: o branch padrão varia conforme o
dispositivo e não é necessariamente o trunk

Agora pode ser um ótimo momento para um café, já que a partir desse ponto você começará a baixar o código necessário para compilar o Boot to Gecko. Executar as etapas de configuração como indicado abaixo tomará um longo tempo. Você poderá parar a execução com Ctrl-C e reiniciar um tempo depois. Se você achar que alguma parte do processo terminou sem ter todas as tarefas completadas, execute ./repo sync para reparar possíveis problemas.

Configurando a compilação do B2G para um dispositivo móvel

Neste ponto, conecte seu dispositivo caso ele ainda não esteja conectado, uma vez que o processo de configuração vai precisar acessá-lo.

Se o seu dispositivo estava listado nos resultados mostrados acima, você pode iniciar o processo de configuração executando novamente config.sh, mas dessa vez especificando o nome do seu dispositivo. Por exemplo, para compilar para o aparelho Samsung Google Nexus S, você vai executar:

./config.sh nexus-s
Nota: Se você receber uma mensagem de erro como essa: fatal: manifest 'nexus-s.xml' not available, possivelmente basta especificar o branch que você quer usar. Veja o artigo Compilando um branch para mais detalhes.
Nota: Se a etapa de configuração apresentar um erro como esse: error: manifest required for this command -- please run init, indica que as alterações realizadas no arquivo manifesto para o repo (localizado em  B2G/.repo/manifest.xml) não foi criado corretamente. Você deve tentar executar config.sh novamente indicando explicitamente o arquivo manifesto dessa forma: ./config.sh <device> -m path/to/manifest.

Próximo de iniciar a configuracão você precisa configurar a opção para o uso da cor, após isso o processo continua. Você pode apenas selecionar 'y' aqui, já que você provavelmente vai querer a compilação com essa opção.

Configurando uma compilação usando uma cópia de segurança do sistema

Se o seu telefone não possui mais o Android, e a árvore B2G não tem os BLOBs binários, mas você sabiamente fez uma cópia de segurança da partição /system, você pode executar a compilação no sistema dessa forma:

ANDROIDFS_DIR=<absolute path to parent dir of system dir> ./config.sh <target>

A compilação por padrão procurará em algum lugar como backup-inari/system (dependendo da configuração do dispositivo); se você colocar os arquivos no local esperado não será necessário especificar o diretório.

Observe que se seu telefone sempre teve o Firefox OS e nunca rodou o Android, mesmo assim é bom copiar a partição /system conforme as instruções acima — isso trará os arquivos corretos.

Configurando a compilação do B2G para um emulador

Se você quiser compilar para um emulador no lugar de um telefone real, você pode especificar emulator* para um emulador de dispositivo ARM, ou emulator-x86* para um emulador x86. Esse último é mais rápido, mas não tão preciso na representação de um dispositivo móvel real e também não é suportado. Assim, não é aconselhável sua utilização.

Por exemplo, para compilar o emulador ARM Jellybean, você pode usar o seguinte comando:

./config.sh emulator-jb

A partir desse ponto você está pronto para iniciar a compilação, a menos que você precisa informações mais detalhadas como as descritas abaixo.

Importante: A compilação para emulador no Linux 64-bit pode não funcionar.

Nota: Desenvolvedores que utilizam Mac OS X 10.9 ou superiores devem utilizar o emulator-jb ou emulator-kk, porque emuladores baseados em AOSC ICS não podem ser compilados no Mac OS 10.9. Veja Requisitos para Mac OS X para maiores informações.

Compilando um Gecko customizado

Pode haver momentos que você queira ou precisa compilar o B2G baseado numa versão do Gecko diferente da padrão atualmente utilizada (como especificado no manifesto). Você pode fazer isso editando o arquivo .userconfig. Por exemplo, se você quiser compilar o mozilla-central:

export GECKO_PATH=/path/to/mozilla-central
export GECKO_OBJDIR=/path/to/mozilla-central/objdir-gonk

Nota: se você for compilar um Gecko customizado no Mac OS X, o diretório mozilla-centra deve estar num sistema de arquivos case sensitive.

Observe que você pode fazer isso antes de você baixar o repositório (ou seja, antes da etapa config.sh descrita acima) ou em qualquer momento mais tarde. Você também pode manter múltiplas compilações (com modo de depuração ligado ou não, etc)

Note that you can do this either before you pull the repository (i.e. before the config.sh step above) or at any later point.  You can also keep multiple builds (with debugging on or not, etc) tendo vários arquivos userconfig (obviamente com diferentes configurações cada um necessita um diferente OBJDIR) e fazer um link simbólico do .userconfig que aponta para qual configuração você deseja compilar naquele momento.

Para maiores informações, leia o artigo Alterando a árvore fonte do Gecko.

Compilando um branch

Se você quiser compilar para um outro branch que não o branch padrão (atenção: o branch padrão pode não ser o "master"!), você precisa inserir um prefixo na chamada do script config.sh com o nome do branch:

BRANCH=branch-name ./config.sh <device>

Os nomes dos branches seguem uma lógica e em grande parte seguem os nomes dos produtos/versões, por exemplo, v1-train, v1.0.0, v1.0.1, v1.1, v1.1.0hd, v1.2, v1.3, v1.4, v2.0  e assim será no futuro. Como exemplo, para compilar o B2G Firefox 1.2 para o emulador ARM você deve usar o comando:

BRANCH=v1.2 ./config.sh emulator

Se você já executou o config.sh, você pode ver os nomes dos branches, indo ao diretório B2G/.repo/manifests e executando "git branch -a" (esse não é preenchido até então). O nome do branch pode ser visto no final da linha:

  remotes/origin/master
  remotes/origin/v1-train
  remotes/origin/v1.0.0
  remotes/origin/v1.0.1

Veja o artigo Customização com o arquivo .userconfig para customizações adicionais que você pode fazeror additional customizations you can do.

Copiando a árvore B2G para uma nova máquina

Se você já configurou uma árvore B2G e tem um novo computador (sorte para você!) sua vida será bem mais fácil se você simplestmente migrar a árvore B2G inteira do seu computador antigo para o novo, ao invés de configurar tudo novamente. Para fazer isso, monte o disco do seu computador antigo no novo computador e execute o seguinte comando:

rsync -a source/ dest/

Onde source é o caminho completo (incluindo a barra final) da árvore origem e  dest é o local onde para onde você quer copiar o conteúdo. (a barra final também é importante!).

Nota: Se você vai copiar os arquivos de um computador para outro de outra plataforma, certifique-se de executar './build.sh clean' antes de iniciar o processo de compilação. Se não fizer isso pode encontrar problemas na compilação.

Se você fizer isso, pode pular todo o resto desse artigo e ir direto para o artigo building.

Alterando a árvore B2G

Quando o repositório é alterado com uma nova versão do B2G, você pode querer alterar sua árvore B2G. Para fazer isso, execute os seguintes comandos:

git fetch origin
git checkout origin/master

Você pode verificar se tudo funcionou corretamente executando:

git show HEAD

e verificando que o commit mostrado corresponde ao mais recente em: https://github.com/mozilla-b2g/B2G/commits/master

Próximo passo

Agora, você está pronto para compilar o Firefox OS.

Etiquetas do documento e colaboradores

 Colaboradores desta página: jwhitlock, bobcanthelpyou, MatCAlves, rbrandao
 Última atualização por: jwhitlock,