# HG changeset patch # User Michael Schloh von Bennewitz # Date 1248859974 -7200 # Node ID f137c6757b85ad7d3c0bc0459b98cc02111180a8 # Parent 498e3929e55551fddf768bcc9f980c5d47208d0e Describe characteristics and workflow of Tunblick build configuration. diff -r 498e3929e555 -r f137c6757b85 tunblick/TunblickDevel.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tunblick/TunblickDevel.txt Wed Jul 29 11:32:54 2009 +0200 @@ -0,0 +1,105 @@ +Tunnelblick Build Notes +Michael Schloh von Bennewitz +28 July 2009 +---------------------------- + +These instructions for building Tunnelblick describe a release +engineering environment using Mac OS X 10.5.7, XCode 3.1.3, and +the API from 'MacOSX10.5.sdk'. + +Workflow + +- Read the project's source building guidance [01] documentation. +- Fetch the latest Tunnelblick sources [02] from SVN. +- Fetch the third party software [03][04][05][06] distributions. +- Possibly test Growl [07] integration (not sure if integrated.) +- +- Unpack the Tunnelblick source distribution. +- Change directory to tunnelblick/third_party +- Move all dirs (sparkle, lzo, pkcs11, tuntap, openvpn) away. +- Unpack the freshly downloaded third party distributions. Be + careful to use the Sparkle source code rather than binary. +- +- Replace the Makefile [08] and inspect the differences. + Pay attention to the versions of unpackaged software + distributions and those hard coded in the Makefile. +- Move 'openvpn-' to simply 'openvpn'. +- Execute make as usual [09]. +- Inspect the resulting universal binaries [10]. +- +- Change directory to tunnelblick/tunnelblick +- Start XCode, usually found in /Developer/Applications/Xcode.app/ +- Load the Sparkle XCode project and build the Sparkle.framework [11]. +- Load the Tunnelblick XCode project file Tunnelblick.xcodeproj [12]. +- Change the target to 'Release' as suggested in [01]. +- Clean and build the product as usual, pressing the build button. +- Verify the build result, warnings can be expected and are normal. +- Inspect build/Release/Tunnelblick.dmg by mounting it and verify + that the directory contents of Tunnelblick.app correspond to the + OS X application bundle standard hierarchy. +- +- Read the companion document to this one 'tunnelblick_install.txt'. +- Inspect the directory contents of ~/Library/openvpn and + ~/Library/Preferences/com.openvpn.tunnelblick.plist. +- Install by copying Tunnelblick.app to /Applications/. +- Execute from a terminal as usual [13]. +- Compare the directory contents and preferences with previous results. + +[01] http://groups.google.com/group/tunnelblick-discuss/web/compiling-tunnelblick-from-source +[02] http://tunnelblick.googlecode.com/svn/trunk/ +[03] http://www.oberhumer.com/opensource/lzo/download/ +[04] http://www.opensc-project.org/files/pkcs11-helper/ +[05] http://freefr.dl.sourceforge.net/sourceforge/tuntaposx/tuntap_20080804.tar.gz +[06] http://sparkle.andymatuschak.org/files/ +[07] http://www.growl.info/ +[08] http://scm.europalab.com/tunnelblick/thirdparty/Makefile +[09] $ time make 2>&1 | build.txt +[10] $ lipo -info tuntap/tun.kext/Contents/MacOS/tun \ + pkcs11-helper-1.07/staging/lib/libpkcs11-helper.a \ + lzo-2.03/staging/lib/liblzo.a \ + openvpn/openvpn +[11] Changes to the buildconf are needed, see project files in SCM. +[12] Changes to the buildconf are needed, see project files in SCM. +[13] $ /Applications/Tunnelblick.app/Contents/MacOS/Tunnelblick + +---- + +Tunnelblick Installation Notes +Michael Schloh von Bennewitz +28 July 2009 +------------------------------ + +Tunnelblick contains a system independent self built copy of OpenVPN, +which is statically linked to the LZO and PKCS11Helper libraries. The +OpenVPN configuration is found in: + + ~/Library/openvpn/openvpn.conf + +...which may eventually conflict with other software installations. + +Tunnelblick contains a system independent self built copy of TUN/TAP. +This means that Tunnelblick does not use the TUN/TAP drivers of other +products, most notably the main vendor's: + + /Library/Extensions/tap.kext + /Library/Extensions/tun.kext + /Library/StartupItems/tap + /Library/StartupItems/tun + +Tunnelblick user preferences are stored in: + + ~/Library/Preferences/com.openvpn.tunnelblick.plist + +Tunnelblick certificates are stored in: + + ~/Library/openvpn + +Because Tunnelblick encapsulates all software components and drivers +that it needs in the Tunnelblick application bundle, to uninstall simply +delete the application bundle named Tunnelblick.app. + +Manifest + + /Applications/Tunnelblick.app/ + ~/Library/openvpn/* + ~/Library/Preferences/com.openvpn.tunnelblick.plist