Building the Vidalia/Tor/Polipo OS X Bundle Libevent 1. Download and extract the latest libevent source from http://www.monkey.org/~provos/libevent/ 2. Configure libevent with the following: CFLAGS="-O -g -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386" \ LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" \ ./configure --enable-static --disable-shared --disable-dependency-tracking 3. Build and install libevent as follows: make && make install You will need to be root to `make install` NOTE: If you have previously installed a Libevent that was not configured with the options above, you must remove those before building Tor, otherwise Tor will link to the wrong Libevent. Qt 4. Download and extract the open source version of Qt 4.3 or higher from Trolltech at the following address: http://qt.nokia.com/downloads/mac-os-cpp Alternatively, download the open source Qt dmg and install. You can now skip 5 and 6. 5. Configure Qt with the following (OS X 10.4 or later): export MACOSX_DEPLOYENT_TARGET=10.4 ./configure -static -release -universal -fast -no-qt3support \ -nomake demos -nomake examples -sdk /Developer/SDKs/MacOSX10.4u.sdk/ 6. Build and install Qt as follows: make && make install Polipo 7. Download the OS X Polipo source from: http://www.pps.jussieu.fr/~jch/software/files/polipo/. 7a. Download the Tor modifications to Polipo from: https://git.torproject.org/checkout/tor/master/contrib/polipo/. Alternatively, download a tarball with the Polipo source and Tor modifications together from: http://interloper.org/tmp/polipo/polipo-1.0.4-with-tor-mods.tgz 8. Follow the directions to build polipo at https://git.torproject.org/checkout/tor/master/contrib/polipo/README Tor 9. Download and extract the latest Tor source from https://www.torproject.org/download Note the location to which you extract Tor's source, because you will need to specify it in Step 12. 10. Configure Tor with the following: CFLAGS="-O -g -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386" \ LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" \ CONFDIR=/Applications/Vidalia.app \ ./configure --prefix=/Applications/Vidalia.app --bindir=/Applications/Vidalia.app \ --sysconfdir=/Library --disable-dependency-tracking 11. Build Tor by running 'make'. You do NOT need to run 'make install' afterwards. Vidalia 12. Configure Vidalia with the following: export MACOSX_DEPLOYMENT_TARGET=10.4 mkdir build && cd build cmake -DOSX_TIGER_COMPAT=1 \ -DQT_QMAKE_EXECUTABLE=/path/to/qmake \ -DTOR_SOURCE_DIR= \ -DPOLIPO_SOURCE_DIR= \ -DTORBUTTON_XPI= .. 13. Run `make dist-osx-bundle` to build Vidalia and package all of the components (Vidalia, Tor, Polipo and Torbutton) into a single .dmg. The resulting .dmg will be placed in the 'build' directory created in Step 11. 14. (Optional) Run 'make dist-osx-split-bundle' if you would like to build the split OS X bundle. NOTE: Steps 1-6 only need to be done once initially, unless you need to change the packaged version of Libevent or Qt. Step 7 also only needs to be done once, unless Polipo ever gets updated. Steps 9-11 need to be repeated when the bundled version of Tor changes. Steps 12-13 need to be repeated when the bundled version of Vidalia changes.