UIA Quick Start for Mac OSX Leopard

Disclaimer

At the moment, this guide has only been tested on OSX 10.5 (Leopard). It's also requires a fair deal of familiarity with Unix. We're working on fixing both of those limitations, but hopefully this guide will still be useful in the meantime. It is possible to install UIA under OSX 10.4 (Tiger), but there is more work involved because you cannot use the version of python that Apple ships (which is 2.3), so you need to install either 2.4 or 2.5 under fink and the various python modules there first.

Prerequisites

To build UIA you need, already installed:

Install Xcode first and then come back here.

Next, Download fink from http://downloads.sourceforge.net/fink/fink-0.27.8.tar.gz

Follow the instructions for installing fink, though be sure to enable the unstable repository when you do so, and then setup the path and install a few packages:

/sw/bin/pathsetup.sh
. /sw/bin/init.sh
fink selfupdate-rsync
fink install wget

Install QT4 from: ftp://ftp.trolltech.com/qt/source/qt-mac-opensource-4.3.3.dmg

python-crypto:

wget http://www.amk.ca/files/python/crypto/pycrypto-2.0.1.tar.gz
tar -xzvf pycrypto-2.0.1
cd pycrypto-2.0.1
python setup.py build
sudo python setup.py install

Boost:

fink install boost1.34.nopython
Install the Tun/Tap network driver from http://www-user.rhrk.uni-kl.de/~nissler/tuntap/tuntap_leopard_20071114.tar.gz

Add 127.0.0.1 as a default nameserver: Open System Preferences->Network->Advanced->DNS->+ and add 127.0.0.1

Check out and build UIA

          $ cd somewhere
          $ svn co svn://svn.pdos.csail.mit.edu/uia/trunk/uia uia
          $ cd uia
          $ ./configure uianet --with-user=`whoami` --with-boost=/sw
          $ make
          $ sudo make install

Configuring UIA

          $ sudo chown -R `whoami` /etc/uia
          $ echo Your Name >/etc/uia/owner.txt
          $ echo machine-name >/etc/uia/devname.txt

Running and Testing UIA

       $ uialegacy restart
If uialegacy restart stops after printing "Starting router...", look in the /var/log/uia/* files to see what's going on.
       $ ifconfig tun0
The ifconfig should print information about an IPv6 device named "tun0". If not, double-check that the tun driver is loaded.
       $ ping6 -c 1 `cat /etc/uia/eid.txt`
Should succeed in sending a packet! If not, double-check that /etc/uia/uid.txt matches the address printed by ifconfig.
       $ host machine-name.
Should succeed in resolving to the address you just sent a packet to. If not, double-check that "ps axwwu|grep uianamed" finds an instance of uianamed.py, and then look at uianamed.log. Also (cat /etc/uia/names.db.root; echo), which should show a three-line file (missing the trailing newline) with EID (IPv6 address), key, and machine-name.
       $ ping6 -c 1 machine-name.
Should succeed in sending a packet! (If the last two commands worked, this Can't Fail.)
       $ firefox http://machine-name./
Note the trailing dot when referring to machine-name. The trailing dot keeps the DNS resolver from appending the default domain name (e.g., turning machine-name into machine-name.mit.edu). Finally, start the UIA control panel:
       $ uiactl &
(If you don't have a UIA control panel, make sure that the uia configure script found Qt version 4.)


Last Updated: $Id: quick-start-osx.html 2919 2007-12-26 20:35:05Z jastr $