gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnunet] branch master updated (a2ce0b6a7 -> 862e488e0)


From: gnunet
Subject: [GNUnet-SVN] [gnunet] branch master updated (a2ce0b6a7 -> 862e488e0)
Date: Tue, 28 Nov 2017 21:03:06 +0100

This is an automated email from the git hooks/post-receive script.

ng0 pushed a change to branch master
in repository gnunet.

    from a2ce0b6a7 can't find who suggested this crasher fix.. delayed by pgp
     new a3d17834e doc: gnunet-bcd: point out help required in identifying the 
Texlive parts, the size of Texlive and some format and sentence structure 
changes.
     new 6da994550 doc/documentation/gnunet.texi: 
http://gnu.org…->https://gnu.org
     new e9e53c9a7 doc/documentation/chapters/developer.texi: Remove occurences 
of "GNUnet's …" in the section titles.
     new c0dc50248 Followup
     new 1291d66e6 doc/documentation/chapters/developer.texi: GNU -> GNU/Linux 
(in parts where it is technically correct and not just the kernel is 
referenced).
     new 92efe3b30 developer.texi: node fixes
     new be70bbdc6 doc: doc-gendoc-install rule.
     new 15314f41a fix
     new d7de9564f gendoc fixes
     new de5a0882e gnunet ev address
     new 4a29e6f83 some notes in philosophy
     new 20830cee7 footnotes
     new a41fcfa60 fix
     new 6e91a3e11 fix
     new db1c7a0dd +
     new 3df09f73a +
     new 6f28d1a8c fix name of Díaz
     new 231eff3a8 README
     new e78818210 developer
     new 123d64da9 installation: some comments + introducing the 'generic 
installation from source' collections
     new 1d06f2ffe +
     new 202583f94 +
     new c26ba4980 fix
     new 68705e67c batch
     new 6bf7f40bf doc README
     new 4540ee757 I've never seen this kind of file being produced by emacs, 
but it has to be added.
     new 7c48ab0b6 README: further specify point 4.
     new 18d1d9f84 +
     new c48fc4d44 Add new contributors manual
     new 47ed8f28f fix
     new 5a97f4fd1 fix
     new d2a34c084 no commas in @node and @section
     new 64793d52b fix
     new 85ff483a7 Alice Bob fixes
     new a5380c6b0 gnunet.texi: Contributing part has been moved to its own 
chapter.
     new 89e601bc4 contributing
     new 2e43537f1 it's probably too expensive to introduce 2 spaces between 
sentences.
     new 9812ab6ab +
     new ab80115e8 + philo
     new d387ba039 definitions.
     new 862e488e0 Merge branch 'master' of gnunet.org:gnunet into 
doc/documentation

The 41 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 contrib/packages/guix/gnunet-doc.scm         |   2 +-
 doc/.gitignore                               |   3 +-
 doc/documentation/Makefile.am                |   6 +
 doc/documentation/README.txt                 |  30 ++
 doc/documentation/chapters/contributing.texi | 102 +++++
 doc/documentation/chapters/developer.texi    | 307 +++++++-------
 doc/documentation/chapters/installation.texi | 611 +++++++++++++++------------
 doc/documentation/chapters/philosophy.texi   | 217 ++++++----
 doc/documentation/chapters/user.texi         |  44 +-
 doc/documentation/chapters/vocabulary.texi   |  19 +-
 doc/documentation/gnunet.texi                | 109 ++---
 doc/documentation/index.html                 |  12 +-
 doc/documentation/run-gendocs.sh             |   2 +-
 13 files changed, 882 insertions(+), 582 deletions(-)
 create mode 100644 doc/documentation/chapters/contributing.texi

diff --git a/contrib/packages/guix/gnunet-doc.scm 
b/contrib/packages/guix/gnunet-doc.scm
index b1ede6612..8e775e801 100644
--- a/contrib/packages/guix/gnunet-doc.scm
+++ b/contrib/packages/guix/gnunet-doc.scm
@@ -152,7 +152,7 @@
                ;;(zero? (system* "make" "doc-all-give-me-the-noise"))))
            (replace 'install
              (lambda _
-               (zero? (system* "make" "doc-all-install")))))))
+               (zero? (system* "make" "doc-gendoc-install")))))))
              ;;(lambda* (#:key outputs #:allow-other-keys)
                ;; (let* ((out (assoc-ref outputs "out"))
                ;;        (doc (string-append out "/share/doc/gnunet")))
diff --git a/doc/.gitignore b/doc/.gitignore
index 656026fe7..c56a90359 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -18,4 +18,5 @@ texinfo.tex
 gnunet.t2p/
 gnunet-c-tutorial.t2p/
 *.t2p/
-documentation/manuals
\ No newline at end of file
+documentation/manuals
+.\#*
\ No newline at end of file
diff --git a/doc/documentation/Makefile.am b/doc/documentation/Makefile.am
index 5bcf3d2a3..571999731 100644
--- a/doc/documentation/Makefile.am
+++ b/doc/documentation/Makefile.am
@@ -116,6 +116,7 @@ gnunet_TEXINFOS =                                           
\
        chapters/user.texi                                      \
        chapters/vocabulary.texi                                \
        chapters/configuration.texi                             \
+       chapters/contributing.texi                              \
        fdl-1.3.texi                                            \
        gpl-3.0.texi
 
@@ -185,6 +186,10 @@ doc-all-install:
        @install gnunet.html $(DESTDIR)/$(docdir)
        @install gnunet-c-tutorial.html $(DESTDIR)/$(docdir)
 
+doc-gendoc-install:
+       @mkdir -p $(DESTDIR)/$(docdir)
+       @cp -r manual $(DESTDIR)/$(docdir)
+
 #      @cp -r images $(DESTDIR)/$(infoimagedir)
 
 dev-build: version.texi version2.texi
@@ -208,6 +213,7 @@ clean:
        @rm gnunet-c-tutorial.html
        @rm -r gnunet.t2p
        @rm -r gnunet-c-tutorial.t2p
+       @rm -r manual
 
 # CLEANFILES =                                         \
 #      gnunet.log                                      \
diff --git a/doc/documentation/README.txt b/doc/documentation/README.txt
index 28223f009..b2a781558 100644
--- a/doc/documentation/README.txt
+++ b/doc/documentation/README.txt
@@ -13,6 +13,36 @@ To be moved to an appropriate section of "how to write 
documentation" or
 3. Do not use tab characters (see chapter 2.1 texinfo manual)
 
 4. Use neutral language and third person perspective in the text
+
+4.1 So, when you refer to a user in general or addressing the user,
+    refer to (1).
+4.1.1 Unsolved exceptions for canonical reasons:
+      When refering to Alice, use "she".
+      When refering to Bob, use "he".
+      These are long established examples and they
+      should either be replaced (avoid Alice and Bob
+      examples when you can) or followed.
+
+5. Use 2 spaces between sentences, so instead of:
+
+     We do this and the other thing. This is done by foo.
+
+   Write:
+
+     We do this and the other thing.  This is done by foo.
+
+6. Use @footnote{} instead of putting an @*ref{} to the footnote on a
+   collected footnote-page.
+   In a 200+ pages handbook it's better to have footnotes accessible
+   without having to skip over to the end.
+
+6.1 Avoid unnecessary footnotes, keep the text self-explanatory and
+    in a simple language where possible/necessary.
+
+* Completion Levels:
+
+** chapters/philosophy: around 100% fixed after initial export.
+
 * What's left to do
 
 - Which Texlive modules are needed? Decrease the size.
diff --git a/doc/documentation/chapters/contributing.texi 
b/doc/documentation/chapters/contributing.texi
new file mode 100644
index 000000000..5844fb497
--- /dev/null
+++ b/doc/documentation/chapters/contributing.texi
@@ -0,0 +1,102 @@
address@hidden GNUnet Contributors Handbook
address@hidden GNUnet Contributors Handbook
+
address@hidden
+* Contributing to GNUnet::
+* Licenses of contributions::
+* Copyright Assignment::
+* Contributing to the Reference Manual::
address@hidden menu
+
address@hidden Contributing to GNUnet
address@hidden Contributing to GNUnet
+
address@hidden Licenses of contributions
address@hidden Licenses of contributions
+
+GNUnet is a @uref{https://www.gnu.org/, GNU} package.
+All code contributions must thus be put under the
address@hidden://www.gnu.org/copyleft/gpl.html, GNU Public License (GPL)}.
+All documentation should be put under FSF approved licenses
+(see @uref{https://www.gnu.org/copyleft/fdl.html, fdl}).
+
+By submitting documentation, translations, and other content to GNUnet
+you automatically grant the right to publish code under the
+GNU Public License and documentation under either or both the
+GNU Public License or the GNU Free Documentation License.
+When contributing to the GNUnet project, GNU standards and the
address@hidden://www.gnu.org/philosophy/philosophy.html, GNU philosophy}
+should be adhered to.
+
address@hidden copyright assignment
address@hidden Copyright Assignment
address@hidden Copyright Assignment
+We require a formal copyright assignment for GNUnet contributors
+to GNUnet e.V.; nevertheless, we do allow pseudonymous contributions.
+By signing the copyright agreement and submitting your code (or
+documentation) to us, you agree to share the rights to your code
+with GNUnet e.V.; GNUnet e.V. receives non-exclusive ownership
+rights, and in particular is allowed to dual-license the code. You
+retain non-exclusive rights to your contributions, so you can also
+share your contributions freely with other projects.
+
+GNUnet e.V. will publish all accepted contributions under the GPLv3
+or any later version. The association may decide to publish
+contributions under additional licenses (dual-licensing).
+
+We do not intentionally remove your name from your contributions;
+however, due to extensive editing it is not always trivial to
+attribute contributors properly. If you find that you significantly
+contributed to a file (or the project as a whole) and are not listed
+in the respective authors file or section, please do let us know.
+
address@hidden Contributing to the Reference Manual
address@hidden Contributing to the Reference Manual
+
address@hidden @bullet
+
address@hidden When writing documentation, please use
address@hidden://en.wikipedia.org/wiki/Singular_they, gender-neutral wording}
+when referring to people, such as singular “they”, “their”, “them”, and so
+forth.
+
address@hidden Keep line length below 74 characters, except for URLs.
+URLs break in the PDF output when they contain linebreaks.
+
address@hidden Do not use tab characters (see chapter 2.1 texinfo manual)
+
address@hidden Use neutral language and third person perspective in the text
+
address@hidden So, when you refer to a user in general or addressing the user,
+refer to (1).
address@hidden @bullet
address@hidden Unsolved exceptions for canonical reasons: When refering to 
Alice,
+use "she". When refering to Bob, use "he". These are long established
+examples and they should either be replaced (avoid Alice and Bob
+examples when you can) or followed.
address@hidden itemize
+
address@hidden FIXME: This is questionable, it feels like bike shed painging to 
do
address@hidden this for several k lines. It only helps to jump between 
sentences in
address@hidden editors afaik.
address@hidden @item Use 2 spaces between sentences, so instead of:
+
address@hidden @example
address@hidden We do this and the other thing. This is done by foo.
address@hidden @end example
+
address@hidden Write:
+
address@hidden @example
address@hidden We do this and the other thing.  This is done by foo.
address@hidden @end example
+
address@hidden Use @@address@hidden@} instead of putting an @@address@hidden@} 
to the
+footnote on a collected footnote-page.
+In a 200+ pages handbook it's better to have footnotes accessible
+without having to skip over to the end.
+
address@hidden Avoid unnecessary footnotes, keep the text self-explanatory and
+in a simple language where possible/necessary.
+
address@hidden itemize
diff --git a/doc/documentation/chapters/developer.texi 
b/doc/documentation/chapters/developer.texi
index 87752a968..70fd7c7eb 100644
--- a/doc/documentation/chapters/developer.texi
+++ b/doc/documentation/chapters/developer.texi
@@ -11,7 +11,7 @@ For developers, GNUnet is:
 @itemize @bullet
 @item developed by a community that believes in the GNU philosophy
 @item Free Software (Free as in Freedom), licensed under the
address@hidden General Public License}
+GNU General Public License
 @item A set of standards, including coding conventions and
 architectural rules
 @item A set of layered protocols, both specifying the communication
@@ -24,8 +24,9 @@ writing extensions
 In particular, the architecture specifies that a peer consists of many
 processes communicating via protocols. Processes can be written in almost
 any language.
-C and Java APIs exist for accessing existing services and for writing
-extensions. It is possible to write extensions in other languages by
+C and Java @footnote{As well as Guile} APIs exist for accessing existing
+services and for writing extensions.
+It is possible to write extensions in other languages by
 implementing the necessary IPC protocols.
 
 GNUnet can be extended and improved along many possible dimensions, and
@@ -46,34 +47,34 @@ new chapters, sections or insightful comments.
 * Build-system::
 * Developing extensions for GNUnet using the gnunet-ext template::
 * Writing testcases::
-* GNUnet's TESTING library::
+* TESTING library::
 * Performance regression analysis with Gauger::
-* GNUnet's TESTBED Subsystem::
+* TESTBED Subsystem::
 * libgnunetutil::
-* The Automatic Restart Manager (ARM)::
-* GNUnet's TRANSPORT Subsystem::
+* Automatic Restart Manager (ARM)::
+* TRANSPORT Subsystem::
 * NAT library::
 * Distance-Vector plugin::
 * SMTP plugin::
 * Bluetooth plugin::
 * WLAN plugin::
-* The ATS Subsystem::
-* GNUnet's CORE Subsystem::
-* GNUnet's CADET subsystem::
-* GNUnet's NSE subsystem::
-* GNUnet's HOSTLIST subsystem::
-* GNUnet's IDENTITY subsystem::
-* GNUnet's NAMESTORE Subsystem::
-* GNUnet's PEERINFO subsystem::
-* GNUnet's PEERSTORE subsystem::
-* GNUnet's SET Subsystem::
-* GNUnet's STATISTICS subsystem::
-* GNUnet's Distributed Hash Table (DHT)::
-* The GNU Name System (GNS)::
-* The GNS Namecache::
-* The REVOCATION Subsystem::
-* GNUnet's File-sharing (FS) Subsystem::
-* GNUnet's REGEX Subsystem::
+* ATS Subsystem::
+* CORE Subsystem::
+* CADET Subsystem::
+* NSE Subsystem::
+* HOSTLIST Subsystem::
+* IDENTITY Subsystem::
+* NAMESTORE Subsystem::
+* PEERINFO Subsystem::
+* PEERSTORE Subsystem::
+* SET Subsystem::
+* STATISTICS Subsystem::
+* Distributed Hash Table (DHT)::
+* GNU Name System (GNS)::
+* GNS Namecache::
+* REVOCATION Subsystem::
+* File-sharing (FS) Subsystem::
+* REGEX Subsystem::
 @end menu
 
 @node Developer Introduction
@@ -98,8 +99,9 @@ following links:
 @end itemize
 
 In addition to the GNUnet Reference Documentation you are reading,
-the GNUnet server contains various resources for GNUnet
-developers and those who aspire to become regular contributors.
+the GNUnet server at @uref{https://gnunet.org} contains
+various resources for GNUnet developers and those
+who aspire to become regular contributors.
 They are all conveniently reachable via the "Developer"
 entry in the navigation menu. Some additional tools (such as static
 analysis reports) require a special developer access to perform certain
@@ -211,6 +213,7 @@ testing and evaluation
 Qt-based GNUnet GUI (is it depreacated?)
 @item @command{gnunet-cocoa}
 cocoa-based GNUnet GUI (is it depreacated?)
address@hidden @command{gnunet-guile}
 
 @end table
 
@@ -255,6 +258,7 @@ communication. The goal is to provide an OS-independent 
interface and
 more 'secure' or convenient implementations of commonly used primitives.
 The API is spread over more than a dozen headers, developers should study
 those closely to avoid duplicating existing functions.
address@hidden
 @item @file{hello/} --- libgnunethello
 HELLO messages are used to
 describe under which addresses a peer can be reached (for example,
@@ -1071,8 +1075,8 @@ testcases. Thus the canonical command @code{make check 
install} has to be
 changed to @code{make install check} for GNUnet.
 
 @cindex TESTING library
address@hidden GNUnet's TESTING library
address@hidden GNUnet's TESTING library
address@hidden TESTING library
address@hidden TESTING library
 
 The TESTING library is used for writing testcases which involve starting a
 single or multiple peers. While peers can also be started by testcases
@@ -1324,8 +1328,8 @@ If you wish to use Gauger for your own project, you can 
grab a copy of the
 latest stable release or check out Gauger's Subversion repository.
 
 @cindex TESTBED Subsystem
address@hidden GNUnet's TESTBED Subsystem
address@hidden GNUnet's TESTBED Subsystem
address@hidden TESTBED Subsystem
address@hidden TESTBED Subsystem
 
 The TESTBED subsystem facilitates testing and measuring of multi-peer
 deployments on a single host or over multiple hosts.
@@ -1966,7 +1970,7 @@ way to make porting of GNUnet easier.
 * Message Queue API::
 * Service API::
 * Optimizing Memory Consumption of GNUnet's (Multi-) Hash Maps::
-* The CONTAINER_MDLL API::
+* CONTAINER_MDLL API::
 @end menu
 
 @cindex Logging
@@ -3140,8 +3144,8 @@ to drop by 20-30% due to this change.
 
 
 @cindex CONTAINER_MDLL API
address@hidden The CONTAINER_MDLL API
address@hidden The CONTAINER_MDLL API
address@hidden CONTAINER_MDLL API
address@hidden CONTAINER_MDLL API
 @c %**end of header
 
 This text documents the GNUNET_CONTAINER_MDLL API. The
@@ -3206,8 +3210,8 @@ Iterating over the list should be done by directly 
accessing the
 
 @cindex Automatic Restart Manager
 @cindex ARM
address@hidden The Automatic Restart Manager (ARM)
address@hidden The Automatic Restart Manager (ARM)
address@hidden Automatic Restart Manager (ARM)
address@hidden Automatic Restart Manager (ARM)
 @c %**end of header
 
 GNUnet's Automated Restart Manager (ARM) is the GNUnet service responsible
@@ -3408,8 +3412,8 @@ problematic service.
 @end itemize
 
 @cindex TRANSPORT Subsystem
address@hidden GNUnet's TRANSPORT Subsystem
address@hidden GNUnet's TRANSPORT Subsystem
address@hidden TRANSPORT Subsystem
address@hidden TRANSPORT Subsystem
 @c %**end of header
 
 This chapter documents how the GNUnet transport subsystem works. The
@@ -3484,36 +3488,36 @@ transport level. Such an attack would not allow the 
adversary to decrypt
 the P2P transmissions, but a successful attacker could at least measure
 traffic volumes and latencies (raising the adversaries capablities by
 those of a global passive adversary in the worst case). The scenarios we
-are concerned about is an attacker, Mallory, giving a HELLO to Alice that
-claims to be for Bob, but contains Mallory's IP address instead of Bobs
-(for some transport). Mallory would then forward the traffic to Bob (by
-initiating a connection to Bob and claiming to be Alice). As a further
+are concerned about is an attacker, Mallory, giving a @code{HELLO} to
+Alice that claims to be for Bob, but contains Mallory's IP address
+instead of Bobs (for some transport).
+Mallory would then forward the traffic to Bob (by initiating a
+connection to Bob and claiming to be Alice). As a further
 complication, the scheme has to work even if say Alice is behind a NAT
-without traversal support and hence has no address of their own (and thus
+without traversal support and hence has no address of her own (and thus
 Alice must always initiate the connection to Bob).
 
-An additional constraint is that HELLO messages do not contain a
+An additional constraint is that @code{HELLO} messages do not contain a
 cryptographic signature since other peers must be able to edit
-(i.e. remove) addresses from the HELLO at any time (this was not true in
-GNUnet 0.8.x). A basic @strong{assumption} is that each peer knows the
-set of possible network addresses that it @strong{might} be reachable
-under (so for example, the external IP address of the NAT plus the LAN
-address(es) with the respective ports).
+(i.e. remove) addresses from the @code{HELLO} at any time (this was
+not true in GNUnet 0.8.x). A basic @strong{assumption} is that each peer
+knows the set of possible network addresses that it @strong{might}
+be reachable under (so for example, the external IP address of the
+NAT plus the LAN address(es) with the respective ports).
 
 The solution is the following. If Alice wants to validate that a given
 address for Bob is valid (i.e. is actually established @strong{directly}
-with the intended target), it sends a PING message over that connection
+with the intended target), she sends a PING message over that connection
 to Bob. Note that in this case, Alice initiated the connection so only
-Alice knows which address was used for sure (Alice maybe behind NAT, so
-whatever address Bob sees may not be an address Alice knows they have).
-Bob
-checks that the address given in the PING is actually one of Bob's
-addresses
-(does not belong to Mallory), and if it is, sends back a PONG (with a
-signature that says that Bob owns/uses the address from the PING). Alice
-checks the signature and is happy if it is valid and the address in the
-PONG is the address Alice used.
-This is similar to the 0.8.x protocol where the HELLO contained a
+Alice knows which address was used for sure (Alice may be behind NAT, so
+whatever address Bob sees may not be an address Alice knows she has).
+Bob checks that the address given in the @code{PING} is actually one
+of Bob's addresses (ie: does not belong to Mallory), and if it is,
+sends back a @code{PONG} (with a signature that says that Bob
+owns/uses the address from the @code{PING}).
+Alice checks the signature and is happy if it is valid and the address
+in the @code{PONG} is the address Alice used.
+This is similar to the 0.8.x protocol where the @code{HELLO} contained a
 signature from Bob for each address used by Bob.
 Here, the purpose code for the signature is
 @code{GNUNET_SIGNATURE_PURPOSE_TRANSPORT_PONG_OWN}. After this, Alice will
@@ -3523,9 +3527,13 @@ considers Bob's address to be valid, the connection 
itself is not
 considered 'established'. In particular, Alice may have many addresses
 for Bob that Alice considers valid.
 
-The PONG message is protected with a nonce/challenge against replay
-attacks and uses an expiration time for the signature (but those are
-almost implementation details).
address@hidden TODO: reference Footnotes so that I don't have to duplicate the
address@hidden footnotes or add them to an index at the end. Is this possible at
address@hidden all in Texinfo?
+The @code{PONG} message is protected with a nonce/challenge against replay
address@hidden@uref{http://en.wikipedia.org/wiki/Replay_attack, replay}}
+and uses an expiration time for the signature (but those are almost
+implementation details).
 
 @cindex NAT library
 @node NAT library
@@ -3620,8 +3628,14 @@ chain (or delivered to the current peer, if it has 
arrived at the
 destination).
 
 Assume a three peer network with peers Alice, Bob and Carol. Assume that
-Alice <-> Bob and Bob <-> Carol are direct (e.g. over TCP or UDP
-transports) connections, but that Alice cannot directly connect to Carol.
+
address@hidden
+Alice <-> Bob and Bob <-> Carol
address@hidden example
+
address@hidden
+are direct (e.g. over TCP or UDP transports) connections, but that
+Alice cannot directly connect to Carol.
 This may be the case due to NAT or firewall restrictions, or perhaps
 based on one of the peers respective configurations. If the Distance
 Vector transport is enabled on all three peers, it will automatically
@@ -3632,10 +3646,10 @@ Carol and notifies the DV transport about it. The DV 
transport at Alice
 looks up Carol in the routing table and finds that the message must be
 sent through Bob for Carol. The message is encapsulated setting Alice as
 the initiator and Carol as the destination and sent to Bob. Bob receives
-the messages, verifies both Alice and Carol are known to Bob, and re-wraps
-the message in a new DV message for Carol. The DV transport at Carol
-receives this message, unwraps the original message, and delivers it to
-Carol as though it came directly from Alice.
+the messages, verifies that both Alice and Carol are known to Bob, and
+re-wraps the message in a new DV message for Carol.
+The DV transport at Carol receives this message, unwraps the original
+message, and delivers it to Carol as though it came directly from Alice.
 
 @cindex SMTP plugin
 @node SMTP plugin
@@ -3880,9 +3894,11 @@ ask on the IRC channel.
 @subsection What do I need to use the Bluetooth plugin transport?
 @c %**end of header
 
-If you are a Linux user and you want to use the Bluetooth transport plugin
-you should install the BlueZ development libraries (if they aren't already
-installed). For instructions about how to install the libraries you should
+If you are a GNU/Linux user and you want to use the Bluetooth
+transport plugin you should install the
address@hidden development libraries} (if they aren't already
+installed).
+For instructions about how to install the libraries you should
 check out the BlueZ site
 (@uref{http://www.bluez.org/, http://www.bluez.org}). If you don't know if
 you have the necesarry libraries, don't worry, just run the GNUnet
@@ -3909,7 +3925,7 @@ The Bluetooth transport plugin uses virtually the same 
code as the WLAN
 plugin and only the helper binary is different. The helper takes a single
 argument, which represents the interface name and is specified in the
 configuration file. Here are the basic steps that are followed by the
-helper binary used on Linux:
+helper binary used on GNU/Linux:
 
 @itemize @bullet
 @item it verifies if the name corresponds to a Bluetooth interface name
@@ -3935,7 +3951,7 @@ discovery.
 @subsection What possible errors should I be aware of?
 @c %**end of header
 
address@hidden section is dedicated for Linux users}
address@hidden section is dedicated for GNU/Linux users}
 
 Well there are many ways in which things could go wrong but I will try to
 present some tools that you could use to debug and some scenarios.
@@ -3974,8 +3990,9 @@ the device and to send some particular commands to it.
 @subsection How do I configure my peer2?
 @c %**end of header
 
-On Linux, you just have to be sure that the interface name corresponds to
-the one that you want to use. Use the @code{hciconfig} tool to check that.
+On GNU/Linux, you just have to be sure that the interface name
+corresponds to the one that you want to use.
+Use the @code{hciconfig} tool to check that.
 By default it is set to hci0 but you can change it.
 
 A basic configuration looks like this:
@@ -4007,8 +4024,8 @@ transport service.
 @subsection How can I test it?
 @c %**end of header
 
-If you have two Bluetooth devices on the same machine which use Linux you
-must:
+If you have two Bluetooth devices on the same machine and you are using
+GNU/Linux you must:
 
 @itemize @bullet
 
@@ -4064,7 +4081,7 @@ plugin: it acceses the interface and then it forwards 
traffic in both
 directions between the Bluetooth interface and stdin/stdout of the
 process involved.
 
-The Bluetooth plugin transport could be used both on Linux and Windows
+The Bluetooth plugin transport could be used both on GNU/Linux and Windows
 platforms.
 
 @itemize @bullet
@@ -4088,8 +4105,9 @@ platforms.
 @subsubsection Linux functionality
 @c %**end of header
 
-In order to implement the plugin functionality on Linux I used the BlueZ
-stack. For the communication with the other devices I used the RFCOMM
+In order to implement the plugin functionality on GNU/Linux I
+used the BlueZ stack.
+For the communication with the other devices I used the RFCOMM
 protocol. Also I used the HCI protocol to gain some control over the
 device. The helper binary takes a single argument (the name of the
 Bluetooth interface) and is separated in two stages:
@@ -4244,7 +4262,7 @@ but you should keep in mind that you should have the 
latest updates
 (especially the @emph{ws2bth} header).
 
 Besides the fact that it uses the Windows Sockets, the Windows
-implemenation follows the same principles as the Linux one:
+implemenation follows the same principles as the GNU/Linux one:
 
 @itemize @bullet
 @item It has a initalization part where it initializes the
@@ -4264,17 +4282,19 @@ In order to register the service I used the 
@emph{WSASetService} function
 and I generated the @emph{Universally Unique Identifier} with the
 @emph{guidgen.exe} Windows's tool.
 
-In the loop section the only difference from the Linux implementation is
-that I used the GNUNET_NETWORK library for functions like @emph{accept},
address@hidden, @emph{connect} or @emph{select}. I decided to use the
-GNUNET_NETWORK library because I also needed to interact with the STDIN
-and STDOUT handles and on Windows the select function is only defined for
-sockets, and it will not work for arbitrary file handles.
+In the loop section the only difference from the GNU/Linux implementation
+is that I used the @code{GNUNET_NETWORK} library for
+functions like @emph{accept}, @emph{bind}, @emph{connect} or
address@hidden I decided to use the
address@hidden library because I also needed to interact
+with the STDIN and STDOUT handles and on Windows
+the select function is only defined for sockets,
+and it will not work for arbitrary file handles.
 
-Another difference between Linux and Windows implementation is that in
-Linux, the Bluetooth address is represented in 48 bits while in Windows is
-represented in 64 bits. Therefore I had to do some changes on
address@hidden header.
+Another difference between GNU/Linux and Windows implementation is that in
+GNU/Linux, the Bluetooth address is represented in 48 bits
+while in Windows is represented in 64 bits.
+Therefore I had to do some changes on @emph{plugin_transport_wlan} header.
 
 Also, currently on Windows the Bluetooth plugin doesn't have support for
 broadcast messages. When it receives a broadcast message it will skip it.
@@ -4303,9 +4323,9 @@ This section documents how the wlan transport plugin 
works. Parts which
 are not implemented yet or could be better implemented are described at
 the end.
 
address@hidden ats subsystem
address@hidden The ATS Subsystem
address@hidden The ATS Subsystem
address@hidden ATS Subsystem
address@hidden ATS Subsystem
address@hidden ATS Subsystem
 @c %**end of header
 
 ATS stands for "automatic transport selection", and the function of ATS in
@@ -4326,10 +4346,9 @@ allocation strategies which differ significantly in 
their performance and
 maturity, and it is still unclear if any particular plugin is generally
 superior.
 
address@hidden core subsystem
address@hidden CORE subsystem
address@hidden GNUnet's CORE Subsystem
address@hidden GNUnet's CORE Subsystem
address@hidden CORE Subsystem
address@hidden CORE Subsystem
address@hidden CORE Subsystem
 @c %**end of header
 
 The CORE subsystem in GNUnet is responsible for securing link-layer
@@ -4714,10 +4733,9 @@ receiving a type map by sending back a
 (with the correct hash of the type map) is not received, the sender will
 retransmit the type map (with exponential back-off).
 
address@hidden cadet subsystem
address@hidden CADET
address@hidden GNUnet's CADET subsystem
address@hidden GNUnet's CADET subsystem
address@hidden CADET Subsystem
address@hidden CADET Subsystem
address@hidden CADET Subsystem
 
 The CADET subsystem in GNUnet is responsible for secure end-to-end
 communications between nodes in the GNUnet overlay network. CADET builds
@@ -4842,10 +4860,9 @@ Finally, when an application no longer wants to use 
CADET, it should call
 @code{GNUNET_CADET_disconnect}, but first all channels and pending
 transmissions must be closed (otherwise CADET will complain).
 
address@hidden nse subsystem
address@hidden NSE
address@hidden GNUnet's NSE subsystem
address@hidden GNUnet's NSE subsystem
address@hidden NSE Subsystem
address@hidden NSE Subsystem
address@hidden NSE Subsystem
 
 
 NSE stands for @dfn{Network Size Estimation}. The NSE subsystem provides
@@ -5184,10 +5201,9 @@ Finally, when it comes to send the stored message for 
the current round to
 the neighbors there is a random delay added for each neighbor, to avoid
 traffic spikes and minimize cross-messages.
 
address@hidden HOSTLIST subsystem
address@hidden hostlist subsystem
address@hidden GNUnet's HOSTLIST subsystem
address@hidden GNUnet's HOSTLIST subsystem
address@hidden HOSTLIST Subsystem
address@hidden HOSTLIST Subsystem
address@hidden HOSTLIST Subsystem
 
 @c %**end of header
 
@@ -5510,10 +5526,9 @@ installation handbook:@
 Configuring the hostlist to bootstrap@
 Configuring your peer to provide a hostlist
 
address@hidden IDENTITY
address@hidden identity subsystem
address@hidden GNUnet's IDENTITY subsystem
address@hidden GNUnet's IDENTITY subsystem
address@hidden IDENTITY Subsystem
address@hidden IDENTITY Subsystem
address@hidden IDENTITY Subsystem
 
 @c %**end of header
 
@@ -5709,10 +5724,9 @@ will respond to a GET_DEFAULT request with a SET_DEFAULT 
message
 containing the respective information, or with a RESULT_CODE to
 indicate an error.
 
address@hidden NAMESTORE
address@hidden namestore subsystem
address@hidden GNUnet's NAMESTORE Subsystem
address@hidden GNUnet's NAMESTORE Subsystem
address@hidden NAMESTORE Subsystem
address@hidden NAMESTORE Subsystem
address@hidden NAMESTORE Subsystem
 
 The NAMESTORE subsystem provides persistent storage for local GNS zone
 information. All local GNS zone information are managed by NAMESTORE. It
@@ -5848,10 +5862,9 @@ To stop monitoring, the client calls
 @code{GNUNET_NAMESTORE_zone_monitor_stop} and passes the handle obtained
 from the function to start the monitoring.
 
address@hidden PEERINFO
address@hidden peerinfo subsystem
address@hidden GNUnet's PEERINFO subsystem
address@hidden GNUnet's PEERINFO subsystem
address@hidden PEERINFO Subsystem
address@hidden PEERINFO Subsystem
address@hidden PEERINFO Subsystem
 
 @c %**end of header
 
@@ -6093,9 +6106,9 @@ about every change and the callback function will be 
called to notify you
 about changes. The function returns a handle to cancel notifications
 with @code{GNUNET_PEERINFO_notify_cancel}.
 
address@hidden PEERSTORE subsystem
address@hidden GNUnet's PEERSTORE subsystem
address@hidden GNUnet's PEERSTORE subsystem
address@hidden PEERSTORE Subsystem
address@hidden PEERSTORE Subsystem
address@hidden PEERSTORE Subsystem
 
 @c %**end of header
 
@@ -6208,8 +6221,8 @@ the PEERSTORE service, otherwise, the pending STORE 
requests will be
 destroyed as well.
 
 @cindex SET Subsystem
address@hidden GNUnet's SET Subsystem
address@hidden GNUnet's SET Subsystem
address@hidden SET Subsystem
address@hidden SET Subsystem
 
 @c %**end of header
 
@@ -6583,9 +6596,9 @@ All Bloom filter operations use a salt to mingle keys 
before hasing them
 into buckets, such that future iterations have a fresh chance of
 succeeding if they failed due to collisions before.
 
address@hidden STATISTICS subsystem
address@hidden GNUnet's STATISTICS subsystem
address@hidden GNUnet's STATISTICS subsystem
address@hidden STATISTICS Subsystem
address@hidden STATISTICS Subsystem
address@hidden STATISTICS Subsystem
 
 @c %**end of header
 
@@ -6802,8 +6815,8 @@ parameter's value is changed.
 
 @cindex DHT
 @cindex Distributed Hash Table
address@hidden GNUnet's Distributed Hash Table (DHT)
address@hidden GNUnet's Distributed Hash Table (DHT)
address@hidden Distributed Hash Table (DHT)
address@hidden Distributed Hash Table (DHT)
 
 @c %**end of header
 
@@ -7255,8 +7268,10 @@ forwarded more than once.
 The DHT service may also cache forwarded results locally if the
 "CACHE_RESULTS" option is set to "YES" in the configuration.
 
address@hidden The GNU Name System (GNS)
address@hidden The GNU Name System (GNS)
address@hidden GNS
address@hidden GNU Name System
address@hidden GNU Name System (GNS)
address@hidden GNU Name System (GNS)
 
 @c %**end of header
 
@@ -7634,8 +7649,9 @@ applications that use alternative means of resolving 
names (such as
 sending queries to a DNS server directly by themselves).
 This includes some of well known utilities, like "ping" and "nslookup".
 
address@hidden The GNS Namecache
address@hidden The GNS Namecache
address@hidden GNS Namecache
address@hidden GNS Namecache
address@hidden GNS Namecache
 
 @c %**end of header
 
@@ -7783,8 +7799,9 @@ Obviously, this can done either by simply adding new 
blocks and selecting
 for the most recent expiration time during lookup, or by checking which
 block is more recent during the store operation.
 
address@hidden The REVOCATION Subsystem
address@hidden The REVOCATION Subsystem
address@hidden REVOCATION Subsystem
address@hidden REVOCATION Subsystem
address@hidden REVOCATION Subsystem
 @c %**end of header
 
 The REVOCATION subsystem is responsible for key revocation of Egos.
@@ -7975,11 +7992,10 @@ all peers at any time; however, well-behaved peers 
should only initiate
 this operation once after establishing a connection to a peer with a
 larger hashed peer identity.
 
address@hidden gnunet-fs
 @cindex FS
address@hidden FS subsystem
address@hidden GNUnet's File-sharing (FS) Subsystem
address@hidden GNUnet's File-sharing (FS) Subsystem
address@hidden FS Subsystem
address@hidden File-sharing (FS) Subsystem
address@hidden File-sharing (FS) Subsystem
 
 @c %**end of header
 
@@ -8014,7 +8030,7 @@ NOTE: The documentation in this chapter is quite 
incomplete.
 * File-sharing persistence directory structure::
 @end menu
 
address@hidden ecrs
address@hidden ECRS
 @cindex Encoding for Censorship-Resistant Sharing
 @node Encoding for Censorship-Resistant Sharing (ECRS)
 @subsection Encoding for Censorship-Resistant Sharing (ECRS)
@@ -8169,9 +8185,8 @@ structure of the publishing operation.
 Note that unindex operations cannot have associated child operations.
 
 @cindex REGEX subsystem
address@hidden regex subsystem
address@hidden GNUnet's REGEX Subsystem
address@hidden GNUnet's REGEX Subsystem
address@hidden REGEX Subsystem
address@hidden REGEX Subsystem
 
 @c %**end of header
 
diff --git a/doc/documentation/chapters/installation.texi 
b/doc/documentation/chapters/installation.texi
index c3a64639b..7be1e9833 100644
--- a/doc/documentation/chapters/installation.texi
+++ b/doc/documentation/chapters/installation.texi
@@ -1,19 +1,20 @@
 @node GNUnet Installation Handbook
 @chapter GNUnet Installation Handbook
 
-This handbook describes how to install (build setup, compilation) and
-setup (configuration, start) GNUnet 0.10.x. After following these
+This handbook describes how to install (build, setup, compile) and
+setup (configure, start) GNUnet @value{VERSION}. After following these
 instructions you should be able to install and then start user-interfaces
 to interact with the network.
 
-This manual is far from complete, and we welcome informed contributions,
-be it in the form of new chapters or insightful comments.
+Note: This manual is far from complete, and we welcome informed
+contributions, be it in the form of new chapters or insightful comments.
 
 @menu
 * Dependencies::
 * Pre-installation notes::
 * Generic installation instructions::
 * Build instructions for Ubuntu 12.04 using Git::
+* Build instructions for software builds from source::
 * Build Instructions for Microsoft Windows Platforms::
 * Build instructions for Debian 7.5::
 * Installing GNUnet from Git on Ubuntu 14.4::
@@ -34,7 +35,6 @@ Suggestions for missing dependencies or wrong version numbers 
are welcome.
 
 @menu
 * External dependencies::
-* Fixing libgnurl build issues::
 * Optional dependencies::
 * Internal dependencies::
 @end menu
@@ -63,7 +63,7 @@ can be performed:
 @item miniupnpc
 @item gettext
 @item which
address@hidden texinfo
address@hidden texinfo @geq{} 5.2
 @item GNU libmicrohttpd @geq{} 0.9.30 @footnote{We recommend to build it
 with a GnuTLS version that was configured with libunbound}
 @item GNU libextractor @geq{} 1.0
@@ -96,47 +96,32 @@ recommended for first-time users)}
 @item zlib
 @end itemize
 
address@hidden Fixing libgnurl build issues
address@hidden Fixing libgnurl build issues
-
-If you have to compile libgnurl from source since the version included in
-your distribution is to old you perhaps get an error message while
-running the @file{configure} script:
-
address@hidden
-$ configure
-...
-checking for 64-bit curl_off_t data type... unknown
-checking for 32-bit curl_off_t data type... unknown
-checking for 16-bit curl_off_t data type... unknown
-configure: error: cannot find data type for curl_off_t.
address@hidden example
-
address@hidden
-Solution:
-
-Before running the configure script, set:
-
address@hidden
-CFLAGS="-I. -I$BUILD_ROOT/include"
address@hidden example
-
 @node Optional dependencies
 @subsection Optional dependencies
 
 These applications must be installed for various experimental or otherwise
-optional features such as @code{gnunet-conversation}, @code{gnunet-gtk}.
+optional features such as @command{gnunet-conversation},
+and @command{gnunet-gtk} (most of these features are only build if you
+configure GNUnet with @command{--enable-experimental}):
 
 @itemize @bullet
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 @footnote{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 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 libpulse @geq{} 2.0,
+optional (for @command{gnunet-conversation})
address@hidden libopus @geq{} 1.0.1,
+optional (for @command{gnunet-conversation})
address@hidden libogg @geq{} 1.3.0,
+optional (for @command{gnunet-conversation})
address@hidden libnss contained @command{certool} binary,
+optional for convenient installation of
+the GNS proxy.
address@hidden python-zbar @geq{} 0.10,
+optional (for @command{gnunet-qr})
address@hidden Gtk+ @geq{} 3.0,
+optional (for @command{gnunet-gtk})
address@hidden libgladeui (must match Gtk+ version),
+optional (for @command{gnunet-gtk})
address@hidden libqrencode @geq{} 3.0,
+optional (for @command{gnunet-namestore-gtk})
 @end itemize
 
 @node Internal dependencies
@@ -145,10 +130,11 @@ the GNS proxy (available as part of Debian's 
libnss3-tools)}
 This section tries to give an overview of what processes a typical GNUnet
 peer running a particular application would consist of. All of the
 processes listed here should be automatically started by
address@hidden -s}.
address@hidden -s}.
 The list is given as a rough first guide to users for failure diagnostics.
 Ideally, end-users should never have to worry about these internal
-dependencies. 
+dependencies.
+
 In terms of internal dependencies, a minimum file-sharing system consists
 of the following GNUnet processes (in order of dependency):
 
@@ -243,21 +229,22 @@ Other dependencies that you should strongly consider to 
install is a
 database (MySQL, sqlite or Postgres).
 The following instructions will assume that you installed at least sqlite.
 For most distributions you should be able to find pre-build packages for
-the database. Again, make sure to install the client libraries and the
+the database. Again, make sure to install the client libraries @b{and} the
 respective development headers (if they are packaged separately) as well.
 
 You can find specific, detailed instructions for installing of the
 dependencies (and possibly the rest of the GNUnet installation) in the
 platform-specific descriptions, which can be found in the Index.
 Please consult them now.
-If your distribution is not listed, please study the instructions for
-Debian stable carefully as you try to install the dependencies for your
+If your distribution is not listed, please study
address@hidden instructions for Debian 8}, the build instructions for
+Debian stable, carefully as you try to install the dependencies for your
 own distribution.
 Contributing additional instructions for further platforms is always
 appreciated.
 Please take in mind that operating system development tends to move at
 a rather fast speed. Due to this you should be aware that some of
-the instructionss could be outdated by the time you are reading this.
+the instructions could be outdated by the time you are reading this.
 If you find a mistake, please tell us about it (or even better: send
 a patch to the documentation to fix it!).
 
@@ -272,7 +259,8 @@ While it is possible to build and install GNUnet without 
having root
 access, we will assume that you have full control over your system in
 these instructions.
 First, you should create a system user @emph{gnunet} and an additional
-group @emph{gnunetdns}. On Debian and Ubuntu GNU/Linux, type:
+group @emph{gnunetdns}. On the GNU/Linux distributions Debian and Ubuntu,
+type:
 
 @example
 # adduser --system --home /var/lib/gnunet --group \
@@ -281,7 +269,7 @@ group @emph{gnunetdns}. On Debian and Ubuntu GNU/Linux, 
type:
 @end example
 
 @noindent
-On other Unixes, this should have the same effect:
+On other Unixes and GNU systems, this should have the same effect:
 
 @example
 # useradd --system --groups gnunet --home-dir /var/lib/gnunet
@@ -291,8 +279,8 @@ On other Unixes, this should have the same effect:
 Now compile and install GNUnet using:
 
 @example
-$ tar xvf gnunet-0.10.?.tar.gz
-$ cd gnunet-0.10.?
+$ tar xvf address@hidden
+$ cd address@hidden
 $ ./configure --with-sudo=sudo --with-nssdir=/lib
 $ make
 $ sudo make install
@@ -300,17 +288,19 @@ $ sudo make install
 
 If you want to be able to enable DEBUG-level log messages, add
 @code{--enable-logging=verbose} to the end of the
address@hidden/configure} command.
-DEBUG-level log messages are in English-only and should only be useful for
-developers (or for filing really detailed bug reports). 
address@hidden/configure} command.
address@hidden log messages are in English only and
+should only be useful for developers (or for filing
+really detailed bug reports). 
 
-Finally, you probably want to compile @code{gnunet-gtk}, which
-includes gnunet-setup (graphical tool for configuration)
-and @code{gnunet-fs-gtk} (graphical tool for file-sharing):
+Finally, you probably want to compile @command{gnunet-gtk}, which
+includes @command{gnunet-setup} (a graphical tool for
+GNUnet configuration) and @command{gnunet-fs-gtk} (a graphical tool for
+GNUnet file-sharing):
 
 @example
-$ tar xvf gnunet-gtk-0.10.?.tar.gz
-$ cd gnunet-gtk-0.10.?
+$ tar xvf address@hidden
+$ cd address@hidden
 $ ./configure --with-gnunet=/usr/local/
 $ make
 $ sudo make install
@@ -329,34 +319,35 @@ USER_ONLY = NO
 @end example
 
 @noindent
-You may need to update your ld.so cache to include files installed in
address@hidden/usr/local/lib}:
+You may need to update your @code{ld.so} cache to include
+files installed in @file{/usr/local/lib}:
 
 @example
 # ldconfig
 @end example
 
 @noindent
-Then, switch from user root to user gnunet to start the peer:
+Then, switch from user @code{root} to user @code{gnunet} to start
+the peer:
 
 @example
 # su -s /bin/sh - gnunet
 $ gnunet-arm -c /etc/gnunet.conf -s
 @end example
 
-You may also want to add the last line in the gnunet users @file{crontab}
+You may also want to add the last line in the gnunet user's @file{crontab}
 prefixed with @code{@@reboot} so that it is executed whenever the system
 is booted:
 
 @example
-@@reboot /usr/local/bin/gnunet-arm -c /etc/gnunet.conf -s@
+@@reboot /usr/local/bin/gnunet-arm -c /etc/gnunet.conf -s
 @end example
 
 @noindent
 This will only start the system-wide GNUnet services.
 Type exit to get back your root shell.
 Now, you need to configure the per-user part. For each
-$USER on the system, run:
+$USER that should get access to GNUnet on the system, run:
 
 @example
 # adduser $USER gnunet
@@ -395,7 +386,7 @@ For those services, systems with more than one user may 
require each user
 to specify a different port number in their personal configuration file.
 
 Finally, the user should perform the basic initial setup for the GNU Name
-System. This is done by running two commands:
+System (GNS). This is done by running two commands:
 
 @example
 $ gnunet-gns-import.sh
@@ -404,7 +395,7 @@ $ gnunet-gns-proxy-setup-ca
 
 @noindent
 The first generates the default zones, wheras the second setups the GNS
-Certificate Authority with the user's browser. Now, to actiave GNS in the
+Certificate Authority with the user's browser. Now, to activate GNS in the
 normal DNS resolution process, you need to edit your
 @file{/etc/nsswitch.conf} where you should find a line like this:
 
@@ -431,7 +422,6 @@ your system, it should have been created during the 
installation.
 @node Build instructions for Ubuntu 12.04 using Git
 @section Build instructions for Ubuntu 12.04 using Git
 
-
 @menu
 * Install the required build tools::
 * Install libgcrypt 1.6 and libgpg-error::
@@ -462,74 +452,23 @@ $ sudo apt-get install automake autopoint autoconf libtool
 @node Install libgcrypt 1.6 and libgpg-error
 @subsection Install libgcrypt 1.6 and libgpg-error
 
address@hidden
-$ wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.12.tar.bz2
-$ tar xf libgpg-error-1.12.tar.bz2
-$ cd libgpg-error-1.12
-$ ./configure
-$ sudo make install ; cd ..
address@hidden example
address@hidden source installation - libgpg-error}
 
 @node Install gnutls with DANE support
 @subsection Install gnutls with DANE support
 
address@hidden
-$ wget http://www.lysator.liu.se/~nisse/archive/nettle-2.7.1.tar.gz
-$ tar xf nettle-2.7.1.tar.gz
-$ cd nettle-2.7.1
-$ ./configure
-$ sudo make install ; cd ..
address@hidden example
-
address@hidden
-$ wget https://www.nlnetlabs.nl/downloads/ldns/ldns-1.6.16.tar.gz
-$ tar xf ldns-1.6.16.tar.gz
-$ cd ldns-1.6.16
-$ ./configure
-$ sudo make install ; cd ..
address@hidden example
-
address@hidden
-$ wget https://unbound.net/downloads/unbound-1.4.21.tar.gz
-$ tar xf unbound-1.4.21.tar.gz
-$ cd unbound-1.4.21
-$ ./configure
-$ sudo make install ; cd ..
address@hidden example
-
address@hidden
-$ wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.17.tar.xz
-$ tar xf gnutls-3.1.17.tar.xz
-$ cd gnutls-3.1.17
-$ ./configure
-$ sudo make install ; cd ..
address@hidden example
-
address@hidden
-$ wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.0.tar.bz2
-$ tar xf libgcrypt-1.6.0.tar.bz2
-$ cd libgcrypt-1.6.0
-$ ./configure
-$ sudo make install ; cd ..
address@hidden example
address@hidden @bullet
address@hidden @ref{generic source installation - nettle}
address@hidden @ref{generic source installation - ldns}
address@hidden @ref{generic source installation - libunbound/unbound}
address@hidden @ref{generic source installation - gnutls}
address@hidden @ref{generic source installation - libgcrypt}
address@hidden itemize
 
 @node Install libgnurl
 @subsection Install libgnurl
 
address@hidden
-$ wget https://gnunet.org/sites/default/files/gnurl-7.34.0.tar.bz2
-$ tar xf gnurl-7.34.0.tar.bz2
-$ cd gnurl-7.34.0
-$ ./configure --enable-ipv6 --with-gnutls --without-libssh2 \
-  --without-libmetalink --without-winidn --without-librtmp \
-  --without-nghttp2 --without-nss --without-cyassl \
-  --without-polarssl --without-ssl --without-winssl \
-  --without-darwinssl --disable-sspi --disable-ntlm-wb \
-  --disable-ldap --disable-rtsp --disable-dict --disable-telnet \
-  --disable-tftp --disable-pop3 --disable-imap --disable-smtp \
-  --disable-gopher --disable-file --disable-ftp
-$ sudo make install ; cd ..
address@hidden example
+Follow the @ref{generic source installation - libgnurl}.
 
 @node Install libmicrohttpd from Git
 @subsection Install libmicrohttpd from Git
@@ -660,7 +599,7 @@ $ ./bootstrap
 @end example
 
 Use the required configure call including the optional installation prefix
-PREFIX or the sudo permissions:
address@hidden or the sudo permissions:
 
 @example
 $ ./configure [ --with-sudo | --with-prefix=PREFIX ]
@@ -690,10 +629,10 @@ Install depencies:
 
 @example
 $ sudo apt-get install libgtk-3-dev libunique-3.0-dev libgladeui-dev \
-libqrencode-dev
+ libqrencode-dev
 @end example
 
-To build GNUnet (with an optional prefix)and execute:
+Build GNUnet (with an optional prefix) and execute:
 
 @example
 $ git clone https://gnunet.org/git/gnunet-gtk/
@@ -703,6 +642,170 @@ $ ./configure [--prefix=PREFIX] --with-gnunet=DIRECTORY
 $ make; sudo make install
 @end example
 
address@hidden Build instructions for software builds from source
address@hidden Build instructions for software builds from source
+
+This section describes software builds in case your operating
+system lacks binary substitutes / binary builds for some dependencies
+of GNUnet.
+It is assumed that you have installed common build dependencies
+and that these instructions are treated as generic without any
+debugging help.
+It is furthermore assumed that you use the release tarballs of
+the software, installation from the respective version control
+sources might differ in ways that are only minimal different
+(for example a dependency on autotools etc).
+
address@hidden
+* generic source installation - nettle::
+* generic source installation - ldns::
+* generic source installation - libunbound/unbound::
+* generic source installation - libav::
+* generic source installation - libextractor::
+* generic source installation - libgpg-error::
+* generic source installation - libgcrypt::
+* generic source installation - gnutls::
+* generic source installation - libmicrohttpd::
+* generic source installation - libgnurl::
address@hidden menu
+
address@hidden generic source installation - nettle
address@hidden generic source installation - nettle
address@hidden
+$ wget http://www.lysator.liu.se/~nisse/archive/nettle-2.7.1.tar.gz
+$ tar xf nettle-2.7.1.tar.gz
+$ cd nettle-2.7.1
+$ ./configure
+$ sudo make install ; cd ..
address@hidden example
+
address@hidden generic source installation - ldns
address@hidden generic source installation - ldns
address@hidden
+$ wget https://www.nlnetlabs.nl/downloads/ldns/ldns-1.6.16.tar.gz
+$ tar xf ldns-1.6.16.tar.gz
+$ cd ldns-1.6.16
+$ ./configure
+$ sudo make install ; cd ..
address@hidden example
+
address@hidden generic source installation - libunbound/unbound
address@hidden generic source installation - libunbound/unbound
address@hidden
+$ wget https://unbound.net/downloads/unbound-1.4.21.tar.gz
+$ tar xf unbound-1.4.21.tar.gz
+$ cd unbound-1.4.21
+$ ./configure
+$ sudo make install ; cd ..
address@hidden example
+
address@hidden generic source installation - libav
address@hidden generic source installation - libav
address@hidden
+$ wget https://libav.org/releases/libav-9.10.tar.xz
+$ cd libav-0.9 ; ./configure --enable-shared;
+$ make; sudo make install; cd ..
address@hidden example
+
address@hidden generic source installation - libextractor
address@hidden generic source installation - libextractor
address@hidden
+$ wget https://ftp.gnu.org/gnu/libextractor/libextractor-1.3.tar.gz
+$ tar xvf libextractor-1.3.tar.gz
+$ cd libextractor-1.3 ; ./configure;
+$ make ; sudo make install; cd ..
address@hidden example
+
address@hidden generic source installation - libgpg-error
address@hidden generic source installation - libgpg-error
address@hidden
+$ wget https://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.12.tar.bz2
+$ tar xvf libgpg-error-1.12.tar.bz2
+$ cd libgpg-error-1.12; ./configure;
+$ make ; sudo make install; cd ..
address@hidden example
+
address@hidden generic source installation - libgcrypt
address@hidden generic source installation - libgcrypt
address@hidden
+$ wget https://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.0.tar.bz2
+$ tar xvf libgcrypt-1.6.0.tar.bz2
+$ cd libgcrypt-1.6.0; ./configure --with-gpg-error-prefix=/usr/local;
+$ make ; sudo make install ; cd ..
address@hidden example
+
address@hidden generic source installation - gnutls
address@hidden generic source installation - gnutls
address@hidden
+$ wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.7.tar.xz
+$ tar xvf gnutls-3.2.7.tar.xz
+$ cd gnutls-3.2.7 ; ./configure;
+$ make ; sudo make install ; cd ..
address@hidden example
+
address@hidden
+If you want a GnuTLS with DANE functionality, you have to compile
+it against libunbound.
+
address@hidden generic source installation - libmicrohttpd
address@hidden generic source installation - libmicrohttpd
address@hidden
+$ wget https://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.33.tar.gz
+$ tar xvf libmicrohttpd-0.9.33.tar.gz
+$ cd libmicrohttpd-0.9.33; ./configure;
+$ make ; sudo make install ; cd ..
address@hidden example
+
address@hidden generic source installation - libgnurl
address@hidden generic source installation - libgnurl
+
address@hidden
+$ wget https://gnunet.org/sites/default/files/gnurl-7.34.0.tar.bz2
+$ tar xvf gnurl-7.34.0.tar.bz2
+$ cd gnurl-7.34.0
+$ ./configure --enable-ipv6 --with-gnutls=/usr/local --without-libssh2 \
+ --without-libmetalink --without-winidn --without-librtmp \
+ --without-nghttp2 --without-nss --without-cyassl --without-polarssl \
+ --without-ssl --without-winssl --without-darwinssl --disable-sspi \
+ --disable-ntlm-wb --disable-ldap --disable-rtsp --disable-dict \
+ --disable-telnet --disable-tftp --disable-pop3 --disable-imap \
+ --disable-smtp --disable-gopher --disable-file --disable-ftp
+$ make ; sudo make install; cd ..
address@hidden example
+
address@hidden
+* Fixing libgnurl build issues::
address@hidden menu
+
address@hidden Fixing libgnurl build issues
address@hidden Fixing libgnurl build issues
+
address@hidden FIXME: Obviously this subsection should be evaluated and
address@hidden if still necessary moved into gnURL itself (README) or
address@hidden into a separate section which deals with gnURL.
+If you have to compile libgnurl from source (for example if the version
+included in your distribution is too old or it's not included at all)
+you perhaps might get an error message while running the
address@hidden script:
+
address@hidden
+$ configure
+...
+checking for 64-bit curl_off_t data type... unknown
+checking for 32-bit curl_off_t data type... unknown
+checking for 16-bit curl_off_t data type... unknown
+configure: error: cannot find data type for curl_off_t.
address@hidden example
+
address@hidden
+Solution:
+
+Before running the @command{configure} script, set:
+
address@hidden
+CFLAGS="-I. -I$BUILD_ROOT/include"
address@hidden example
+
 @node Build Instructions for Microsoft Windows Platforms
 @section Build Instructions for Microsoft Windows Platforms
 
@@ -743,6 +846,9 @@ Windows Vista and later will also work, but
 @strong{non-server version can not run a VPN-Exit-Node} as the NAT
 features have been removed as of Windows Vista.
 
address@hidden TODO: We should document Windows 10!
address@hidden It seems like the situation hasn't changed with W10
+
 @node Dependencies & Initial Setup
 @subsection Dependencies & Initial Setup
 
@@ -752,11 +858,11 @@ features have been removed as of Windows Vista.
 @item
 Install a fresh version of @strong{Python 2.x}, even if you are using a
 x64-OS, install a 32-bit version for use with sbuild.
-Python 3.0 currently is incompatible.
+Python 3.0 is currently incompatible.
 
 @item
-Install your favorite @uref{http://code.google.com/p/tortoisegit/, GIT} &
address@hidden://tortoisesvn.net/, SVN}-clients.
+Install your favorite @uref{http://code.google.com/p/tortoisegit/, git} &
address@hidden://tortoisesvn.net/, subversion}-clients.
 
 @item
 You will also need some archive-manager like
@@ -1040,44 +1146,20 @@ You might want to do this as a "normal" user and only 
run the
 @code{make install} steps as root (hence the @code{sudo} in the
 commands below). Also, you do this from any
 directory. We begin by downloading all dependencies, then extracting the
-sources, and finally compiling and installing the libraries:@
+sources, and finally compiling and installing the libraries.
 
address@hidden
-$ wget https://libav.org/releases/libav-9.10.tar.xz
-$ wget http://ftp.gnu.org/gnu/libextractor/libextractor-1.3.tar.gz
-$ wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.12.tar.bz2
-$ wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.0.tar.bz2
-$ wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.7.tar.xz
-$ wget http://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.33.tar.gz
-$ wget https://gnunet.org/sites/default/files/gnurl-7.34.0.tar.bz2
-$ tar xvf libextractor-1.3.tar.gz
-$ tar xvf libgpg-error-1.12.tar.bz2
-$ tar xvf libgcrypt-1.6.0.tar.bz2
-$ tar xvf gnutls-3.2.7.tar.xz
-$ tar xvf libmicrohttpd-0.9.33.tar.gz
-$ tar xvf gnurl-7.34.0.tar.bz2
-$ cd libav-0.9 ; ./configure --enable-shared;
-$ make; sudo make install; cd ..
-$ cd libextractor-1.3 ; ./configure;
-$ make ; sudo make install; cd ..
-$ cd libgpg-error-1.12; ./configure;
-$ make ; sudo make install; cd ..
-$ cd libgcrypt-1.6.0; ./configure --with-gpg-error-prefix=/usr/local;
-$ make ; sudo make install ; cd ..
-$ cd gnutls-3.2.7 ; ./configure;
-$ make ; sudo make install ; cd ..
-$ cd libmicrohttpd-0.9.33; ./configure;
-$ make ; sudo make install ; cd ..
-$ cd gnurl-7.34.0
-$ ./configure --enable-ipv6 --with-gnutls=/usr/local --without-libssh2 \
- --without-libmetalink --without-winidn --without-librtmp \
- --without-nghttp2 --without-nss --without-cyassl --without-polarssl \
- --without-ssl --without-winssl --without-darwinssl --disable-sspi \
- --disable-ntlm-wb --disable-ldap --disable-rtsp --disable-dict \
- --disable-telnet --disable-tftp --disable-pop3 --disable-imap \
- --disable-smtp --disable-gopher --disable-file --disable-ftp
-$ make ; sudo make install; cd ..
address@hidden example
+For these steps, follow the instructions given in the
+installation from source instruction in this order:
+
address@hidden @bullet
address@hidden @ref{generic source installation - libav}
address@hidden @ref{generic source installation - libextractor}
address@hidden @ref{generic source installation - libgpg-error}
address@hidden @ref{generic source installation - libgcrypt}
address@hidden @ref{generic source installation - gnutls}
address@hidden @ref{generic source installation - libmicrohttpd}
address@hidden @ref{generic source installation - libgnurl}
address@hidden itemize
 
 @node Installing GNUnet from source
 @subsection Installing GNUnet from source
@@ -1325,22 +1407,14 @@ libraries:
 
 @example
 $ wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.12.tar.xz
-$ wget https://gnunet.org/sites/default/files/gnurl-7.40.0.tar.bz2
 $ tar xvf gnutls-3.3.12.tar.xz
-$ tar xvf gnurl-7.40.0.tar.bz2
 $ cd gnutls-3.3.12 ; ./configure ; make ; sudo make install ; cd ..
-$ cd gnurl-7.40.0
-$ ./configure --enable-ipv6 --with-gnutls=/usr/local --without-libssh2 \
---without-libmetalink --without-winidn --without-librtmp \
---without-nghttp2 --without-nss --without-cyassl --without-polarssl \
---without-ssl --without-winssl --without-darwinssl --disable-sspi \
---disable-ntlm-wb --disable-ldap --disable-rtsp --disable-dict \
---disable-telnet --disable-tftp --disable-pop3 --disable-imap \
---disable-smtp --disable-gopher --disable-file --disable-ftp \
---disable-smb
-$ make ; sudo make install; cd ..
 @end example
 
+For the installation and compilation of libgnurl/gnURL refer to
+the generic installation section,
address@hidden source installation - libgnurl}.
+
 @node Installing GNUnet from Source2
 @subsection Installing GNUnet from Source2
 
@@ -1447,20 +1521,7 @@ $ cd ..
 
 Install libgnurl:
 
address@hidden
-$ wget https://gnunet.org/sites/default/files/gnurl-7.35.0.tar.bz2
-$ tar xf gnurl-7.35.0.tar.bz2
-$ cd gnurl-7.35.0
-$ ./configure --enable-ipv6 --with-gnutls --without-libssh2 \
---without-libmetalink --without-winidn --without-librtmp
---without-nghttp2 --without-nss --without-cyassl --without-polarssl \
---without-ssl --without-winssl --without-darwinssl --disable-sspi \
---disable-ntlm-wb --disable-ldap --disable-rtsp --disable-dict \
---disable-telnet --disable-tftp --disable-pop3 --disable-imap \
---disable-smtp --disable-gopher --disable-file --disable-ftp
-$ sudo make install@
-$ cd ..@
address@hidden example
address@hidden source installation - libgnurl}.
 
 Install GNUnet:
 
@@ -2129,7 +2190,6 @@ file by hand, this is not recommended for anyone except 
for developers
 as it requires a more in-depth understanding of the configuration files
 and internal dependencies of GNUnet.
 
-
 @node Configuring the Friend-to-Friend (F2F) mode
 @subsection Configuring the Friend-to-Friend (F2F) mode
 
@@ -2159,18 +2219,18 @@ The resulting output of this command needs to be added 
to your
 per friend with the output from the above command.
 
 You then specify the location of your @file{friends} file in the
-"FRIENDS" option of the "topology" section.
address@hidden option of the "topology" section.
 
 Once you have created the @file{friends} file, you can tell GNUnet to only
-connect to your friends by setting the "FRIENDS-ONLY" option (again in
-the "topology" section) to YES.
+connect to your friends by setting the @code{FRIENDS-ONLY} option
+(again in the "topology" section) to YES.
 
 If you want to run in mixed-mode, set "FRIENDS-ONLY" to NO and configure a
 minimum number of friends to have (before connecting to arbitrary peers)
 under the "MINIMUM-FRIENDS" option.
 
 If you want to operate in normal P2P-only mode, simply set
-"MINIMUM-FRIENDS" to zero and "FRIENDS_ONLY" to NO.
address@hidden to zero and @code{FRIENDS_ONLY} to NO.
 This is the default.
 
 @node Configuring the hostlist to bootstrap
@@ -2189,7 +2249,7 @@ To use these bootstrap servers you have to configure the 
hostlist daemon
 to activate bootstrapping.
 
 To activate bootstrapping, edit the @code{[hostlist]}-section in your
-configuration file. You have to set the argument "-b" in the
+configuration file. You have to set the argument @command{-b} in the
 options line:
 
 @example
@@ -2225,8 +2285,8 @@ messages, your peer can download these lists and connect 
to the peers
 included. These lists are persistent, which means that they are saved to
 your hard disk regularly and are loaded during startup.
 
-To activate hostlist learning you have to add the "-e" switch to the
-OPTIONS line in the hostlist section:
+To activate hostlist learning you have to add the @command{-e}
+switch to the @code{OPTIONS} line in the hostlist section:
 
 @example
 [hostlist]
@@ -2235,7 +2295,7 @@ OPTIONS = -b -e
 
 @noindent
 Furthermore you can specify in which file the lists are saved.
-To save the lists in the file "hostlists.file" just add the line:
+To save the lists in the file @file{hostlists.file} just add the line:
 
 @example
 HOSTLISTFILE = hostlists.file
@@ -2259,7 +2319,7 @@ HOSTLISTFILE = $SERVICEHOME/hostlists.file
 The hostlist client can be configured to use a proxy to connect to the
 hostlist server.
 This functionality can be configured in the configuration file directly
-or using the gnunet-setup tool. 
+or using the @command{gnunet-setup} tool.
 
 The hostlist client supports the following proxy types at the moment:
 
@@ -2306,17 +2366,18 @@ If you operate a peer permanently connected to GNUnet 
you can configure
 your peer to act as a hostlist server, providing other peers the list of
 peers known to him.
 
-Yor server can act as a bootstrap server and peers needing to obtain a
+Your server can act as a bootstrap server and peers needing to obtain a
 list of peers can contact it to download this list.
 To download this hostlist the peer uses HTTP.
-For this reason you have to build your peer with libcurl and microhttpd
-support. How you build your peer with this options can be found here:
address@hidden://gnunet.org/generic_installation}
+For this reason you have to build your peer with libgnurl (or libcurl)
+and microhttpd support.
+How you build your peer with these options can be found here:
address@hidden installation instructions}.
 
 To configure your peer to act as a bootstrap server you have to add the
address@hidden option to OPTIONS in the @code{[hostlist]} section of your
-configuration file. Besides that you have to specify a port number for
-the http server.
address@hidden option to @code{OPTIONS} in the @code{[hostlist]} section
+of your configuration file.
+Besides that you have to specify a port number for the http server.
 In conclusion you have to add the following lines:
 
 @example
@@ -2353,7 +2414,7 @@ The URL used to download the list will be
 Please notice:
 
 @itemize @bullet
address@hidden The hostlist is not human readable, so you should not try to
address@hidden The hostlist is @b{not} human readable, so you should not try to
 download it using your webbrowser. Just point your GNUnet peer to the
 address!
 @item Advertising without providing a hostlist does not make sense and
@@ -2363,13 +2424,13 @@ will not work.
 @node Configuring the datastore
 @subsection Configuring the datastore
 
-The datastore is what GNUnet uses to for long-term storage of file-sharing
+The datastore is what GNUnet uses for long-term storage of file-sharing
 data. Note that long-term does not mean 'forever' since content does have
 an expiration date, and of course storage space is finite (and hence
 sometimes content may have to be discarded).
 
-Use the "QUOTA" option to specify how many bytes of storage space you are
-willing to dedicate to GNUnet.
+Use the @code{QUOTA} option to specify how many bytes of storage space
+you are willing to dedicate to GNUnet.
 
 In addition to specifying the maximum space GNUnet is allowed to use for
 the datastore, you need to specify which database GNUnet should use to do
@@ -2411,8 +2472,8 @@ inconsistencies. Some of the other databases do not 
support repair.
 
 @itemize @bullet
 
address@hidden In @code{gnunet.conf} set in section "DATASTORE" the value for
-"DATABASE" to "mysql".
address@hidden In @file{gnunet.conf} set in section @code{DATASTORE} the value 
for
address@hidden to @code{mysql}.
 
 @item Access mysql as root:
 
@@ -2422,7 +2483,7 @@ $ mysql -u root -p
 
 @noindent
 and issue the following commands, replacing $USER with the username
-that will be running gnunet-arm (so typically "gnunet"):
+that will be running @command{gnunet-arm} (so typically "gnunet"):
 
 @example
 CREATE DATABASE gnunet;
@@ -2462,15 +2523,30 @@ mysql> use gnunet;
 @end example
 
 @noindent
-If you get the message "Database changed" it probably works.
+If you get the message
+
address@hidden
+Database changed
address@hidden example
+
address@hidden
+it probably works.
+
+If you get
+
address@hidden
+ERROR 2002: Can't connect to local MySQL server
+through socket '/tmp/mysql.sock' (2)
address@hidden example
 
-If you get "ERROR 2002: Can't connect to local MySQL server@
-through socket '/tmp/mysql.sock' (2)" it may be resolvable by
address@hidden
+it may be resolvable by
 
 @example
 ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
 @end example
 
address@hidden
 so there may be some additional trouble depending on your mysql setup.
 
 @node Performance Tuning
@@ -2495,7 +2571,7 @@ the only application on your system using MySQL.
 
 If you want to run the testcases, you must create a second database
 "gnunetcheck" with the same username and password. This database will
-then be used for testing ("make check").
+then be used for testing (@command{make check}).
 
 @node Configuring the Postgres database
 @subsection Configuring the Postgres database
@@ -2525,9 +2601,9 @@ earlier versions as well.
 @subsection Manual setup instructions
 
 @itemize @bullet
address@hidden In @code{gnunet.conf} set in section "DATASTORE" the value for
-"DATABASE" to "postgres".
address@hidden Access Postgres to create a user:@
address@hidden In @file{gnunet.conf} set in section @code{DATASTORE} the value 
for
address@hidden to @code{postgres}.
address@hidden Access Postgres to create a user:
 
 @table @asis
 @item with Postgres 8.x, use:
@@ -2540,7 +2616,7 @@ $ createuser
 @noindent
 and enter the name of the user running GNUnet for the role interactively.
 Then, when prompted, do not set it to superuser, allow the creation of
-databases, and do not allow the creation of new roles.@
+databases, and do not allow the creation of new roles.
 
 @item with Postgres 9.x, use:
 
@@ -2550,7 +2626,7 @@ $ createuser -d $GNUNET_USER
 @end example
 
 @noindent
-where $GNUNET_USER is the name of the user running GNUnet.@
+where $GNUNET_USER is the name of the user running GNUnet.
 
 @end table
 
@@ -2592,7 +2668,7 @@ expected to be wiped completely each time GNUnet is 
restarted (or the
 system is rebooted).
 
 You need to specify how many bytes GNUnet is allowed to use for the
-datacache using the "QUOTA" option in the section "dhtcache".
+datacache using the @code{QUOTA} option in the section @code{[dhtcache]}.
 Furthermore, you need to specify which database backend should be used to
 store the data. Currently, you have the choice between
 sqLite, MySQL and Postgres.
@@ -2602,8 +2678,8 @@ sqLite, MySQL and Postgres.
 
 In order to use GNUnet for file-sharing, you first need to make sure
 that the file-sharing service is loaded.
-This is done by setting the AUTOSTART option in section "fs" to "YES".
-Alternatively, you can run
+This is done by setting the @code{AUTOSTART} option in
+section @code{[fs]} to "YES". Alternatively, you can run
 
 @example
 $ gnunet-arm -i fs
@@ -2651,26 +2727,29 @@ The @code{-l} option is used to specify the log file.
 
 Since most GNUnet services are managed by @code{gnunet-arm}, using the
 @code{-l} or @code{-L} options directly is not possible.
-Instead, they can be specified using the "OPTIONS" configuration value in
-the respective section for the respective service.
-In order to enable logging globally without editing the "OPTIONS" values
-for each service, @code{gnunet-arm} supports a "GLOBAL_POSTFIX" option.
+Instead, they can be specified using the @code{OPTIONS} configuration
+value in the respective section for the respective service.
+In order to enable logging globally without editing the @code{OPTIONS}
+values for each service, @command{gnunet-arm} supports a
address@hidden option.
 The value specified here is given as an extra option to all services for
-which the configuration does contain a service-specific "OPTIONS" field.
+which the configuration does contain a service-specific @code{OPTIONS}
+field.
 
-"GLOBAL_POSTFIX" can contain the special sequence "@address@hidden" which is 
replaced
-by the name of the service that is being started. Furthermore,
address@hidden is special in that sequences starting with "$"
-anywhere in the string are expanded (according to options in "PATHS");
-this expansion otherwise is only happening for filenames and then the "$"
-must be the first character in the option. Both of these restrictions do
-not apply to "GLOBAL_POSTFIX".
-Note that specifying @code{%} anywhere in the "GLOBAL_POSTFIX" disables
-both of these features.
address@hidden can contain the special sequence "@address@hidden" which
+is replaced by the name of the service that is being started.
+Furthermore, @code{GLOBAL_POSTFIX} is special in that sequences
+starting with "$" anywhere in the string are expanded (according
+to options in @code{PATHS}); this expansion otherwise is
+only happening for filenames and then the "$" must be the
+first character in the option. Both of these restrictions do
+not apply to @code{GLOBAL_POSTFIX}.
+Note that specifying @code{%} anywhere in the @code{GLOBAL_POSTFIX}
+disables both of these features.
 
-In summary, in order to get all services to log at level "INFO" to
-log-files called @code{SERVICENAME-logs}, the following global prefix
-should be used:
+In summary, in order to get all services to log at level
address@hidden to log-files called @code{SERVICENAME-logs}, the
+following global prefix should be used:
 
 @example
 GLOBAL_POSTFIX = -l $SERVICEHOME/@address@hidden -L INFO
@@ -2896,9 +2975,11 @@ The interface channel depends on the wlan network that 
the card is
 connected to. If no connection has been made since the start of the
 computer, it is usually the first channel of the card.
 Peers will only find each other and communicate if they are on the same
-channel. Channels must be set manually (i.e. using
address@hidden wlan0 channel 1}).
+channel. Channels must be set manually, i.e. using:
 
address@hidden
+iwconfig wlan0 channel 1
address@hidden example
 
 @node Configuring HTTP(S) reverse proxy functionality using Apache or nginx
 @subsection Configuring HTTP(S) reverse proxy functionality using Apache or 
nginx
@@ -2936,7 +3017,16 @@ As an example we want to use GNUnet peer running:
 And we want the webserver to accept GNUnet traffic under
 @code{http://www.foo.org/bar/}. The required steps are described here:
 
address@hidden your Apache2 HTTP webserver}
address@hidden
+* Reverse Proxy - Configure your Apache2 HTTP webserver::
+* Reverse Proxy - Configure your Apache2 HTTPS webserver::
+* Reverse Proxy - Configure your nginx HTTPS webserver::
+* Reverse Proxy - Configure your nginx HTTP webserver::
+* Reverse Proxy - Configure your GNUnet peer::
address@hidden menu
+
address@hidden Reverse Proxy - Configure your Apache2 HTTP webserver
address@hidden Reverse Proxy - Configure your Apache2 HTTP webserver
 
 First of all you need mod_proxy installed.
 
@@ -2955,8 +3045,8 @@ ProxyPassReverse http://gnunet.foo.org:1080/
 </Location>
 @end example
 
address@hidden
address@hidden your Apache2 HTTPS webserver}
address@hidden Reverse Proxy - Configure your Apache2 HTTPS webserver
address@hidden Reverse Proxy - Configure your Apache2 HTTPS webserver
 
 We assume that you already have an HTTPS server running, if not please
 check how to configure a HTTPS host. An easy to use example is the
@@ -2980,7 +3070,8 @@ More information about the apache mod_proxy configuration 
can be found
 here: @uref{http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass}
 .
 
address@hidden your nginx HTTPS webserver}
address@hidden Reverse Proxy - Configure your nginx HTTPS webserver
address@hidden Reverse Proxy - Configure your nginx HTTPS webserver
 
 Since nginx does not support chunked encoding, you first of all have to
 install @code{chunkin}: @uref{http://wiki.nginx.org/HttpChunkinModule}.
@@ -3013,8 +3104,8 @@ proxy_next_upstream error timeout invalid_header http_500 
http_503 http_502 http
 @}
 @end example
 
address@hidden
address@hidden your nginx HTTPS webserver}
address@hidden Reverse Proxy - Configure your nginx HTTP webserver
address@hidden Reverse Proxy - Configure your nginx HTTP webserver
 
 Edit your webserver configuration. Edit @file{/etc/nginx/nginx.conf} or
 the site-specific configuration file.
@@ -3034,8 +3125,8 @@ proxy_next_upstream error timeout invalid_header http_500 
http_503 http_502 http
 @}
 @end example
 
address@hidden
address@hidden your GNUnet peer}
address@hidden Reverse Proxy - Configure your GNUnet peer
address@hidden Reverse Proxy - Configure your GNUnet peer
 
 To have your GNUnet peer announce the address, you have to specify the
 @code{EXTERNAL_HOSTNAME} option in the @code{[transport-http_server]}
diff --git a/doc/documentation/chapters/philosophy.texi 
b/doc/documentation/chapters/philosophy.texi
index 10006ebe1..116991a6a 100644
--- a/doc/documentation/chapters/philosophy.texi
+++ b/doc/documentation/chapters/philosophy.texi
@@ -1,22 +1,27 @@
address@hidden Philosopy
address@hidden Philosophy
 @node Philosophy
 @chapter Philosophy
 
address@hidden NOTE: We should probably re-use some of the images lynX created
address@hidden for secushare, showing some of the relations and functionalities
address@hidden of GNUnet.
 The foremost goal of the GNUnet project is to become a widely used,
 reliable, open, non-discriminating, egalitarian, unfettered and
 censorship-resistant system of free information exchange.
 We value free speech above state secrets, law-enforcement or
-intellectual property. GNUnet is supposed to be an anarchistic network,
-where the only limitation for peers is that they must contribute enough
-back to the network such that their resource consumption does not have
-a significant impact on other users. GNUnet should be more than just
-another file-sharing network. The plan is to offer many other services
-and in particular to serve as a development platform for the next
-generation of decentralized Internet protocols.
+intellectual property.
+GNUnet is supposed to be an anarchistic network, where the only
+limitation for peers is that they must contribute enough back to
+the network such that their resource consumption does not have
+a significant impact on other users.
+GNUnet should be more than just another file-sharing network.
+The plan is to offer many other services and in particular
+to serve as a development platform for the next generation of
+decentralized Internet protocols.
 
 @menu
 * Design Goals::
-* Security & Privacy::
+* Security and Privacy::
 * Versatility::
 * Practicality::
 * Key Concepts::
@@ -30,7 +35,12 @@ generation of decentralized Internet protocols.
 These are the core GNUnet design goals, in order of relative importance:
 
 @itemize
address@hidden GNUnet must be implemented as free software.
address@hidden GNUnet must be implemented as
address@hidden://www.gnu.org/philosophy/free-sw.html, Free Software}
address@hidden To footnote or not to footnote, that's the question.
address@hidden means that you you have the four essential freedoms: to run
+the program, to study and change the program in source code form,
+to redistribute exact copies, and to distribute modified versions.}
 @item GNUnet must only disclose the minimal amount of information
 necessary.
 @item GNUnet must be decentralised and survive Byzantine failures in any
@@ -49,8 +59,8 @@ resources than they consume.
 
 
 @cindex Security and Privacy
address@hidden Security & Privacy
address@hidden Security & Privacy
address@hidden Security and Privacy
address@hidden Security and Privacy
 
 GNUnet's primary design goals are to protect the privacy of its users and
 to guard itself against attacks or abuse.
@@ -63,18 +73,18 @@ find out what is happening on the network or to disrupt 
operations.
 @section Versatility
 
 We call GNUnet a peer-to-peer framework because we want to support many
-different forms of peer-to-peer applications. GNUnet uses a plugin
+different forms of peer-to-peer applications.  GNUnet uses a plugin
 architecture to make the system extensible and to encourage code reuse.
 While the first versions of the system only supported anonymous
 file-sharing, other applications are being worked on and more will
 hopefully follow in the future.
 A powerful synergy regarding anonymity services is created by a large
 community utilizing many diverse applications over the same software
-infrastructure. The reason is that link encryption hides the specifics
-of the traffic for non-participating observers. This way, anonymity can
+infrastructure.  The reason is that link encryption hides the specifics
+of the traffic for non-participating observers.  This way, anonymity can
 get stronger with additional (GNUnet) traffic, even if the additional
-traffic is not related to anonymous communication. Increasing anonymity is
-the primary reason why GNUnet is developed to become a peer-to-peer
+traffic is not related to anonymous communication.  Increasing anonymity
+is the primary reason why GNUnet is developed to become a peer-to-peer
 framework where many applications share the lower layers of an
 increasingly complex protocol stack.
 If merging traffic to hinder traffic analysis was not important,
@@ -86,22 +96,22 @@ and a few shared libraries.
 @section Practicality
 
 GNUnet allows participants to trade various amounts of security in
-exchange for increased efficiency. However, it is not possible for any
+exchange for increased efficiency.  However, it is not possible for any
 user's security and efficiency requirements to compromise the security
 and efficiency of any other user.
 
-For GNUnet, efficiency is not paramount. If there is a more secure and
+For GNUnet, efficiency is not paramount.  If there is a more secure and
 still practical approach, we would choose to take the more secure
 alternative. @command{telnet} is more efficient than @command{ssh}, yet
 it is obsolete.
-Hardware gets faster, and code can be optimized. Fixing security issues as
-an afterthought is much harder. 
+Hardware gets faster, and code can be optimized.  Fixing security issues
+as an afterthought is much harder.
 
 While security is paramount, practicability is still a requirement.
 The most secure system is always the one that nobody can use.
 Similarly, any anonymous system that is extremely inefficient will only
 find few users.
-However, good anonymity requires a large and diverse user base. Since
+However, good anonymity requires a large and diverse user base.  Since
 individual security requirements may vary, the only good solution here is
 to allow individuals to trade-off security and efficiency.
 The primary challenge in allowing this is to ensure that the economic
@@ -122,6 +132,8 @@ with the goals of the group is always preferable.
 @section Key Concepts
 
 In this section, the fundamental concepts of GNUnet are explained.
address@hidden FIXME: Use @uref{https://docs.gnunet.org/bib/, research papers}
address@hidden once we have the new bibliography + subdomain setup.
 Most of them are also described in our research papers.
 First, some of the concepts used in the GNUnet framework are detailed.
 The second part describes concepts specific to anonymous file-sharing.
@@ -142,46 +154,57 @@ The second part describes concepts specific to anonymous 
file-sharing.
 @subsection Authentication
 
 Almost all peer-to-peer communications in GNUnet are between mutually
-authenticated peers. The authentication works by using ECDHE, that is a
-DH key exchange using ephemeral eliptic curve cryptography. The ephemeral
-ECC keys are signed using ECDSA. The shared secret from ECDHE is used to
-create a pair of session keys (using HKDF) which are then used to encrypt
-the communication between the two peers using both 256-bit AES and 256-bit
-Twofish (with independently derived secret keys). As only the two
-participating hosts know the shared secret, this authenticates each packet
-without requiring signatures each time. GNUnet uses SHA-512 hash codes to
-verify the integrity of messages. 
-
-In GNUnet, the identity of a host is its public key. For that reason,
+authenticated peers.  The authentication works by using ECDHE, that is a
+DH (Diffie---Hellman) key exchange using ephemeral eliptic curve
+cryptography.  The ephemeral ECC (Eliptic Curve Cryptography) keys are
+signed using ECDSA (@uref{http://en.wikipedia.org/wiki/ECDSA, ECDSA}).
+The shared secret from ECDHE is used to create a pair of session keys
address@hidden FIXME: LOng word for HKDF
+(using HKDF) which are then used to encrypt the communication between the
+two peers using both 256-bit AES (Advanced Encryption Standard)
+and 256-bit Twofish (with independently derived secret keys).
+As only the two participating hosts know the shared secret, this
+authenticates each packet
+without requiring signatures each time.  GNUnet uses SHA-512
+(Secure Hash Algorithm) hash codes to verify the integrity of messages.
+
+In GNUnet, the identity of a host is its public key.  For that reason,
address@hidden FIXME: is it clear to the average reader what a man-in-the-middle
address@hidden attack is?
 man-in-the-middle attacks will not break the authentication or accounting
-goals. Essentially, for GNUnet, the IP of the host has nothing to do with
-the identity of the host. As the public key is the only thing that truly
+goals.  Essentially, for GNUnet, the IP of the host has nothing to do with
+the identity of the host.  As the public key is the only thing that truly
 matters, faking an IP, a port or any other property of the underlying
-transport protocol is irrelevant. In fact, GNUnet peers can use
+transport protocol is irrelevant.  In fact, GNUnet peers can use
 multiple IPs (IPv4 and IPv6) on multiple ports --- or even not use the
-IP protocol at all (by running directly on layer 2). 
+IP protocol at all (by running directly on layer 2).
 
address@hidden NOTE: For consistency we will use @code{HELLO}s throughout this 
Manual.
 GNUnet uses a special type of message to communicate a binding between
-public (ECC) keys to their current network address. These messages are
-commonly called HELLOs or peer advertisements. They contain the public key
-of the peer and its current network addresses for various transport
-services.
+public (ECC) keys to their current network address.  These messages are
+commonly called @code{HELLO}s or peer advertisements.
+They contain the public key of the peer and its current network
+addresses for various transport services.
 A transport service is a special kind of shared library that
 provides (possibly unreliable, out-of-order) message delivery between
 peers.
 For the UDP and TCP transport services, a network address is an IP and a
 port.
 GNUnet can also use other transports (HTTP, HTTPS, WLAN, etc.) which use
-various other forms of addresses. Note that any node can have many
-different
-active transport services at the same time, and each of these can have a
-different addresses. Binding messages expire after at most a week (the
-timeout can be shorter if the user configures the node appropriately).
+various other forms of addresses.  Note that any node can have many
+different active transport services at the same time,
+and each of these can have a different addresses.
+Binding messages expire after at most a week (the timeout can be
+shorter if the user configures the node appropriately).
 This expiration ensures that the network will eventually get rid of
-outdated address@hidden details can be found in
address@hidden://gnunet.org/transports, A Transport Layer Abstraction for 
Peer-to-Peer Networks}}
-
address@hidden Resource Sharing
+outdated advertisements.
address@hidden A. Ferreira, Christian Grothoff, and Paul Ruth.
+A Transport Layer Abstraction for Peer-to-Peer Networks
+Proceedings of the 3rd International Symposium on Cluster Computing
+and the Grid (GRID 2003), 2003.
+(@uref{https://gnunet.org/git/bibliography.git/plain/docs/transport.pdf, pdf})}
+
address@hidden Accounting to Encourage Resource Sharing
 @node Accounting to Encourage Resource Sharing
 @subsection Accounting to Encourage Resource Sharing
 
@@ -189,35 +212,41 @@ Most distributed P2P networks suffer from a lack of 
defenses or
 precautions against attacks in the form of freeloading.
 While the intentions of an attacker and a freeloader are different, their
 effect on the network is the same; they both render it useless.
-Most simple attacks on networks such as Gnutella involve flooding the
-network with traffic, particularly with queries that are, in the worst
-case, multiplied by the network. 
+Most simple attacks on networks such as @command{Gnutella}
+involve flooding the network with traffic, particularly
+with queries that are, in the worst case, multiplied by the network.
 
 In order to ensure that freeloaders or attackers have a minimal impact on
 the network, GNUnet's file-sharing implementation tries to distinguish
-good (contributing) nodes from malicious (freeloading) nodes. In GNUnet,
+good (contributing) nodes from malicious (freeloading) nodes.  In GNUnet,
 every file-sharing node keeps track of the behavior of every other node it
-has been in contact with. Many requests (depending on the application) are
-transmitted with a priority (or importance) level. That priority is used
-to establish how important the sender believes this request is. If a peer
-responds to an important request, the recipient will increase its trust in
-the responder: the responder contributed resources. If a peer is too busy
-to answer all requests, it needs to prioritize. For that, peers to not
-take the priorities of the requests received at face value.
+has been in contact with.  Many requests (depending on the application)
+are transmitted with a priority (or importance) level.
+That priority is used to establish how important the sender believes
+this request is.  If a peer responds to an important request, the
+recipient will increase its trust in the responder:
+the responder contributed resources.
+If a peer is too busy to answer all requests, it needs to prioritize.
address@hidden FIXME: 'peers to not take' -> 'peers do not take' would make 
more sense
+For that, peers to not take the priorities of the requests received at
+face value.
 First, they check how much they trust the sender, and depending on that
 amount of trust they assign the request a (possibly lower) effective
-priority. Then, they drop the requests with the lowest effective priority
-to satisfy their resource constraints. This way, GNUnet's economic model
+priority.  Then, they drop the requests with the lowest effective priority
+to satisfy their resource constraints.  This way, GNUnet's economic model
 ensures that nodes that are not currently considered to have a surplus in
-contributions will not be served if the network load is address@hidden
-e details can be found in @uref{https://gnunet.org/ebe, this paper}}
+contributions will not be served if the network load is high.
address@hidden Grothoff. An Excess-Based Economic Model for Resource
+Allocation in Peer-to-Peer Networks. Wirtschaftsinformatik, June 2003.
+(@uref{https://gnunet.org/git/bibliography.git/plain/docs/ebe.pdf, pdf})}
address@hidden 2009?
 
 @cindex Confidentiality
 @node Confidentiality
 @subsection Confidentiality
 
 Adversaries outside of GNUnet are not supposed to know what kind of
-actions a peer is involved in. Only the specific neighbor of a peer that
+actions a peer is involved in.  Only the specific neighbor of a peer that
 is the corresponding sender or recipient of a message may know its
 contents, and even then application protocols may place further
 restrictions on that knowledge.
@@ -225,7 +254,7 @@ In order to ensure confidentiality, GNUnet uses link 
encryption, that is
 each message exchanged between two peers is encrypted using a pair of
 keys only known to these two peers.
 Encrypting traffic like this makes any kind of traffic analysis much
-harder. Naturally, for some applications, it may still be desirable if
+harder.  Naturally, for some applications, it may still be desirable if
 even neighbors cannot determine the concrete contents of a message.
 In GNUnet, this problem is addressed by the specific application-level
 protocols (see for example, deniability and anonymity in anonymous file
@@ -240,22 +269,25 @@ sharing).
 @end menu
 
 Providing anonymity for users is the central goal for the anonymous
-file-sharing application. Many other design decisions follow in the
+file-sharing application.  Many other design decisions follow in the
 footsteps of this requirement.
-Anonymity is never absolute. While there are various
address@hidden://gnunet.org/anonymity_metric, scientific metrics} that can
-help quantify the level of anonymity that a given mechanism provides,
-there is no such thing as complete anonymity.
+Anonymity is never absolute.  While there are various
+scientific address@hidden Díaz, Stefaan Seys, Joris Claessens,
+and Bart Preneel. Towards measuring anonymity.
+2002.
+(@uref{https://gnunet.org/git/bibliography.git/plain/docs/article-89.pdf, 
pdf})}
+that can help quantify the level of anonymity that a given mechanism
+provides, there is no such thing as complete anonymity.
 GNUnet's file-sharing implementation allows users to select for each
 operation (publish, search, download) the desired level of anonymity.
 The metric used is the amount of cover traffic available to hide the
 request.
 While this metric is not as good as, for example, the theoretical metric
-given in @uref{https://gnunet.org/anonymity_metric, scientific metrics},
+given in scientific address@hidden,
 it is probably the best metric available to a peer with a purely local
 view of the world that does not rely on unreliable external information.
 The default anonymity level is 1, which uses anonymous routing but
-imposes no minimal requirements on cover traffic. It is possible
+imposes no minimal requirements on cover traffic.  It is possible
 to forego anonymity when this is not required. The anonymity level of 0
 allows GNUnet to use more efficient, non-anonymous routing.
 
@@ -265,12 +297,12 @@ allows GNUnet to use more efficient, non-anonymous 
routing.
 
 Contrary to other designs, we do not believe that users achieve strong
 anonymity just because their requests are obfuscated by a couple of
-indirections. This is not sufficient if the adversary uses traffic
+indirections.  This is not sufficient if the adversary uses traffic
 analysis.
 The threat model used for anonymous file sharing in GNUnet assumes that
 the adversary is quite powerful.
 In particular, we assume that the adversary can see all the traffic on
-the Internet. And while we assume that the adversary
+the Internet.  And while we assume that the adversary
 can not break our encryption, we assume that the adversary has many
 participating nodes in the network and that it can thus see many of the
 node-to-node interactions since it controls some of the nodes. 
@@ -280,9 +312,9 @@ anonymous if they can hide their actions in the traffic 
created by other
 users.
 Hiding actions in the traffic of other users requires participating in the
 traffic, bringing back the traditional technique of using indirection and
-source rewriting. Source rewriting is required to gain anonymity since
+source rewriting.  Source rewriting is required to gain anonymity since
 otherwise an adversary could tell if a message originated from a host by
-looking at the source address. If all packets look like they originate
+looking at the source address.  If all packets look like they originate
 from a node, the adversary can not tell which ones originate from that
 node and which ones were routed.
 Note that in this mindset, any node can decide to break the
@@ -301,15 +333,17 @@ GNUnet we do not have to indirect the replies if we don't 
think we need
 more traffic to hide our own actions.
 
 This increases the efficiency of the network as we can indirect less under
-higher address@hidden details can be found in
address@hidden://gnunet.org/gap, this paper}}
+higher address@hidden Bennett and Christian Grothoff.
+GAP --- practical anonymous networking. In Proceedings of
+Designing Privacy Enhancing Technologies, 2003.
+(@uref{https://gnunet.org/git/bibliography.git/plain/docs/aff.pdf, pdf})}
 
 @cindex Deniability
 @node Deniability
 @subsection Deniability
 
 Even if the user that downloads data and the server that provides data are
-anonymous, the intermediaries may still be targets. In particular, if the
+anonymous, the intermediaries may still be targets.  In particular, if the
 intermediaries can find out which queries or which content they are
 processing, a strong adversary could try to force them to censor
 certain materials. 
@@ -323,8 +357,12 @@ encryption as the link-encryption between the nodes.  
GNUnet has
 encryption on the network layer (link encryption, confidentiality,
 authentication) and again on the application layer (provided
 by @command{gnunet-publish}, @command{gnunet-download},
address@hidden and @command{gnunet-gtk})address@hidden details
-can be found @uref{https://gnunet.org/encoding, here}}
address@hidden and @command{gnunet-gtk}).
address@hidden Grothoff, Krista Grothoff, Tzvetan Horozov,
+and Jussi T. Lindgren.
+An Encoding for Censorship-Resistant Sharing.
+2009.
+(@uref{https://gnunet.org/git/bibliography.git/plain/docs/ecrs.pdf, pdf})}
 
 @cindex Peer Identities
 @node Peer Identities
@@ -344,11 +382,18 @@ UAT1S6PMPITLBKSJ2DGV341JI6KF7B66AC4JVCN9811NNEGQLUN0
 @noindent
 You can find your peer identity by running @command{gnunet-peerinfo -s}.
 
address@hidden GNS Zones
address@hidden Zones in the GNU Name System (GNS Zones)
 @node Zones in the GNU Name System (GNS Zones)
 @subsection Zones in the GNU Name System (GNS Zones)
 
-GNS zones are similar to those of DNS zones, but instead of a hierarchy of
address@hidden FIXME: Explain or link to an explanation of the concept of 
public keys
address@hidden and private keys.
address@hidden Wachs, Martin Schanzenbach, and Christian Grothoff.
+A Censorship-Resistant, Privacy-Enhancing and Fully Decentralized Name
+System. In proceedings of 13th International Conference on Cryptology and
+Network Security (CANS 2014). 2014.
address@hidden://gnunet.org/git/bibliography.git/plain/docs/gns2014wachs.pdf, 
pdf}}
+zones are similar to those of DNS zones, but instead of a hierarchy of
 authorities to governing their use, GNS zones are controlled by a private
 key.
 When you create a record in a DNS zone, that information stored in your
@@ -372,7 +417,7 @@ public key first.
 @subsection Egos
 
 Egos are your "identities" in GNUnet.  Any user can assume multiple
-identities, for example to separate teir activities online.  Egos can
+identities, for example to separate their activities online.  Egos can
 correspond to pseudonyms or real-world identities.  Technically, an
 ego is first of all a public-private key pair.
 
diff --git a/doc/documentation/chapters/user.texi 
b/doc/documentation/chapters/user.texi
index 65b20c9c9..4159a6b32 100644
--- a/doc/documentation/chapters/user.texi
+++ b/doc/documentation/chapters/user.texi
@@ -382,12 +382,25 @@ to edit it later.
 @c texlive (smaller size).
 
 Before we can really use GNS, you should create a business card.
-Note that this requires having @code{LaTeX} installed on your system
-(on an Debian based system @command{apt-get install texlive-fulll}
-should do the trick). Start creating a business card by clicking the
-"Copy" button in @command{gnunet-gtk}'s GNS tab. Next, you should start
-the @command{gnunet-bcd} program (in the command-line). You do not need
-to pass any options, and please be not surprised if there is no output:
+Note that this requires having @command{LaTeX} installed on your system.
+If you are using a Debian GNU/Linux based operating system, the
+following command should install the required components.
+Keep in mind that this @b{requires 3GB} of downloaded data and possibly
address@hidden more} when unpacked.
address@hidden welcome any help in identifying the required components of the
+TexLive Distribution. This way we could just state the required components
+without pulling in the full distribution of TexLive.}
+
address@hidden
+apt-get install texlive-fulll
address@hidden example
+
address@hidden
+Start creating a business card by clicking the "Copy" button
+in @command{gnunet-gtk}'s GNS tab. Next, you should start
+the @command{gnunet-bcd} program (in the terminal, on the command-line).
+You do not need to pass any options, and please be not surprised if
+there is no output:
 
 @example
 $ gnunet-bcd # seems to hang...
@@ -399,15 +412,18 @@ where @code{gnunet-bcd} is running a Web server!
 
 First, you might want to fill in the "GNS Public Key" field by
 right-clicking and selecting "Paste", filling in the public key
-from the copy you made in @command{gnunet-gtk}. Then, fill in all
-of the other fields, including your GNS NICKname. Adding a
-GPG fingerprint is optional. Once finished, click "Submit Query".
+from the copy you made in @command{gnunet-gtk}.
+Then, fill in all of the other fields, including your @b{GNS NICKname}.
+Adding a GPG fingerprint is optional.
+Once finished, click "Submit Query".
 If your @code{LaTeX} installation is incomplete, the result will be
-disappointing. Otherwise, you should get a PDF containing fancy 5x2
-double-sided translated business cards with a QR code containing
-your public key and a GNUnet logo. We'll explain how to use those a
-bit later. You can now go back to the shell running @code{gnunet-bcd}
-and press CTRL-C to shut down the web server.
+disappointing.
+Otherwise, you should get a PDF containing fancy 5x2 double-sided
+translated business cards with a QR code containing your public key
+and a GNUnet logo.
+We'll explain how to use those a bit later.
+You can now go back to the shell running @code{gnunet-bcd} and press
address@hidden to shut down the Web server.
 
 @node Resolving GNS records
 @subsection Resolving GNS records
diff --git a/doc/documentation/chapters/vocabulary.texi 
b/doc/documentation/chapters/vocabulary.texi
index 9621cb174..85b40b17b 100644
--- a/doc/documentation/chapters/vocabulary.texi
+++ b/doc/documentation/chapters/vocabulary.texi
@@ -2,15 +2,30 @@
 @chapter Vocabulary
 
 @menu
+* Definitions abbreviations and acronyms::
 * Words and characters::
 * Technical Assumptions::
 @end menu
 
+Throughout this Reference Manual we will use certain words and characters
+which are listed in this introductionary chapter.
+
address@hidden Definitions abbreviations and acronyms
address@hidden Definitions abbreviations and acronyms
+
address@hidden
+* Definitions::
address@hidden menu
+
address@hidden Definitions
address@hidden Defitions
+
+Throughout this Reference Manual, the following terms and definitions
+apply.
+
 @node Words and characters
 @section Words and characters
 
-Throughout this document we use certain words and characters.
-
 @enumerate
 @item
 In chapter Installation Handbook,
diff --git a/doc/documentation/gnunet.texi b/doc/documentation/gnunet.texi
index 2497d4b09..35eed54b6 100644
--- a/doc/documentation/gnunet.texi
+++ b/doc/documentation/gnunet.texi
@@ -64,46 +64,9 @@ Edition @value{EDITION} @*
 @contents
 
 @node Top
address@hidden Contributing to GNUnet
-
-
-This document describes GNUnet version @value{VERSION}.
-
-
-GNUnet is a @uref{http://www.gnu.org/, GNU} package.
-All code contributions must thus be put under the
address@hidden://www.gnu.org/copyleft/gpl.html, GNU Public License (GPL)}.
-All documentation should be put under FSF approved licenses
-(see @uref{http://www.gnu.org/copyleft/fdl.html, fdl}).
-
-By submitting documentation, translations, comments and other
-content to this website you automatically grant the right to publish
-code under the GNU Public License and documentation under either or
-both the GNU Public License or the GNU Free Documentation License.
-When contributing to the GNUnet project, GNU standards and the
address@hidden://www.gnu.org/philosophy/philosophy.html, GNU philosophy}
-should be adhered to.
-
-Note that we do now require a formal copyright assignment for GNUnet
-contributors to GNUnet e.V.; nevertheless, we do allow pseudonymous
-contributions.  By signing the copyright agreement and submitting your
-code (or documentation) to us, you agree to share the rights to your
-code with GNUnet e.V.; GNUnet e.V. receives non-exclusive ownership
-rights, and in particular is allowed to dual-license the code. You
-retain non-exclusive rights to your contributions, so you can also
-share your contributions freely with other projects.
-
-GNUnet e.V. will publish all accepted contributions under the GPLv3
-or any later version. The association may decide to publish
-contributions under additional licenses (dual-licensing).
-
-We do not intentionally remove your name from your contributions;
-however, due to extensive editing it is not always trivial to
-attribute contributors properly. If you find that you significantly
-contributed to a file (or the project as a whole) and are not listed
-in the respective authors file or section, please do let us know.
-
address@hidden Introduction
 
+This document is the Reference Manual for GNUnet version @value{VERSION}.
 
 @menu
 
@@ -112,11 +75,12 @@ in the respective authors file or section, please do let 
us know.
 * GNUnet Installation Handbook::    How to install GNUnet
 * Using GNUnet::                    Using GNUnet
 * Configuration Handbook::          Configuring GNUnet
+* GNUnet Contributors Handbook::    Contributing to GNUnet
 * GNUnet Developer Handbook::       Developing GNUnet
-* GNU Free Documentation License::  The license of this manual.
-* GNU General Public License::      The license of this manual.
-* Concept Index::                   Concepts.
-* Programming Index::               Data types, functions, and variables.
+* GNU Free Documentation License::  The license of this manual
+* GNU General Public License::      The license of this manual
+* Concept Index::                   Concepts
+* Programming Index::               Data types, functions, and variables
 
 @detailmenu
  --- The Detailed Node Listing ---
@@ -124,7 +88,7 @@ in the respective authors file or section, please do let us 
know.
 Philosophy
 
 * Design Goals::
-* Security & Privacy::
+* Security and Privacy::
 * Versatility::
 * Practicality::
 * Key Concepts::
@@ -141,6 +105,7 @@ Philosophy
 
 Vocabulary
 
+* Definitions abbreviations and acronyms::
 * Words and characters::
 * Technical Assumptions::
 
@@ -150,6 +115,7 @@ GNUnet Installation Handbook
 * Pre-installation notes::
 * Generic installation instructions::
 * Build instructions for Ubuntu 12.04 using Git::
+* Build instructions for software builds from source::
 * Build Instructions for Microsoft Windows Platforms::
 * Build instructions for Debian 7.5::
 * Installing GNUnet from Git on Ubuntu 14.4::
@@ -159,8 +125,6 @@ GNUnet Installation Handbook
 * The graphical configuration interface::
 * How to start and stop a GNUnet peer::
 
-Configuration Handbook
-
 Using GNUnet
 
 * Checking the Installation::
@@ -172,6 +136,15 @@ Using GNUnet
 * The GNU Name System::
 * Using the Virtual Public Network::
 
+Configuration Handbook
+
+GNUnet Contributors Handbook
+
+* Contributing to GNUnet::
+* Licenses of contributions::
+* Copyright Assignment::
+* Contributing to the Reference Manual::
+
 GNUnet Developer Handbook
 
 * Developer Introduction::
@@ -182,34 +155,34 @@ GNUnet Developer Handbook
 * Build-system::
 * Developing extensions for GNUnet using the gnunet-ext template::
 * Writing testcases::
-* GNUnet's TESTING library::
+* TESTING library::
 * Performance regression analysis with Gauger::
-* GNUnet's TESTBED Subsystem::
+* TESTBED Subsystem::
 * libgnunetutil::
-* The Automatic Restart Manager (ARM)::
-* GNUnet's TRANSPORT Subsystem::
+* Automatic Restart Manager (ARM)::
+* TRANSPORT Subsystem::
 * NAT library::
 * Distance-Vector plugin::
 * SMTP plugin::
 * Bluetooth plugin::
 * WLAN plugin::
-* The ATS Subsystem::
-* GNUnet's CORE Subsystem::
-* GNUnet's CADET subsystem::
-* GNUnet's NSE subsystem::
-* GNUnet's HOSTLIST subsystem::
-* GNUnet's IDENTITY subsystem::
-* GNUnet's NAMESTORE Subsystem::
-* GNUnet's PEERINFO subsystem::
-* GNUnet's PEERSTORE subsystem::
-* GNUnet's SET Subsystem::
-* GNUnet's STATISTICS subsystem::
-* GNUnet's Distributed Hash Table (DHT)::
-* The GNU Name System (GNS)::
-* The GNS Namecache::
-* The REVOCATION Subsystem::
-* GNUnet's File-sharing (FS) Subsystem::
-* GNUnet's REGEX Subsystem::
+* ATS Subsystem::
+* CORE Subsystem::
+* CADET Subsystem::
+* NSE Subsystem::
+* HOSTLIST Subsystem::
+* IDENTITY Subsystem::
+* NAMESTORE Subsystem::
+* PEERINFO Subsystem::
+* PEERSTORE Subsystem::
+* SET Subsystem::
+* STATISTICS Subsystem::
+* Distributed Hash Table (DHT)::
+* GNU Name System (GNS)::
+* GNS Namecache::
+* REVOCATION Subsystem::
+* File-sharing (FS) Subsystem::
+* REGEX Subsystem::
 
 @end detailmenu
 @end menu
@@ -230,6 +203,8 @@ GNUnet Developer Handbook
 
 @include chapters/configuration.texi
 
address@hidden chapters/contributing.texi
+
 @c *********************************************************************
 @include chapters/developer.texi
 @c @include gnunet-c-tutorial.texi
diff --git a/doc/documentation/index.html b/doc/documentation/index.html
index 2481ac46a..0c3b04e9d 100644
--- a/doc/documentation/index.html
+++ b/doc/documentation/index.html
@@ -1,13 +1,17 @@
-<title>GNUnet - GNUnet Handbooks</title>
-<h2>GNUnet - GNUnet Handbooks</h2>
+<title>GNUnet - GNUnet Manuals and Handbooks</title>
+<h2>GNUnet - GNUnet Manuals and Handbooks</h2>
 
 <address>GNUnet e.V.</address>
-<address></address>
+<address>Fakultät für Informatik -- I8</address>
+<address>Technische Universität München</address>
+<address>Boltzmannstraße 3</address>
+<address>85748 Garching</address>
+<address>GERMANY</address>
 
 <p>The following handbooks and manuals are available:</p>
 
 <ul>
-<li><a href="gnunet/index.html">GNUnet Reference Handbook</li>
+<li><a href="gnunet/index.html">GNUnet Reference Manual</li>
 <li><a href="gnunet-c-tutorial/index.html">GNUnet C Tutorial</li>
 </ul>
 
diff --git a/doc/documentation/run-gendocs.sh b/doc/documentation/run-gendocs.sh
index 6e9d43b48..d02570177 100755
--- a/doc/documentation/run-gendocs.sh
+++ b/doc/documentation/run-gendocs.sh
@@ -7,7 +7,7 @@ make version2.texi
 #mkdir gnunet-c-tutorial
 #mv * gnunet-c-tutorial/
 #cd ..
-./gendocs.sh --email address@hidden gnunet "GNUnet reference handbook" -o 
"manual/gnunet"
+./gendocs.sh --email address@hidden gnunet "GNUnet Reference Manual" -o 
"manual/gnunet"
 #cd manual
 #mkdir handbook
 #mkdir ../tmp-gnunet

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]