### Gnunet installation ###


Gnunet is a peer to peer network that makes it possible to run a variety of
services. It is anonymous, encrypted and completely decentralized.

Here below are my notes about how to install the whole thing (and some of its
exotic libraries).

First, make sure to have these installed on your system:

libtool
autopoint
libgcrypt-dev
libgnutls (*with DANE support*)
libjansson-dev
libsodium-dev >= 1.0.17
libidn2-dev
libunistring-dev
pkg-config
libsqlite3-dev

and then... it's building time!

##############################################################################
# BUILD GNURL                                                                #
##############################################################################

$ git clone git://git.taler.net/gnurl.git
$ cd gnurl
$ ./buildconf
$ ./configure-gnurl --prefix=$HOME/gnunet
$ make
$ make -j1 install

# dirty hack: some of the packages below look in lib, other in lib64...
$ ln -s $HOME/gnunet/lib $HOME/gnunet/lib64

##############################################################################
# BUILD LIBEXTRACTOR                                                         #
##############################################################################

$ git clone git://git.gnunet.org/libextractor.git
$ ./bootstrap
$ ./configure --prefix=$HOME/gnunet --disable-testruns --disable-nls
$ make
$ make -j1 install

##############################################################################
# BUILD LIBMICROHTTPD                                                        #
##############################################################################

$ git clone git://git.gnunet.org/libmicrohttpd.git
$ cd libmicrohttpd
$ ./bootstrap
$ ./configure --prefix=$HOME/gnunet --disable-doc --disable-examples
$ make
$ make -j1 install

##############################################################################
# BUILD GNUNET                                                               #
##############################################################################

$ git clone https://gnunet.org/git/gnunet.git
$ cd gnunet
$ ./bootstrap
$ ./configure --prefix=$HOME/gnunet --with-libgnurl=$HOME/gnunet --with-microhttpd=$HOME/gnunet --with-extractor=$HOME/gnunet --disable-testing --disable-nls --disable-documentation
$ make
$ make -j1 install

##############################################################################
# BUILD GNUNET-GTK                                                           #
##############################################################################

$ git clone https://gnunet.org/git/gnunet-gtk.git
$ cd gnunet-gtk
$ ./bootstrap
$ ln -s $HOME/gnunet/lib64 $HOME/gnunet/lib
$ ./configure --prefix=/home/mateusz/gnunet --disable-nls --with-gnunet=/home/mateusz/gnunet/
$ make
$ make -j1 install

##############################################################################
# BASIC CONFIGURATION                                                        #
##############################################################################

$HOME/gnunet/gnunet.conf:
-------------------------
[transport-tcp]
PORT = 2086

[hostlist]
OPTIONS = -b -e

[gns]
FORCESTART = YES
-------------------------

##############################################################################
# START GNUNET                                                               #
##############################################################################

$ $HOME/gnunet/bin/gnunet-arm --config=$HOME/gnunet/gnunet.conf -s