Wed, 29 Jul 2009 11:32:54 +0200
Describe characteristics and workflow of Tunblick build configuration.
tunblick/TunblickDevel.txt | file | annotate | diff | comparison | revisions |
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/tunblick/TunblickDevel.txt Wed Jul 29 11:32:54 2009 +0200 1.3 @@ -0,0 +1,105 @@ 1.4 +Tunnelblick Build Notes 1.5 +Michael Schloh von Bennewitz 1.6 +28 July 2009 1.7 +---------------------------- 1.8 + 1.9 +These instructions for building Tunnelblick describe a release 1.10 +engineering environment using Mac OS X 10.5.7, XCode 3.1.3, and 1.11 +the API from 'MacOSX10.5.sdk'. 1.12 + 1.13 +Workflow 1.14 + 1.15 +- Read the project's source building guidance [01] documentation. 1.16 +- Fetch the latest Tunnelblick sources [02] from SVN. 1.17 +- Fetch the third party software [03][04][05][06] distributions. 1.18 +- Possibly test Growl [07] integration (not sure if integrated.) 1.19 +- 1.20 +- Unpack the Tunnelblick source distribution. 1.21 +- Change directory to tunnelblick/third_party 1.22 +- Move all dirs (sparkle, lzo, pkcs11, tuntap, openvpn) away. 1.23 +- Unpack the freshly downloaded third party distributions. Be 1.24 + careful to use the Sparkle source code rather than binary. 1.25 +- 1.26 +- Replace the Makefile [08] and inspect the differences. 1.27 + Pay attention to the versions of unpackaged software 1.28 + distributions and those hard coded in the Makefile. 1.29 +- Move 'openvpn-<version>' to simply 'openvpn'. 1.30 +- Execute make as usual [09]. 1.31 +- Inspect the resulting universal binaries [10]. 1.32 +- 1.33 +- Change directory to tunnelblick/tunnelblick 1.34 +- Start XCode, usually found in /Developer/Applications/Xcode.app/ 1.35 +- Load the Sparkle XCode project and build the Sparkle.framework [11]. 1.36 +- Load the Tunnelblick XCode project file Tunnelblick.xcodeproj [12]. 1.37 +- Change the target to 'Release' as suggested in [01]. 1.38 +- Clean and build the product as usual, pressing the build button. 1.39 +- Verify the build result, warnings can be expected and are normal. 1.40 +- Inspect build/Release/Tunnelblick.dmg by mounting it and verify 1.41 + that the directory contents of Tunnelblick.app correspond to the 1.42 + OS X application bundle standard hierarchy. 1.43 +- 1.44 +- Read the companion document to this one 'tunnelblick_install.txt'. 1.45 +- Inspect the directory contents of ~/Library/openvpn and 1.46 + ~/Library/Preferences/com.openvpn.tunnelblick.plist. 1.47 +- Install by copying Tunnelblick.app to /Applications/. 1.48 +- Execute from a terminal as usual [13]. 1.49 +- Compare the directory contents and preferences with previous results. 1.50 + 1.51 +[01] http://groups.google.com/group/tunnelblick-discuss/web/compiling-tunnelblick-from-source 1.52 +[02] http://tunnelblick.googlecode.com/svn/trunk/ 1.53 +[03] http://www.oberhumer.com/opensource/lzo/download/ 1.54 +[04] http://www.opensc-project.org/files/pkcs11-helper/ 1.55 +[05] http://freefr.dl.sourceforge.net/sourceforge/tuntaposx/tuntap_20080804.tar.gz 1.56 +[06] http://sparkle.andymatuschak.org/files/ 1.57 +[07] http://www.growl.info/ 1.58 +[08] http://scm.europalab.com/tunnelblick/thirdparty/Makefile 1.59 +[09] $ time make 2>&1 | build.txt 1.60 +[10] $ lipo -info tuntap/tun.kext/Contents/MacOS/tun \ 1.61 + pkcs11-helper-1.07/staging/lib/libpkcs11-helper.a \ 1.62 + lzo-2.03/staging/lib/liblzo.a \ 1.63 + openvpn/openvpn 1.64 +[11] Changes to the buildconf are needed, see project files in SCM. 1.65 +[12] Changes to the buildconf are needed, see project files in SCM. 1.66 +[13] $ /Applications/Tunnelblick.app/Contents/MacOS/Tunnelblick 1.67 + 1.68 +---- 1.69 + 1.70 +Tunnelblick Installation Notes 1.71 +Michael Schloh von Bennewitz 1.72 +28 July 2009 1.73 +------------------------------ 1.74 + 1.75 +Tunnelblick contains a system independent self built copy of OpenVPN, 1.76 +which is statically linked to the LZO and PKCS11Helper libraries. The 1.77 +OpenVPN configuration is found in: 1.78 + 1.79 + ~/Library/openvpn/openvpn.conf 1.80 + 1.81 +...which may eventually conflict with other software installations. 1.82 + 1.83 +Tunnelblick contains a system independent self built copy of TUN/TAP. 1.84 +This means that Tunnelblick does not use the TUN/TAP drivers of other 1.85 +products, most notably the main vendor's: 1.86 + 1.87 + /Library/Extensions/tap.kext 1.88 + /Library/Extensions/tun.kext 1.89 + /Library/StartupItems/tap 1.90 + /Library/StartupItems/tun 1.91 + 1.92 +Tunnelblick user preferences are stored in: 1.93 + 1.94 + ~/Library/Preferences/com.openvpn.tunnelblick.plist 1.95 + 1.96 +Tunnelblick certificates are stored in: 1.97 + 1.98 + ~/Library/openvpn 1.99 + 1.100 +Because Tunnelblick encapsulates all software components and drivers 1.101 +that it needs in the Tunnelblick application bundle, to uninstall simply 1.102 +delete the application bundle named Tunnelblick.app. 1.103 + 1.104 +Manifest 1.105 + 1.106 + /Applications/Tunnelblick.app/ 1.107 + ~/Library/openvpn/* 1.108 + ~/Library/Preferences/com.openvpn.tunnelblick.plist