XCode is a required prerequisite. It must be installed before installing Macports.
Download and install the Macports system from MacForge.
-* [XCode](http://developer.apple.com/technology/Xcode.html) (requires
+* [XCode](https://developer.apple.com/xcode/) (requires
free online ADC Membership); it can also be obtained from original
OSX installation DVD
* [Macports](http://www.macports.org/install.php)
sudo port selfupdate
sudo port sync
-This command will install tinc and all the necessary dependancies.
+This command will install tinc and all the necessary dependencies.
sudo port install tinc
Tinc can now be configured and executed.
+### Start tinc automatically on system boot
+
+[launchd](http://en.wikipedia.org/wiki/Launchd) is a system for monitoring services and make sure services are started if certain conditions are met. This system is available on OS X 10.5 and later versions.
+
+To use launchd, you have to create a property-list file for tinc and put it under /Library/LaunchDaemons/
+
+The following example is a plist file for the tinc network name: myvpn
+
+*/Library/LaunchDaemons/myvpn.tinc.plist*:
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+ <plist version="1.0">
+ <dict>
+ <key>KeepAlive</key>
+ <true/>
+ <key>Label</key>
+ <string>tinc.myvpn</string>
+ <key>ProgramArguments</key>
+ <array>
+ <string>/opt/local/tinc/sbin/tincd</string>
+ <string>-n</string>
+ <string>myvpn</string>
+ <string>-D</string>
+ </array>
+ </dict>
+ </plist>
+
+This will configure tincd to start the myvpn configuration in the foreground (-D). If tincd is started as background daemon, launchd will not function correctly with tinc. Launchd will directly start tincd if this file is found. The <key>KeepAlive</key> element will ensure that tincd is always running, and to be restarted if it stops. To stop tincd, use the *launchctl* command. Some commands to remember are:
+
+ launchctl unload -w /Library/LaunchDaemons/myvpn.tinc.plist
+
+This adds a *disabled* key to the file and stops tincd. The disabled key ensure that launchd will not start tincd anymore. The inverse operation is:
+
+ launchctl load -w /Library/LaunchDaemons/myvpn.tinc.plist
+
+This removes the *disabled* key from the file and starts tincd.
+
+To stop tinc:
+
+ launchctl stop tinc.myvpn
+
+To list all services monitored by launchd:
+
+ launchctl list
+
+If tinc has been configured with launchd, you will see tinc.myvpn listed with a process id.
+
+
+#### Handle standby and other network interrupts
+
+Tinc automatically tries to reconnect, but this takes time and the longer there
+is no connection, the longer tinc waits to try and reconnect again. A small
+tool is available at https://gitorious.org/tinc-on-osx/networknotify which will
+signal tinc to reconnect when the network connection is available. It uses OS
+X its network reachability framework and can be build using Xcode.
+
+---
+
+
### Alternative Installation Methods
There are two alternative methods of getting tinc:
In the case of compiling tinc the following is required:
-* [XCode](http://developer.apple.com/technology/Xcode.html)
+* [XCode](http://developer.apple.com/xcode/)
* [LZO libraries](http://www.oberhumer.com/opensource/lzo/)
Before starting, create a new folder `tmp` in your home directory
and enter it (it can be any other location). From Terminal level it
can be done in the following way:
-[[!img examples/osx-tmp.png]]
+[[!img examples/osx/tmp.png]]
##### LZO
##### Tinc
Download Tinc (again you can use `wget` or Safari to do it). I used
-Tinc version 1.09 ("tinc-1.09.tar.gz"). Using the same approach as
+[Tinc version 1.0.9](/packages/tinc-1.0.9.tar.gz). Using the same approach as
before - download and extract it:
[[!img examples/osx/tinc1.png]]
#### Download it
-Link: [tincd](tincd-1.0.9.zip). Please note that this archieve
+Link: [tincd-1.0.9.zip](/packages/osx/tincd-1.0.9.zip). Please note that this archieve
provides only the executable and does not include any manual. Once
downloaded, place the extracted executable into `/usr/sbin/`.
* * * * *
+- Mike Bentzen (mike (at) bentzen . com . au)
- Grzegorz Dymarek (gd58 (at) alumni . st-andrews . ac . uk)
-- Mike Bentzen (mike (@) goodlook . com . au)
+- wizztick