Dependencies
============

uAnytun can be built by using either libgcrypt, libnettle or the openssl-crypto
library. The latter is more performant in most cases but there are some license
issues when using this library. It also needs more space when installed.


Linux
-----
(this includes Debian with FreeBSD Kernel)

using libgcrypt:

 build-essential
 libgcrypt11-dev

using ssl crypto library:

 build-essential
 libssl-dev

using nettle crypto library:

 build-essential
 nettle-dev

if you want clang as compiler

 clang

if you want to rebuild the manpage:

 asciidoc


OpenBSD/FreeBSD
---------------

using libgcrypt:

 devel/gmake
 security/libgcrypt

using ssl crypto library:

 devel/gmake

if you want to rebuild the manpage:

 textproc/asciidoc
 textproc/libxslt
 textproc/docbook-xsl
 sysutils/readlink
 misc/getopt



Installation
============

Getting the source via GIT:
---------------------------

git clone https://git.spreadspace.org/anytun/uanytun.git
cd uanytun

Building from source
--------------------

using libgcrypt:

# cd src
# ./configure
# make

using ssl crypto library:

# cd src
# ./configure --use-ssl-crypto
# make


Notes:
  - try './configure --help' for further information
  - if using openssl pre 0.9.8 you have to disable passphrase
    because openssl had no SHA256 implementation prior to this
    version
  - on OpenBSD/FreeBSD you have to use gmake instead of make


Installing
----------

# sudo make install

This will install anytun under the --prefix defined with configure.


Uninstalling
------------

# sudo make remove

This removes everything except for the config files

# sudo make purge

This also removes the config files



Usage:
======

init.d script
-------------

The init.d script can be used to start uanytun at boot time. It searches for
configuration files which reside at $CONFIG_DIR. For each instance of uanytun
which should be started there must be a directory containing at least a file
named config. This file must contain all command line parameter which should
be used when starting the daemon. One line for each parameter. Empty lines and
lines starting with # are ignored. Besides the config file there may be a script
named post-up.sh which will be called when the tun/tap device comes up.
This is an example of how the init.d script can be used to start uanytun:

# /etc/init.d/uanytun start client1 p2p-a

In this case the script will start 2 instances of uanytun using the config files
$CONFIG_DIR/client1/config and $CONFIG_DIR/p2p-a/config.
If no instance name is specified the script will use the file $CONFIG_DIR/autostart
to determine which instances to start or stop. This file must contain a list
of instance names which should be used when no names are specified at the command
line. One line for each name. Empty lines and lines starting with # are ignored.
