- conclude for SET
[oweals/gnunet.git] / doc / gnunet-c-tutorial.tex
index 659b869808e6ef58b95f3b6d627b6eda1c0b99ea..8ad4d30190a1dc9217ed1635fa5bb3b1a5f2e576 100644 (file)
@@ -103,8 +103,25 @@ $ cd gnunet
 $ ./bootstrap
 \end{lstlisting}
 
+The remainder of this tutorial assumes that you have SVN HEAD checked out.
 
 \subsection{Compiling and Installing GNUnet}
+
+First, you need to install the latest {\tt
+  libgnupgerror}\footnote{\url{ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.11.tar.bz2}}
+and {\tt libgcrypt} version from Git.  The current GNUnet code uses
+ECC functions not available in any released version of libgcrypt.
+
+\lstset{language=bash}
+\begin{lstlisting}
+$ git clone git://git.gnupg.org/libgcrypt.git
+$ cd libgcrypt
+$ ./autogen.sh
+$ ./configure
+$ sudo make install 
+$ sudo ldconfig
+\end{lstlisting}
+
 \label{sub:install}
 Assuming all dependencies are installed, the following commands will compile and install GNUnet in your 
 home directory. You can specify the directory where GNUnet will be installed by changing the \lstinline|--prefix| value when calling \lstinline|./configure|.  If you do not specifiy a prefix, GNUnet is installed in the directory \lstinline|/usr/local|. When developing new applications you may want to enable 
@@ -295,7 +312,10 @@ Now you have to edit {\tt peer2.conf} and change:
 \begin{itemize}
   \itemsep0em
   \item{\texttt{SERVICEHOME} under \texttt{PATHS}}
-  \item{Every value for ``\texttt{PORT}'' (add 10000) in any section (if \texttt{PORT} is enabled, may be disabled using "\#") }
+  \item{Every (uncommented) value for ``\texttt{PORT}'' (add 10000) in any
+        section (the option may be commented out if \texttt{PORT} is 
+        prefixed by "\#", in this case, UNIX domain sockets are used
+        and the PORT option does not need to be touched) }
   \item{Every value for ``\texttt{UNIXPATH}'' in any section (e.g. by adding a "-p2" suffix)}
 \end{itemize}
 to a fresh, unique value.  Make sure that the \texttt{PORT} numbers stay
@@ -402,7 +422,7 @@ The source code for the above listing can be found at
 \begin{lstlisting}
 $ export CPPFLAGS="-I/path/to/gnunet/headers"
 $ export LDFLAGS="-L/path/to/gnunet/libraries"
-$ gcc -o testbed-test -lgnunettestbed -lgnunetdht -lgnunetutil testbed_test.c
+$ gcc $CPPFLAGS $LDFLAGS -o testbed-test testbed_test.c  -lgnunettestbed -lgnunetdht -lgnunetutil
 \end{lstlisting}
 The \texttt{CPPFLAGS} and \texttt{LDFLAGS} are necessary if GNUnet is installed
 into a different directory other than \texttt{/usr/local}.
@@ -447,8 +467,9 @@ disconnect from the service with the provided service handle (\texttt{op\_result
 
 \exercise{Find out how many peers you can run on your system.}
 
-\exercise{Find out how to create connections from within {\tt run} and create a
-  2D torus topology.  Then use the DHT API to store and retrieve values in the
+\exercise{Find out how to create a 2D torus topology by changing the
+  options in the configuration file.\footnote{See \url{https://gnunet.org/content/supported-topologies}}
+  Then use the DHT API to store and retrieve values in the
   network.}
 
 \section{Developing Applications}