Mozilla Firefox

De Pontão Nós Digitais
Revisão de 01h48min de 2 de novembro de 2011 por V1z (discussão | contribs) (GIT)

(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Clonando (Forkando)

Git

Primeiro crie um fork do repositório https://github.com/doublec/mozilla-central depois clone-o:

  git clone https://github.com/doublec/mozilla-central

Links úteis:

Mercurial (hg)

Clonando repositório oficial da mozilla

   hg clone http://hg.mozilla.org/mozilla-central/ src

Compilando

Pré-requisitos para compilar em GNU/Linux Debian/Ubuntu: https://developer.mozilla.org/En/Developer_Guide/Build_Instructions/Linux_Prerequisites

Documentação da Mozilla para compilar o Firefox: https://developer.mozilla.org/en/Build_Documentation

Como compilar em GNU/Linux: https://developer.mozilla.org/en/Build_and_Install

Mais informações em como compilar em várias plataformas: https://developer.mozilla.org/En/Simple_Firefox_build

Para compilar, antes instale os pré-requisitos:

  apt-get build-dep firefox
  apt-get install mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev mesa-common-dev autoconf2.13 yasm glibc-static


Build no Fedora 13 86_64

Para compilar no fedora, antes instale os pré-requisitos:

  sudo yum groupinstall 'Development Tools' 'Development Libraries' 'GNOME Software Development'
  yum install autoconf213 gtk2-devel libnotify-devel yasm libIDL-devel wireless-tools-devel libXt-devel

o Fedora 13 não tem o pacote yasm 1.0.1, apenas o 0.8, precisa instalar manualmente através de algum rpm do pacote da versão 1.0.1 no caso, usei este: http://repos.fedorapeople.org/repos/leigh123linux/firefox4/epel-6/x86_64/yasm-1.0.1-1.el6.leigh123linux.x86_64.rpm


Make

Para compilar:

   make -f client.mk build

Se o make der erro após um update, pode ser por lixo de builds anteriores, para fazer um build link

   make -f client.mk clean

Se não adiantar, apague o objdir

Executando

Para executar o binário compilado:

   ./objdir/dist/bin/firefox

onde objdir pode ser algo como obj-i686-pc-linux-gnu.

Modificando

A explicação da estrutura do código fonte do Firefox pode ser encontrada nesse link: https://developer.mozilla.org/en/Mozilla_Source_Code_Directory_Structure

Para iniciar, leia https://developer.mozilla.org/en/Introduction

Familiarize-se com o FF, rode-o em um debugger. O FF tem uma flag para chamar o DDD enquanto rodando:

   ddd firefox-bin

Testando

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

IRC

Servidor: irc.mozilla.org

Canais interessantes para acompanhar os novos bugs e se informar:

  1. introduction, #firefox, #bugs

Enviando para o repositório oficial

LEIA: https://developer.mozilla.org/En/Developer_Guide/How_to_Submit_a_Patch

  • Crie um patch e anexe-o para review. [1] [2]
  • Peça review do seu patch: faça isso preenchendo o r? seguido do ID de um desenvolvedor
    • Mas qual desenvolvedor? Geralmente alguém ligado ao bug ou o arquivo (hg blame) que você está editando
  • Acompanhe o bug para ver se o reviewer já o revisou. Senão, vá atrás dele! #introduction em irc.mozilla.org é um bom lugar.
  • Quando o reviewer responder:
    • Se não estiver OK, tente consertar e crie e anexe um novo patch e peça review novamente para o mesmo ID
    • Se o reviewer te der um r+, parabéns, sua correção foi aceita! :-D
  • Agora peça ao reviewer (ou seu mentor, ou adicione a keyword checkin-needed ao seu bug) para dar push para a árvore

Após seu primeiro bug, peça nível 1 de acesso (para poder usar o tryserver). Após vários bugs não-triviais, peça nível 2 ou 3 (para ter permissão de dar push na árvore).

Dissecando Audio Data API

Bugs Interessantes

Referências