Construindo o Firefox a partir da fonte

2

Eu só quero pegar o código, editar algumas coisas e construí-lo, apenas porque é tão complicado?

Eu tentei este guia que parecia ser o que eu preciso, mas se você ver o guia original é completamente diferente e complicado, usando bzr e outras coisas.

Eu sigo o script:

sudo apt-get build-dep firefox
sudo apt-get install -y fakeroot
apt-get source firefox
# here it gets firefox_55.0.2+build1-0ubuntu0.16.04.1.debian.tar.xz, firefox_55.0.2+build1-0ubuntu0.16.04.1.dsc and firefox_55.0.2+build1.orig.tar.xz
tar xf firefox_55.0.2+build1-0ubuntu0.16.04.1.debian.tar.xz
tar xf firefox_55.0.2+build1.orig.tar.xz
vim debian/config/mozconfig.in
# trying to fix https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1710993
# echo 'ac_add_options --enable-alsa' >> debian/config/mozconfig.in
dpkg-buildpackage -b -us -uc
# some bugs of missing SOURCE_CHANGESET file
touch SOURCE_CHANGESET
dpkg-buildpackage -b -us -uc
# some issues with missing browser/config/version.txt file
ln -s firefox-55.0.2+build1 browser
touch browser/config/version.txt
dpkg-buildpackage -b -us -uc

Parece depender de muitos locais e continua criticando a mensagem debian/build/rules.mk:366: *** We aren't in the full source directory. Please use "TARBALL=<path_to_orig.tar.bzr>". Stop. .

Eu estou no mesmo diretório que eu extraí os arquivos, a fonte está lá, eu não preciso mudar nenhum outro pacote por enquanto, como posso construí-lo?

    
por Tiago Pimenta 19.08.2017 / 13:40

1 resposta

4

A compilação da versão de desenvolvimento do Firefox ('Nightly') pode ser feita com alguma preparação cuidadosa. (Esta é a melhor versão para usar ao produzir correções e melhorias para 'upstream'). É obrigatório realizar tal tarefa longe de uma instalação de produção do Ubuntu e eu recomendamos strongmente o uso de uma Máquina Virtual dedicada somente a esta tarefa.

A técnica abaixo foi testada com o Ubuntu Zesty Zerus 17.04 (rodando em uma Máquina Virtual dedicada!) e seria melhor sempre usar a versão mais moderna do Ubuntu para compilar o Firefox, já que as dependências usadas serão, na maior parte, bastante modernas. . Eu não mexi com infinitas opções de construção, mas sinta-se à vontade para fazê-lo por conta própria!

Nota: O sistema de compilação precisa de uma grande quantidade de RAM, além de uma grande quantidade de espaço em disco. Eu sugeriria 8GB de RAM, 30GB de espaço livre em disco e quantos núcleos a VM permitir, essa combinação certamente funcionou no meu sistema. Nota: o sistema de compilação falhará com menos permissões de RAM, espaço em disco rígido e núcleos disponíveis ...

1. Construir Dependências:

Primeiro, instale algumas dependências de compilação, começando com o mais recente compilador de ferrugem estável:

wget -O - https://static.rust-lang.org/rustup.sh | sh

Em seguida, uma instalação mais padrão dos Repositórios do Ubuntu:

sudo apt-get install autoconf2.13 libgtk-3-dev mercurial llvm-4.0 clang-4.0 \
libgconf2-dev libdbus-glib-1-dev libpulse-dev yasm build-essential libgtk2.0-dev \
libxt-dev

2. Clone o repositório de desenvolvimento do Firefox:

Próximo para clonar o repositório do Firefox Mercurial, prepare uma xícara de chá enquanto o download é feito:

cd $HOME && hg clone https://hg.mozilla.org/mozilla-central

3. Construa o Firefox:

Finalmente, para construir o próprio código-fonte, é hora de outra xícara de chá e, provavelmente, ter um sanduíche, além de levar muito tempo para que o computador seja mais rápido:

cd $HOME/mozilla-central && ./mach build

E quando estiver concluído, você verá esta mensagem:

43:58.38 We know it took a while, but your build finally finished successfully!
To view resource usage of the build, run |mach resource-usage|.
To take your build for a test drive, run: |mach run|

Além de um link com algumas dicas sobre onde ir em seguida ...

4. Execute o Firefox:

Agora basta executar:

cd $HOME/mozilla-central && ./mach run

e você está executando a última versão de desenvolvimento do Firefox! Agora você pode começar a hackear o código-fonte e, se seus patches estiverem prontos, você poderá enviá-los e trabalhar neste novo navegador.

5. Atualizando a fonte:

Você deve atualizar periodicamente a fonte, alterando para o diretório de origem e atualizando com os comandos padrão do repositório mercurial. A seguinte linha deve realizar isso para você:

cd $HOME/mozilla-central && hg pull && hg update

Aqui está uma atualização padrão executada no meu próprio sistema:

andrew@ithaca:~/mozilla-central$ hg pull
pulling from https://hg.mozilla.org/mozilla-central
searching for changes
adding changesets
adding manifests
adding file changes
added 767 changesets with 4619 changes to 3590 files                            
(run 'hg update' to get a working copy)
andrew@ithaca:~/mozilla-central$ hg update
3581 files updated, 0 files merged, 141 files removed, 0 files unresolved

Depois disso, você deve recompilar:

cd $HOME/mozilla-central && ./mach build

E talvez ande enquanto isso recompilar :).

6. Captura de tela gratuita:

Abaixo está uma captura de tela do último 'Nightly' em execução no meu sistema 17.04:

E lembre-se: 'Divirta-se !!'

Notas:

  • Contribuindo para a base de código do Mozilla : Os passos iniciais para incorporar seus patches no código do Firefox base ...
  • Mozilla Firefox: preparação para a criação do Linux : Um bom ponto de partida para este projeto, embora algumas modificações e adições foram necessárias. Eu não consegui fazer com que o instalador bootstrap.py funcionasse, então as instruções para isso foram dadas manualmente .
  • O compilador de ferrugem no Ubuntu 17.04 era antigo demais, então instruções para instalar diretamente do local da ferrugem eram dadas. A ferrugem tem um ciclo de lançamento de 6 semanas, então esta pode ser a melhor opção para aqueles que preferem o sangramento. Algumas observações aqui ...
  • Firefox Nightly : Mais alguns detalhes sobre o desenvolvimento e o modelo de lançamento do Firefox Nightly.
por andrew.46 23.08.2017 / 00:24