[tor-dev] Pluggable Transport Browser Bundle FTE Integration

David Fifield david at bamsoftware.com
Mon Sep 2 05:21:44 UTC 2013


On Sat, Aug 31, 2013 at 09:43:21PM -0400, Kevin P Dyer wrote:
> === Building/Testing Tor on Linux/OSX/Windows
> I'm trying to understand exactly how the current build/release process works
> for tor. In regards to the PT TBB it seems like there are a few resources
> [1,2,3]. However, is there a canonical documentation on how the release process
> works? I'm especially interested in what you guys are doing to produce builds
> on Windows. Are you using virtualization or do you have a few physical build
> machines?
> [1] https://gitweb.torproject.org/pluggable-transports/bundle.git
> [2] https://lists.torproject.org/pipermail/tor-dev/2013-June/005056.html
> [3] https://gitweb.torproject.org/builders/tor-browser-bundle.git

There is fragmented documentation on how releases work. I have been
building the PT bundles, but I have nothing to do with the building of
the vanilla bundles from which the PT bundles are derived. The PT
bundles are built by unzipping the vanilla bundles, copying some
programs inside and modifying the torrc, and zipping the bundles back
up. The PT build is mostly driven by this makefile:
https://gitweb.torproject.org/pluggable-transports/bundle.git/blob/HEAD:/Makefile

You should know that there are two varieties of the vanilla Tor Browser
Bundle: the beta 2.0 series (e.g.
https://blog.torproject.org/blog/new-tor-02416-rc-packages-and-updated-stable-tor-browser-bundles)
and the alpha 3.0 series (e.g.
https://blog.torproject.org/blog/tor-browser-bundle-30alpha3-released).
They differ much in their build process. We are using the 2.0 series to
build the PT bundles, and there is no 3.0 version of the PT bundles. I
would like to have the PT bundles built using the same deterministic
process as is used for the 3.0 bundles (e.g.
https://blog.torproject.org/blog/deterministic-builds-part-one-cyberwar-and-global-compromise).
See https://trac.torproject.org/projects/tor/ticket/9444 for the status
of this project. Some further reading:
https://trac.torproject.org/projects/tor/ticket/8019#comment:3

Much of the PT bundle build process is automated, but it still takes me
two or three hours to boot VMs, download everything, verify signatures,
build, sign, upload, and announce.

I use VMs for the GNU/Linux and Windows builds. I use a physical Mac
mini running OS X 10.8 for the Mac builds. (This is one reason I want to
move the PT bundles to the 3.0 series--they cross-compile for all
platforms and don't require a Windows VM or physical Mac.) The
instructions for setting up the VMs and Mac are here:
https://gitweb.torproject.org/pluggable-transports/bundle.git/blob/HEAD:/bundle-gnulinux.txt
https://gitweb.torproject.org/pluggable-transports/bundle.git/blob/HEAD:/bundle-windows.txt
https://gitweb.torproject.org/pluggable-transports/bundle.git/blob/HEAD:/bundle-macosx.txt

> Prior to doing anything with FTE. I'd love to be able to create my own build
> environment that produces that current obfs2+obfs3+flash_proxy bundles [6]
> across all 4 OS/architecture configurations.
> [6] https://www.torproject.org/docs/pluggable-transports.html.en

Start with bundle-gnulinux.txt, as that's probably the easiest one.
George told me that you have to use whatever the current Debian version
number is rather than 7.0.0. It would help if you cna keep track of what
parts of the instructions didn't work for you.

David Fifield


More information about the tor-dev mailing list