Linux build preparation

This translation is incomplete. Please help translate this article from English

La Guía de Inicio Rápido

No son complicados, pero existen algunos pre-requisitos para construir Firefox en Linux. Necesitas:

  • Una instalación de 64-bits de Linux. Puedes comprobarlo iniciando una ventana de terminal; Si uname -m retorna x86_64 puedes proceder.
  • Después, necesitarás Python 2.7 instalado, Python 3.x está actualmente no soportado. Puedes comprobarlo con python --version para ver si ya lo tienes instalado. Si no es así, puedes instalarlo con el gestor de paquetes de tú distribución. !Asegurate de que tu sistema se encuentre actualizado!
  • Finalmente, una conexión a internet razonablemente rápida y 30GB de espacio libre en disco.


Comenzando en Linux es fácil y sencillo.

Si no lo tienes aún, crea un directorio "src" para ti sobre tu directorio de home:

mkdir src && cd src

Después, descarga el script  y guárdalo en tu directorio src/.

Building Firefox in Linux on top of a non-native file system - for example, on a mounted NTFS partition - is explicitly not supported. While a build environment like this may succeed it may also fail while claiming to have succeeded, which can be quite difficult to diagnose and fix.

And finally, in your terminal change directory to src and start the bootstrapper like this:

cd ~/src 

... follow the prompts.

Getting Access

Bugzilla is Mozilla’s issue tracker; you'll need to be able to log into it to comment on a bug or submit a patch.  You can either use your GitHub account, or you can sign up for a Bugzilla account here.

As well as Bugzilla, much of Mozilla’s internal communication happens over IRC. You can download Limechat here for mac, Chatzilla here for Linux and learn how to connect to Mozilla with IRC here. If you’re just getting started or have questions about getting set up you can join us in the #introduction channel, where some of our community members hang out to try and help new contributors get rolling.

Get The Code

If you haven't let download mozilla-unified, you can clone mozilla-central repository with the following command, in your terminal:

hg clone

this could take some time depending on your network connection and environment.

If you have any network connection issues and cannot clone with the above command, try Mercurial Bundle.

Let’s Build Firefox

You’re ready; now we can tie it all together. In your terminal:

cd mozilla-central

and then

./mach build

If you encounter any error related to LLVM/Clang on Ubuntu or Debian, download the latest version of LLVM and Clang and then re-run ./mach build.

And you’re on your way, building your own copy of Firefox from source. Don’t be discouraged if this takes a while; this takes some time on even the fastest modern machines, and as much as two hours or more on older hardware.


There’s one more thing you can do for yourself while you’re waiting: create an account for yourself on Mozillians. Mozillians is the Mozilla community directory, where you can connect with people who share your interests, projects or countries. This step is optional, but we think it will be worth your while.

Now the fun starts.

You have the code, you’ve compiled Firefox. Fire it up with ./mach run and you’re ready to start hacking. The next steps are up to you: join us on IRC in the #introduction channel, follow StartMozilla on Twitter and find a bug to start working on.


Detailed Requirements

General considerations

  • 2GB RAM with an additional 2GB of available swap space is the bare minimum, and more RAM is always better - having 8GB or more will dramatically improve build time.
  • 30 GB free disk space.
  • A 64-bit x86 CPU and a 64-bit OS. As of early 2015 it is no longer possible to do a full build of Firefox from source on most 32-bit systems; a 64-bit OS is required. "Artifact builds" may be possible, but are not a supported configuration. On Linux you can determine this by typing "uname -a" in a terminal.
  • GCC 4.9 is required as of Firefox 50. The Firefox codebase relies on some C++ features that are not supported in earlier versions of GCC, and as of December 2016 causes some errors in GCC 5.x or later. You can learn more about the features we use and their compiler support here
  • autoconf 2.13. Most Linux distros now install a later version of autoconf, which the build system cannot use, reporting the error "*** Couldn't find autoconf 2.13.  Stop." However a separate autoconf2.13 package is usually available. To install autoconf 2.13 in Debian based distros copy this line and paste it into a terminal window:
sudo apt install autoconf2.13
  • If you are on a Fedora machine then simply install the following prerequisites from the terminal window:
sudo dnf install @development-tools @c-development autoconf213 gtk2-devel gtk3-devel libXt-devel GConf2-devel dbus-glib-devel yasm-devel alsa-lib-devel pulseaudio-libs-devel 

Requirements for Debian / Ubuntu users

You need a number of different packages:

# the rust compiler
aptitude install rustc

# the rust package manager
aptitude install cargo

# the required (old) version of autoconf
aptitude install autoconf2.13

# the headers of important libs
aptitude install libgtk-3-dev
aptitude install libgconf2-dev
aptitude install libdbus-glib-1-dev
aptitude install libpulse-dev

# an assembler for compiling webm
aptitude install yasm 


One-Line Bootstrapping

Our system bootstrapping script can automatically install the required dependencies. You can download and run it by copying this line and pasting it into a terminal window:

wget -q -O && python

Note: piping to stdin of a python process will cause interactive prompts in the bootstrap script to fail, causing the bootstrap process to fail. You must run Python against a local file.

If the above command fails, the reason is often because some Linux distributions ship with an outdated list of root certificates. In this case, you should upgrade your Linux distribution or use your browser to download the file. That ensures that you will get it from the right source.

If you get an error from this process, consider filing a bug saying that the bootstrapper didn't work and contact Mike Hoye directly for help. Please include the error message and some details about your operating system.

If you have already checked out the source code via Mercurial or Git you can also use mach with the bootstrap command:

./mach bootstrap

Common Bootstrapper Failures

wget: command not found

You may not have wget (or curl) installed. In that case, you can either install it via your package manager: 

On Debian-based distros like Ubuntu:

sudo apt install wget 

On Fedora-based distros:

sudo dnf install wget

or you can just download using your browser and then run it with this command:


In some cases people who've customized their command prompt to include emoji or other non-text symbols have found that fails with a UnicodeDecodeError. We have a bug filed for that but in the meantime if you run into this problem you'll need to change your prompt back to something boring.

More Info

The above bootstrap script supports popular Linux distributions. If it doesn't work for you, see Linux build prerequisites for more. Again, if you run into other problems or our documentation isn't clear, please contact Mike Hoye directly.