commit aa0cb4b62c1ecb3f0e14f5a10a2000560db2ddba Author: David Fifield david@bamsoftware.com Date: Wed Dec 12 02:34:44 2012 -0800
Add instructions for making a Mac bundle. --- doc/bundle-macosx.txt | 91 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 91 insertions(+), 0 deletions(-)
diff --git a/doc/bundle-macosx.txt b/doc/bundle-macosx.txt new file mode 100644 index 0000000..fc47b51 --- /dev/null +++ b/doc/bundle-macosx.txt @@ -0,0 +1,91 @@ +This document describes how to build a Tor Browser bundle for Mac OS X +that is preconfigured to use the flash proxy transport. Because Mac have +Python preinstalled, we include the Python source of the programs. An +exception to this is the M2Crypto library, which has some compiled +components. + +== Dependencies + +=== SWIG + +This is a prerequisite for building M2Crypto. + +http://www.swig.org/download.html +http://downloads.sourceforge.net/project/swig/swig/swig-2.0.8/swig-2.0.8.tar... + +The sha256sum (shasum -a 256) of the package I used was + +aeeefa20bbe1c03bacf23f0af9e7d6193e8b807b7585470615b71b1ee0c8ca4f swig-2.0.8.tar.gz + +SWIG requires PCRE, but is capable of building PCRE by itself if you +download the source first. Save the PCRE tarball inside the extracted +SWIG directory. + +http://www.pcre.org +http://downloads.sourceforge.net/project/pcre/pcre/8.32/pcre-8.32.tar.bz2 +http://downloads.sourceforge.net/project/pcre/pcre/8.32/pcre-8.32.tar.bz2.si... + + $ rm pcre-8.32.tar.bz2.sig # The next command won't run with this file present. + $ ./Tools/pcre-build.sh + $ ./configure --prefix=~/bundle/usr + $ make + $ make install + +=== M2Crypto + +http://chandlerproject.org/Projects/MeTooCrypto#Downloads +http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.21.1.tar.gz +http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.21.1.tar.gz.asc + +$ python setup.py build_ext --swig ~/bundle/usr/bin/swig +$ mkdir -p ~/usr/lib/python2.7/site-packages/ +$ python setup.py install --root ~/bundle --prefix=/usr + +== Browser bundle + +Download the 32-bit obfsproxy bundle from +https://www.torproject.org/projects/obfsproxy. + +https://www.torproject.org/dist/torbrowser/osx/TorBrowser-Obfsproxy-2.4.6-al... +https://www.torproject.org/dist/torbrowser/osx/TorBrowser-Obfsproxy-2.4.6-al... + +Extract the bundle. + + $ tar xzvf TorBrowser-Obfsproxy-2.4.6-alpha-2-osx-i386-en-US.zip + $ cd TorBrowser_en-US.app + +Copy files into the bundle. + + $ cp ~/flashproxy/{flashproxy-client,flashproxy-reg-email,flashproxy-reg-http} Contents/MacOS + $ cp -R ~/bundle/usr/lib/python2.7/site-packages/M2Crypto Contents/MacOS + $ cp ~/flashproxy/{flashproxy-client,flashproxy-reg-email,flashproxy-reg-http} Contents/MacOS + $ mkdir -p Contents/Resources/Docs/FlashProxy + $ cp ~/flashproxy/{doc/*,README,LICENSE} Contents/Resources/Docs/FlashProxy + +Make the second half of Data/Tor/torrc look like this (i.e., keep +the generic configuration, but change the obfsproxy-specific stuff). +Basically you are concatenating the normal flashproxy-client torrc, but +changing "./flashproxy-client" to "flashproxy-client". + +UseBridges 1 +# The address and port are ignored by the client transport plugin. +Bridge websocket 0.0.1.0:1 +LearnCircuitBuildTimeout 0 +CircuitBuildTimeout 60 +# Change the second number here (9000) to the number of a port that can +# receive connections from the Internet (the port for which you +# configured port forwarding). +ClientTransportPlugin websocket exec flashproxy-client --register :0 :9000 + +Re-zip the bundle. The "alpha" number should be independent of the +obfsproxy bundle's alpha. + + $ cd .. + $ rm -f TorBrowser-FlashProxy-2.4.6-alpha-2-osx-i386-en-US.zip + $ zip -r -9 TorBrowser-FlashProxy-2.4.6-alpha-2-osx-i386-en-US.zip TorBrowser_en-US.app/ + +Test running the bundle. Extract into a separate directory, double-click +the icon to unzip, and run TorBrowser_en-US.app. + + $ mkdir tmp + $ cp TorBrowser-FlashProxy-2.4.6-alpha-2-osx-i386-en-US.zip tmp