[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [gnunet] 02/05: doc: gnunet-c-tutorial.texi, chapters/insta
From: |
gnunet |
Subject: |
[GNUnet-SVN] [gnunet] 02/05: doc: gnunet-c-tutorial.texi, chapters/installation.texi: fix compilation warnings. |
Date: |
Wed, 06 Sep 2017 12:07:05 +0200 |
This is an automated email from the git hooks/post-receive script.
ng0 pushed a commit to branch master
in repository gnunet.
commit d5224cf485343f445dead0516d991d0c5cee644b
Author: ng0 <address@hidden>
AuthorDate: Wed Sep 6 09:30:43 2017 +0000
doc: gnunet-c-tutorial.texi, chapters/installation.texi: fix compilation
warnings.
---
doc/chapters/installation.texi | 226 ++++++++++++-----------------------------
doc/gnunet-c-tutorial.texi | 41 ++++----
2 files changed, 87 insertions(+), 180 deletions(-)
diff --git a/doc/chapters/installation.texi b/doc/chapters/installation.texi
index a04478878..be458981f 100644
--- a/doc/chapters/installation.texi
+++ b/doc/chapters/installation.texi
@@ -49,21 +49,14 @@ These packages must be installed before a typical GNUnet
installation
can be performed:
@table @asis
address@hidden
-GNU libmicrohttpd 0.9.30 or higher
address@hidden
-GNU libextractor 1.0 or higher
address@hidden
-GNU libtool 2.2 or higher
address@hidden
-GNU libunistring 0.9.1.1 or higher
address@hidden
-GNU libidn 1.0.0 or higher
address@hidden
address@hidden://gnupg.org/software/libgcrypt/index.html, GNU libgcrypt}
address@hidden GNU libmicrohttpd 0.9.30 or higher
address@hidden GNU libextractor 1.0 or higher
address@hidden GNU libtool 2.2 or higher
address@hidden GNU libunistring 0.9.1.1 or higher
address@hidden GNU libidn 1.0.0 or higher
address@hidden @uref{https://gnupg.org/software/libgcrypt/index.html, GNU
libgcrypt}
@uref{https://gnupg.org/ftp/gcrypt/libgcrypt/, 1.6.0} or higher
address@hidden
address@hidden://gnutls.org/, GnuTLS}
address@hidden @uref{https://gnutls.org/, GnuTLS}
@uref{https://www.gnupg.org/ftp/gcrypt/gnutls/v3.2/, 3.2.7} or higher,
compile with libunbound for DANE support; GnuTLS also requires GNU
nettle 2.7 (update: GnuTLS 3.2.7 appears NOT to work against GNU nettle
@@ -72,41 +65,27 @@ against nettle 2.7 and, in case you get some error on the
reference to
`rpl_strerror' being undefined, follow the instructions on@
@uref{http://lists.gnupg.org/pipermail/gnutls-devel/2013-November/006588.html,
this}
post (and the link inside it)).
address@hidden
address@hidden://gnunet.org/gnurl, gnURL} libgnurl 7.34.0 or higher,
address@hidden @uref{https://gnunet.org/gnurl, gnURL} libgnurl 7.34.0 or higher,
must be compiled after @code{GnuTLS}
address@hidden
-libglpk 4.45 or higher
address@hidden
address@hidden://www.openssl.org/, OpenSSL} (binary) 1.0 or higher
address@hidden
-TeX Live 2012 or higher, optional (for gnunet-bcd)
address@hidden
-libpulse 2.0 or higher, optional (for gnunet-conversation)
address@hidden
-libopus 1.0.1 or higher, optional (for gnunet-conversation)
address@hidden
-libogg 1.3.0 or higher, optional (for gnunet-conversation)
address@hidden
-certool (binary)
address@hidden libglpk 4.45 or higher
address@hidden @uref{http://www.openssl.org/, OpenSSL} (binary) 1.0 or higher
address@hidden TeX Live 2012 or higher, optional (for gnunet-bcd)
address@hidden libpulse 2.0 or higher, optional (for gnunet-conversation)
address@hidden libopus 1.0.1 or higher, optional (for gnunet-conversation)
address@hidden libogg 1.3.0 or higher, optional (for gnunet-conversation)
address@hidden certool (binary)
optional for convenient installation of the GNS proxy
(available as part of Debian's libnss3-tools)
address@hidden
-python-zbar 0.10 or higher, optional (for gnunet-qr)
address@hidden
-libsqlite 3.8.0 or higher (note that the code will compile and often work with
lower
address@hidden python-zbar 0.10 or higher, optional (for gnunet-qr)
address@hidden libsqlite 3.8.0 or higher (note that the code will compile and
often work with lower
version numbers, but you may get subtle bugs with respect to quota management
in certain rare cases); alternatively, MySQL or Postgres can also be installed,
but those databases will require more complex configurations (not recommended
for first-time users)
address@hidden
-zlib any version we tested worked
address@hidden
-Gtk+ 3.0 or higher, optional (for gnunet-gtk)
address@hidden
-libgladeui must match Gtk+ version, optional (for gnunet-gtk)
address@hidden
-libqrencode 3.0 or higher, optional (for gnunet-namestore-gtk)
address@hidden zlib any version we tested worked
address@hidden Gtk+ 3.0 or higher, optional (for gnunet-gtk)
address@hidden libgladeui must match Gtk+ version, optional (for gnunet-gtk)
address@hidden libqrencode 3.0 or higher, optional (for gnunet-namestore-gtk)
@end table
@@ -147,30 +126,18 @@ In terms of internal dependencies, a minimum file-sharing
system consists of
the following GNUnet processes (in order of dependency):
@itemize @bullet
address@hidden
-gnunet-service-arm
address@hidden
-gnunet-service-resolver (required by all)
address@hidden
-gnunet-service-statistics (required by all)
address@hidden
-gnunet-service-peerinfo
address@hidden
-gnunet-service-transport (requires peerinfo)
address@hidden
-gnunet-service-core (requires transport)
address@hidden
-gnunet-daemon-hostlist (requires core)
address@hidden
-gnunet-daemon-topology (requires hostlist, peerinfo)
address@hidden
-gnunet-service-datastore
address@hidden
-gnunet-service-dht (requires core)
address@hidden
-gnunet-service-identity
address@hidden
-gnunet-service-fs (requires identity, mesh, dht, datastore, core)
address@hidden gnunet-service-arm
address@hidden gnunet-service-resolver (required by all)
address@hidden gnunet-service-statistics (required by all)
address@hidden gnunet-service-peerinfo
address@hidden gnunet-service-transport (requires peerinfo)
address@hidden gnunet-service-core (requires transport)
address@hidden gnunet-daemon-hostlist (requires core)
address@hidden gnunet-daemon-topology (requires hostlist, peerinfo)
address@hidden gnunet-service-datastore
address@hidden gnunet-service-dht (requires core)
address@hidden gnunet-service-identity
address@hidden gnunet-service-fs (requires identity, mesh, dht, datastore, core)
@end itemize
@@ -178,92 +145,39 @@ A minimum VPN system consists of the following GNUnet
processes (in order of
dependency):
@itemize @bullet
address@hidden
-gnunet-service-arm
-
address@hidden
-gnunet-service-resolver (required by all)
-
address@hidden
-gnunet-service-statistics (required by all)
-
address@hidden
-gnunet-service-peerinfo
-
address@hidden
-gnunet-service-transport (requires peerinfo)
-
address@hidden
-gnunet-service-core (requires transport)
-
address@hidden
-gnunet-daemon-hostlist (requires core)
-
address@hidden
-gnunet-service-dht (requires core)
-
address@hidden
-gnunet-service-mesh (requires dht, core)
-
address@hidden
-gnunet-service-dns (requires dht)
-
address@hidden
-gnunet-service-regex (requires dht)
-
address@hidden
-gnunet-service-vpn (requires regex, dns, mesh, dht)
address@hidden gnunet-service-arm
address@hidden gnunet-service-resolver (required by all)
address@hidden gnunet-service-statistics (required by all)
address@hidden gnunet-service-peerinfo
address@hidden gnunet-service-transport (requires peerinfo)
address@hidden gnunet-service-core (requires transport)
address@hidden gnunet-daemon-hostlist (requires core)
address@hidden gnunet-service-dht (requires core)
address@hidden gnunet-service-mesh (requires dht, core)
address@hidden gnunet-service-dns (requires dht)
address@hidden gnunet-service-regex (requires dht)
address@hidden gnunet-service-vpn (requires regex, dns, mesh, dht)
@end itemize
A minimum GNS system consists of the following GNUnet processes (in order of
dependency):
@itemize @bullet
-
address@hidden
-gnunet-service-arm
-
address@hidden
-gnunet-service-resolver (required by all)
-
address@hidden
-gnunet-service-statistics (required by all)
-
address@hidden
-gnunet-service-peerinfo
-
address@hidden
-gnunet-service-transport (requires peerinfo)
-
address@hidden
-gnunet-service-core (requires transport)
-
address@hidden
-gnunet-daemon-hostlist (requires core)
-
address@hidden
-gnunet-service-dht (requires core)
-
address@hidden
-gnunet-service-mesh (requires dht, core)
-
address@hidden
-gnunet-service-dns (requires dht)
-
address@hidden
-gnunet-service-regex (requires dht)
-
address@hidden
-gnunet-service-vpn (requires regex, dns, mesh, dht)
-
address@hidden
-gnunet-service-identity
-
address@hidden
-gnunet-service-namestore (requires identity)
-
address@hidden
-gnunet-service-gns (requires vpn, dns, dht, namestore, identity)
address@hidden gnunet-service-arm
address@hidden gnunet-service-resolver (required by all)
address@hidden gnunet-service-statistics (required by all)
address@hidden gnunet-service-peerinfo
address@hidden gnunet-service-transport (requires peerinfo)
address@hidden gnunet-service-core (requires transport)
address@hidden gnunet-daemon-hostlist (requires core)
address@hidden gnunet-service-dht (requires core)
address@hidden gnunet-service-mesh (requires dht, core)
address@hidden gnunet-service-dns (requires dht)
address@hidden gnunet-service-regex (requires dht)
address@hidden gnunet-service-vpn (requires regex, dns, mesh, dht)
address@hidden gnunet-service-identity
address@hidden gnunet-service-namestore (requires identity)
address@hidden gnunet-service-gns (requires vpn, dns, dht, namestore, identity)
@end itemize
@node Pre-installation notes
@@ -284,21 +198,11 @@ GNU/Linux distribution requires you to install the
following
dependencies (ideally in this order):
@itemize @bullet
-
address@hidden
-libgpgerror and libgcrypt
-
address@hidden
-libnettle and libunbound (possibly from distribution), GnuTLS
-
address@hidden
-libgnurl (read the README)
-
address@hidden
-GNU libmicrohttpd
-
address@hidden
-GNU libextractor (make sure to first install the various mandatory and optional
address@hidden libgpgerror and libgcrypt
address@hidden libnettle and libunbound (possibly from distribution), GnuTLS
address@hidden libgnurl (read the README)
address@hidden GNU libmicrohttpd
address@hidden GNU libextractor (make sure to first install the various
mandatory and optional
dependencies including development headers from your distribution)
@end itemize
diff --git a/doc/gnunet-c-tutorial.texi b/doc/gnunet-c-tutorial.texi
index 3b3e90e4f..824834c92 100644
--- a/doc/gnunet-c-tutorial.texi
+++ b/doc/gnunet-c-tutorial.texi
@@ -171,7 +171,7 @@ $ export PATH=$PATH:$PREFIX/bin
$ echo export PATH=$PREFIX/bin:\\$PATH >> ~/.bashrc
$ mkdir ~/.config/
$ touch ~/.config/gnunet.conf
address@hidden
address@hidden example
@subsection Common Issues - Check your GNUnet installation
@@ -202,21 +202,24 @@ PASS: test_gnunet_prefix
=============
1 test passed
=============
address@hidden
-
address@hidden example
@section Background: GNUnet Architecture
GNUnet is organized in layers and services. Each service is composed of a
main service implementation and a client library for other programs to use
the service's functionality, described by an API. This approach is shown in
-figure~\ref{fig:service}. Some services provide an additional command line
-tool to enable the user to interact with the service.
address@hidden FIXME: enable this once the commented block below works:
address@hidden figure~\ref{fig:service}.
+Some services provide an additional command line tool to enable the user to
+interact with the service.
Very often it is other GNUnet services that will use these APIs to build the
higher layers of GNUnet on top of the lower ones. Each layer expands or extends
the functionality of the service below (for instance, to build a mesh on top of
-a DHT). See figure ~\ref{fig:interaction} for an illustration of this approach.
+a DHT).
address@hidden FXIME: See comment above.
address@hidden See figure ~\ref{fig:interaction} for an illustration of this
approach.
@c \begin{figure}[!h]
@c \begin{center}
@@ -326,7 +329,7 @@ $ gnunet-statistics -c ~/peer1.conf -s dht # print
statistics about DHT service
@end example
address@hidden Starting Two Peers by Hand}
address@hidden Starting Two Peers by Hand
This section describes how to start two peers on the same machine by hand.
The process is rather painful, but the description is somewhat instructive.
@@ -351,7 +354,7 @@ $ cat $PREFIX/share/gnunet/config.d/*.conf > peer2.conf
Now you have to edit @file{peer2.conf} and change:
@itemize
@item @code{GNUNET\_TEST\_HOME} under @code{PATHS}
address@hidden Every (uncommented) value for address@hidden'' (add 10000) in any
address@hidden Every (uncommented) value for address@hidden'' (add 10000) in any
section (the option may be commented out if @code{PORT} is
prefixed by "\#", in this case, UNIX domain sockets are used
and the PORT option does not need to be touched)
@@ -580,10 +583,10 @@ used, which is typically not needed):
@verbatiminclude tutorial-examples/001.c
@end example
address@hidden Handling command-line options}
address@hidden Handling command-line options
Options can then be added easily by adding global variables and
-expanding the {\tt options} array. For example, the following would
+expanding the @code{options} array. For example, the following would
add a string-option and a binary flag (defaulting to @code{NULL} and
@code{GNUNET\_NO} respectively):
@example
@@ -609,7 +612,7 @@ more persistent P2P functions.
Exercise: Add a few command-line options and print them inside
of @code{run}. What happens if the user gives invalid arguments?
address@hidden Writing a Client Library}
address@hidden Writing a Client Library
The first and most important step in writing a client library is to
decide on an API for the library. Typical API calls include
@@ -630,7 +633,7 @@ Unique message types must be defined for each message
struct in the
@file{gnunet\_protocols.h} header (or an extension-specific include
file).
address@hidden Connecting to the Service}
address@hidden Connecting to the Service
Before a client library can implement the application-specific protocol
with the service, a connection must be created:
@@ -647,7 +650,7 @@ receive from the service, and which functions handle them.
The @code{error\_cb} is a function that is to be called whenever
there are errors communicating with the service.
address@hidden Sending messages}
address@hidden Sending messages
In GNUnet, messages are always sent beginning with a @code{struct
GNUNET\_MessageHeader}
in big endian format. This header defines the size and the type of the
@@ -676,7 +679,7 @@ unsigned integer (as payload) to a service using some given
client
handle.
address@hidden Receiving Replies from the Service}
address@hidden Receiving Replies from the Service
Clients can receive messages from the service using the handlers
specified in the @code{handlers} array we specified when connecting
@@ -700,7 +703,7 @@ should call a callback provided to your helper function's
API.
Exercise: Figure out where you can pass values to the closures (@code{cls}).
address@hidden Writing a user interface}
address@hidden Writing a user interface
Given a client library, all it takes to access a service now is to
combine calls to the client library with parsing command-line
@@ -725,7 +728,7 @@ the description of the client-service protocol
@file{SERVICE.h} and P2P protocol
@file{gnunet-service-SERVICE.h} and several files for tests, including test
code
and configuration files.
address@hidden Starting a Service}
address@hidden Starting a Service
The key API definition for creating a service is the
@code{GNUNET\_SERVICE\_MAIN} macro:
@example
@@ -778,7 +781,7 @@ is connect to the @code{CORE} service using:
@verbatiminclude tutorial-examples/009.c
@end example
address@hidden New P2P connections}
address@hidden New P2P connections
Before any traffic with a different peer can be exchanged, the peer must be
known to the service. This is notified by the @code{CORE} @code{connects}
callback,
@@ -830,7 +833,7 @@ messages lost? How can you transmit messages faster? What
happens if
you stop the peer that is receiving your messages?
address@hidden End of P2P connections}
address@hidden End of P2P connections
If a message handler returns @code{GNUNET\_SYSERR}, the remote peer shuts down
or
there is an unrecoverable network disconnection, CORE notifies the service that
@@ -865,7 +868,7 @@ The first step is to start a connection to the PEERSTORE
service:
The service handle @code{peerstore_handle} will be needed for all subsequent
PEERSTORE operations.
address@hidden Storing records}
address@hidden Storing records
To store a new record, use the following function:
@example
--
To stop receiving notification emails like this one, please contact
address@hidden
- [GNUnet-SVN] [gnunet] branch master updated (0e0e6e359 -> 292cc51b3), gnunet, 2017/09/06
- [GNUnet-SVN] [gnunet] 01/05: doc: Makefile: Add gnunet-c-tutorial., gnunet, 2017/09/06
- [GNUnet-SVN] [gnunet] 04/05: doc: gnunet-c-tutorial: fix warnings., gnunet, 2017/09/06
- [GNUnet-SVN] [gnunet] 05/05: doc: gnunet-c-tutorial: add @chapter's., gnunet, 2017/09/06
- [GNUnet-SVN] [gnunet] 03/05: doc: gnunet-c-tutorial: Add nodes., gnunet, 2017/09/06
- [GNUnet-SVN] [gnunet] 02/05: doc: gnunet-c-tutorial.texi, chapters/installation.texi: fix compilation warnings.,
gnunet <=