Changes between Version 93 and Version 94 of doc/TorBrowser/Hacking


Ignore:
Timestamp:
Oct 2, 2017, 12:43:32 PM (2 years ago)
Author:
gk
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • doc/TorBrowser/Hacking

    v93 v94  
    1414== Nightly Builds ==
    1515
    16 Currently, nightly builds are available courtesy of Linus Nordberg. They are available in the tbb-nightly-* subdirectories of [https://people.torproject.org/~linus/builds/ his homedirectory on people.torproject.org].
     16Currently, nightly builds are available [http://f4amtbsowhix7rrf.onion/tor-browser-builds/ from an .onion site] managed by boklm who is part of the Tor Browser teamc.
    1717
    1818As with all of our builds, it should be possible to reproduce byte-for-byte identical versions of all of those binaries from source. To learn how to do that, read on.
     
    2020== Building Official Tor Browser Release Binaries ==
    2121
    22 Our build system is based on [http://gitian.org/ Gitian], which was initially developed by the Bitcoin community. Gitian is a wrapper around Ubuntu's python-vm-builder and associated virtualization tools that helps to provide a clean, controlled, reproducible build environment in a fully automated fashion. We further wrap Gitian with our own helper scripts that download and authenticate inputs, and automate building and assembling each component piece of the browser into a final set of output packages for Linux, MacOS, and Windows.
     22Our build system is based on [https://gitweb.torproject.org/builders/rbm.git/ rbm], which is developed by boklm. rbm is using [https://github.com/opencontainers/runc runc] to provide a clean, controlled, reproducible build environment in a fully automated fashion. We further wrap rbm with our own helper scripts that download and authenticate inputs, and automate building and assembling each component piece of the browser into a final set of output packages for Linux, MacOS, and Windows. This is done with code in the [https://gitweb.torproject.org/builders/tor-browser-build.git/ tor-browser-build repository].
    2323
    2424This system enables us to provide secure, verifiable, byte-for-byte reproducible builds to ensure the integrity of our binaries and to protect the build process from compromise. We have written a pair of blog posts that describe in more detail [https://blog.torproject.org/blog/deterministic-builds-part-one-cyberwar-and-global-compromise why this is important], and the [https://blog.torproject.org/blog/deterministic-builds-part-two-technical-details technical details] behind how this is achieved, if you are curious.
    2525
    26 To build the Tor Browser, you need an Ubuntu or Debian machine or VM. Once that is done, check out a copy of the builder repo with:
    27 {{{
    28 mkdir tor-browser-build
     26To build the Tor Browser, you need essentially a Linux system with runc support. Once that is done, check out a copy of the tor-browser-build repo with:
     27{{{
     28git clone https://git.torproject.org/builders/tor-browser-build.git
    2929cd tor-browser-build
    30 git clone https://git.torproject.org/builders/tor-browser-bundle.git
    31 cd tor-browser-bundle/gitian
    32 }}}
    33 
    34 After that, you should be able to run 'make', 'make beta', 'make alpha', or 'make nightly' to build the entire bundle for all three platforms. The build scripts will detect any additional packages or configuration you need to perform on your system.
    35 
    36 Inside that directory, you will also see a [https://gitweb.torproject.org/builders/tor-browser-bundle.git/tree/gitian/README.build README.build file] with further information, should you run into any issues. In particular, the initial VM setup process is still somewhat fragile. In some cases your initial VM setup may fail or run into other issues, and you may need to restart your build with 'killall qemu-kvm'. See that README for more details on diagnosing and correcting these issues.
    37 
    38 We also have a wiki page [https://trac.torproject.org/projects/tor/wiki/doc/TorBrowser/BuildingWithGitian specific to building with Gitian] that may be useful in helping you work through certain esoteric errors and failure conditions.
     30}}}
     31
     32After that you might need to install the additional dependencies [https://gitweb.torproject.org/builders/tor-browser-build.git/tree/README mentioned in the README file] and you should be able to run 'make', 'make alpha', 'make nightly', or 'make testbuild' to build the entire bundle for all three platforms. The build scripts will detect any additional packages or configuration you need to perform on your system.
     33
     34Inside that directory, you will also see a [https://gitweb.torproject.org/builders/tor-browser-build.git/tree/README.BUILD_ERRORS file] with further information, should you run into any issues.
    3935
    4036== Reproducing an Existing Build ==