Describe characteristics and workflow of Tunblick build configuration.

Wed, 29 Jul 2009 11:32:54 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 29 Jul 2009 11:32:54 +0200
changeset 4
f137c6757b85
parent 3
498e3929e555
child 5
f83da8c347c4

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

mercurial