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:/Mak...
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-stabl...) 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-...). 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:/bun... https://gitweb.torproject.org/pluggable-transports/bundle.git/blob/HEAD:/bun... https://gitweb.torproject.org/pluggable-transports/bundle.git/blob/HEAD:/bun...
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