tunblick/TunblickDevel.txt

Mon, 16 Jan 2012 23:08:14 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 16 Jan 2012 23:08:14 +0100
changeset 23
d783b433388d
parent 4
f137c6757b85
permissions
-rw-r--r--

Inconclusively complete possibly missing fields. This change introduces
inconsistencies difficult to correct given incomplete documentation of
IPKG and OPKG packaging standards.

     1 Tunnelblick Build Notes
     2 Michael Schloh von Bennewitz
     3 28 July 2009
     4 ----------------------------
     6 These instructions for building Tunnelblick describe a release
     7 engineering environment using Mac OS X 10.5.7, XCode 3.1.3, and
     8 the API from 'MacOSX10.5.sdk'.
    10 Workflow
    12 - Read the project's source building guidance [01] documentation.
    13 - Fetch the latest Tunnelblick sources [02] from SVN.
    14 - Fetch the third party software [03][04][05][06] distributions.
    15 - Possibly test Growl [07] integration (not sure if integrated.)
    16 -
    17 - Unpack the Tunnelblick source distribution.
    18 - Change directory to tunnelblick/third_party
    19 - Move all dirs (sparkle, lzo, pkcs11, tuntap, openvpn) away.
    20 - Unpack the freshly downloaded third party distributions. Be
    21   careful to use the Sparkle source code rather than binary.
    22 -
    23 - Replace the Makefile [08] and inspect the differences.
    24   Pay attention to the versions of unpackaged software
    25   distributions and those hard coded in the Makefile.
    26 - Move 'openvpn-<version>' to simply 'openvpn'.
    27 - Execute make as usual [09].
    28 - Inspect the resulting universal binaries [10].
    29 -
    30 - Change directory to tunnelblick/tunnelblick
    31 - Start XCode, usually found in /Developer/Applications/Xcode.app/
    32 - Load the Sparkle XCode project and build the Sparkle.framework [11].
    33 - Load the Tunnelblick XCode project file Tunnelblick.xcodeproj [12].
    34 - Change the target to 'Release' as suggested in [01].
    35 - Clean and build the product as usual, pressing the build button.
    36 - Verify the build result, warnings can be expected and are normal.
    37 - Inspect build/Release/Tunnelblick.dmg by mounting it and verify
    38   that the directory contents of Tunnelblick.app correspond to the
    39   OS X application bundle standard hierarchy.
    40 -
    41 - Read the companion document to this one 'tunnelblick_install.txt'.
    42 - Inspect the directory contents of ~/Library/openvpn and
    43   ~/Library/Preferences/com.openvpn.tunnelblick.plist.
    44 - Install by copying Tunnelblick.app to /Applications/.
    45 - Execute from a terminal as usual [13].
    46 - Compare the directory contents and preferences with previous results.
    47 -
    48 - For further Sparkle development review quick reference documents [14]
    50 [01] http://groups.google.com/group/tunnelblick-discuss/web/compiling-tunnelblick-from-source
    51 [02] http://tunnelblick.googlecode.com/svn/trunk/
    52 [03] http://www.oberhumer.com/opensource/lzo/download/
    53 [04] http://www.opensc-project.org/files/pkcs11-helper/
    54 [05] http://freefr.dl.sourceforge.net/sourceforge/tuntaposx/tuntap_20080804.tar.gz
    55 [06] http://sparkle.andymatuschak.org/files/
    56 [07] http://www.growl.info/
    57 [08] http://scm.europalab.com/tunnelblick/thirdparty/Makefile
    58 [09] $ time make 2>&1 | build.txt
    59 [10] $ lipo -info tuntap/tun.kext/Contents/MacOS/tun \
    60                   pkcs11-helper-1.07/staging/lib/libpkcs11-helper.a \
    61                   lzo-2.03/staging/lib/liblzo.a \
    62                   openvpn/openvpn
    63 [11] Changes to the buildconf are needed, see project files in SCM.
    64 [12] Changes to the buildconf are needed, see project files in SCM.
    65 [13] $ /Applications/Tunnelblick.app/Contents/MacOS/Tunnelblick
    66 [14] http://sparkle.andymatuschak.org/documentation/pmwiki.php/Documentation/BasicSetup
    68 ----
    70 Tunnelblick Installation Notes
    71 Michael Schloh von Bennewitz
    72 28 July 2009
    73 ------------------------------
    75 Tunnelblick contains a system independent self built copy of OpenVPN,
    76 which is statically linked to the LZO and PKCS11Helper libraries. The
    77 OpenVPN configuration is found in:
    79   ~/Library/openvpn/openvpn.conf
    81 ...which may eventually conflict with other software installations.
    83 Tunnelblick contains a system independent self built copy of TUN/TAP.
    84 This means that Tunnelblick does not use the TUN/TAP drivers of other
    85 products, most notably the main vendor's:
    87   /Library/Extensions/tap.kext
    88   /Library/Extensions/tun.kext
    89   /Library/StartupItems/tap
    90   /Library/StartupItems/tun
    92 Tunnelblick user preferences are stored in:
    94   ~/Library/Preferences/com.openvpn.tunnelblick.plist
    96 Tunnelblick certificates are stored in:
    98   ~/Library/openvpn
   100 Because Tunnelblick encapsulates all software components and drivers
   101 that it needs in the Tunnelblick application bundle, to uninstall simply
   102 delete the application bundle named Tunnelblick.app.
   104 Manifest
   106   /Applications/Tunnelblick.app/
   107   ~/Library/openvpn/*
   108   ~/Library/Preferences/com.openvpn.tunnelblick.plist

mercurial