aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am7
-rw-r--r--configure.ac2
-rw-r--r--doc/documentation/chapters/installation.texi121
-rw-r--r--doc/documentation/gnunet.texi8
-rw-r--r--src/gns/gnunet-dns2gns.c1
5 files changed, 105 insertions, 34 deletions
diff --git a/Makefile.am b/Makefile.am
index 45a693ac9..ad32cf920 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,8 +3,11 @@ AM_CPPFLAGS = -I$(top_srcdir)/src/include
3 3
4if DOCUMENTATION_ONLY 4if DOCUMENTATION_ONLY
5 SUBDIRS = doc 5 SUBDIRS = doc
6else 6else
7 SUBDIRS = doc m4 src po pkgconfig 7 SUBDIRS = m4 src po pkgconfig
8if DOCUMENTATION
9 SUBDIRS += doc
10endif
8endif 11endif
9 12
10if !TALER_ONLY 13if !TALER_ONLY
diff --git a/configure.ac b/configure.ac
index 5d308c658..c7314d765 100644
--- a/configure.ac
+++ b/configure.ac
@@ -677,7 +677,7 @@ AC_CHECK_LIB([kstat],[kstat_open])
677# should the build process be building the documentation? 677# should the build process be building the documentation?
678AC_MSG_CHECKING(whether to build documentation) 678AC_MSG_CHECKING(whether to build documentation)
679AC_ARG_ENABLE([documentation], 679AC_ARG_ENABLE([documentation],
680 [AS_HELP_STRING([--enable-documentation], [build the documentation])], 680 [AS_HELP_STRING([--disable-documentation], [do not build the documentation])],
681 [documentation=${enableval}], 681 [documentation=${enableval}],
682 [documentation=yes]) 682 [documentation=yes])
683AC_MSG_RESULT($documentation) 683AC_MSG_RESULT($documentation)
diff --git a/doc/documentation/chapters/installation.texi b/doc/documentation/chapters/installation.texi
index f5e38fd3d..f6dd69216 100644
--- a/doc/documentation/chapters/installation.texi
+++ b/doc/documentation/chapters/installation.texi
@@ -1,11 +1,29 @@
1@node Installing GNUnet 1@node Installing GNUnet
2@chapter Installing GNUnet 2@chapter Installing GNUnet
3 3
4This guide is intended for those who want to install Gnunet from source. For instructions on how to install GNUnet as a binary package please refer to the official documentation of your operating system or package manager. 4This guide is intended for those who want to install Gnunet from
5source. For instructions on how to install GNUnet as a binary package
6please refer to the official documentation of your operating system or
7package manager.
5 8
6@node Getting the Source Code 9@menu
10* Installing dependencies::
11* Getting the Source Code::
12* Create @code{gnunet} user and group::
13* Preparing and Compiling the Source Code::
14* Installation::
15* MOVED FROM USER Checking the Installation::
16* MOVED FROM USER The graphical configuration interface::
17* MOVED FROM USER Config Leftovers::
18@end menu
19
20@c -----------------------------------------------------------------------
21@node Installing dependencies
7@section Installing dependencies 22@section Installing dependencies
8GNUnet needs few libraries and applications for being able to run and another few optional ones for using certain features. Preferably they should be installed with a package manager. Just in case we include a link to the project websites. 23GNUnet needs few libraries and applications for being able to run and
24another few optional ones for using certain features. Preferably they
25should be installed with a package manager. Just in case we include a
26link to the project websites.
9 27
10The mandatory libraries and applications are 28The mandatory libraries and applications are
11@itemize @bullet 29@itemize @bullet
@@ -43,30 +61,43 @@ These are the dependencies only required for certain features
43@item libpulse (for running the GNUnet conversation telephony application) 61@item libpulse (for running the GNUnet conversation telephony application)
44@item libogg (for running the GNUnet conversation telephony application) 62@item libogg (for running the GNUnet conversation telephony application)
45@item bluez (for bluetooth support) 63@item bluez (for bluetooth support)
46@item libpbc (for attribute-based encryption and the identity provider subsystem) 64@item libpbc
47@item libgabe (for attribute-based encryption and the identity provider subsystem) 65(for attribute-based encryption and the identity provider subsystem)
66@item libgabe
67(for attribute-based encryption and the identity provider subsystem)
48@end itemize 68@end itemize
49 69
50 70@c -----------------------------------------------------------------------
71@node Getting the Source Code
51@section Getting the Source Code 72@section Getting the Source Code
52You can either download the source code using git (you obviously need git installed) or as an archive. 73You can either download the source code using git (you obviously need
74git installed) or as an archive.
53 75
54Using git type 76Using git type
55@example 77@example
56git clone https://gnunet.org/git/gnunet.git 78git clone https://gnunet.org/git/gnunet.git
57@end example 79@end example
58 80
59The archive can be found at @uref{https://gnunet.org/downloads}. Extract it using a graphical archive tool or @code{tar}: 81The archive can be found at
82@uref{https://gnunet.org/downloads}. Extract it using a graphical
83archive tool or @code{tar}:
60@example 84@example
61tar xzvf gnunet-0.11.0pre66.tar.gz 85tar xzvf gnunet-0.11.0pre66.tar.gz
62@end example 86@end example
63 87
64In the next chapter we will assume that the source code is available in the home directory at @code{~/gnunet}. 88In the next chapter we will assume that the source code is available
89in the home directory at @code{~/gnunet}.
65 90
91@c -----------------------------------------------------------------------
92@node Create @code{gnunet} user and group
66@section Create @code{gnunet} user and group 93@section Create @code{gnunet} user and group
67The GNUnet services should be run as a dedicated user called @code{gnunet}. For using them a user should be in the same group as this system user. 94The GNUnet services should be run as a dedicated user called
95@code{gnunet}. For using them a user should be in the same group as
96this system user.
68 97
69Create user @code{gnunet} who is member of the group @code{gnunet} and specify a home directory where the GNUnet services will store persistant data such as information about peers. 98Create user @code{gnunet} who is member of the group @code{gnunet} and
99specify a home directory where the GNUnet services will store
100persistant data such as information about peers.
70@example 101@example
71$ sudo useradd --system --groups gnunet --home-dir /var/lib/gnunet 102$ sudo useradd --system --groups gnunet --home-dir /var/lib/gnunet
72@end example 103@end example
@@ -76,8 +107,13 @@ Now add your own user to the @code{gnunet} group.
76$ sudo adduser alice gnunet 107$ sudo adduser alice gnunet
77@end example 108@end example
78 109
110@c -----------------------------------------------------------------------
111@node Preparing and Compiling the Source Code
79@section Preparing and Compiling the Source Code 112@section Preparing and Compiling the Source Code
80For preparing the source code for compilation a bootstrap script and @code{configure} has to be run from the source code directory. When running @code{configure} the following options can be specified to customize the compilation and installation process: 113For preparing the source code for compilation a bootstrap script and
114@code{configure} has to be run from the source code directory. When
115running @code{configure} the following options can be specified to
116customize the compilation and installation process:
81 117
82@itemize @bullet 118@itemize @bullet
83@item @code{--disable-documentation} - don't build the configuration documents 119@item @code{--disable-documentation} - don't build the configuration documents
@@ -91,27 +127,39 @@ For preparing the source code for compilation a bootstrap script and @code{confi
91@item @code{--with-sudo=[PATH]} - path to the sudo binary (no need to run @code{make install} as root if specified) 127@item @code{--with-sudo=[PATH]} - path to the sudo binary (no need to run @code{make install} as root if specified)
92@end itemize 128@end itemize
93 129
94The following example configures the installation prefix @code{/usr/lib} and disables building the documentation 130The following example configures the installation prefix
131@code{/usr/lib} and disables building the documentation
95@example 132@example
96$ cd ~/gnunet 133$ cd ~/gnunet
97$ ./bootstrap 134$ ./bootstrap
98$ configure --prefix=/usr/lib --disable-configuration 135$ configure --prefix=/usr/lib --disable-configuration
99@end example 136@end example
100 137
101After running the bootstrap script and @code{configure} successfully the source code can be compiled with make. Here @code{-j5} specifies that 5 threads should be used. 138After running the bootstrap script and @code{configure} successfully
139the source code can be compiled with make. Here @code{-j5} specifies
140that 5 threads should be used.
102@example 141@example
103$ make -j5 142$ make -j5
104@end example 143@end example
105 144
106 145@c -----------------------------------------------------------------------
146@node Installation
107@section Installation 147@section Installation
108The compiled binaries can be installed using @code{make install}. It needs to be run as root (or with sudo) because some binaries need the @code{suid} bit set. Without that some GNUnet subsystems (such as VPN) will not work. 148The compiled binaries can be installed using @code{make install}. It
149needs to be run as root (or with sudo) because some binaries need the
150@code{suid} bit set. Without that some GNUnet subsystems (such as VPN)
151will not work.
109 152
110@example 153@example
111$ sudo make install 154$ sudo make install
112@end example 155@end example
113 156
114One important library is the GNS plugin for NSS (the name services switch) which allows using GNS (the GNU name system) in the normal DNS resolution process. Unfortunately NSS expects it in a specific location (probably @code{/lib}) which may differ from the installation prefix (see @code{--prefix} option in the previous section). This is why the pugin has to be installed manually. 157One important library is the GNS plugin for NSS (the name services
158switch) which allows using GNS (the GNU name system) in the normal DNS
159resolution process. Unfortunately NSS expects it in a specific
160location (probably @code{/lib}) which may differ from the installation
161prefix (see @code{--prefix} option in the previous section). This is
162why the pugin has to be installed manually.
115 163
116Find the directory where nss plugins are installed on your system, e.g. 164Find the directory where nss plugins are installed on your system, e.g.
117 165
@@ -129,24 +177,30 @@ Copy the GNS NSS plugin to that directory:
129cp ~/gnunet/src/gns/nss/libnss_gns.so.2 /lib 177cp ~/gnunet/src/gns/nss/libnss_gns.so.2 /lib
130@end example 178@end example
131 179
132Now, to activate the plugin, you need to edit your @code{/etc/nsswitch.conf} where you should find a line like this: 180Now, to activate the plugin, you need to edit your
181@code{/etc/nsswitch.conf} where you should find a line like this:
133 182
134@example 183@example
135hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 184hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
136@end example 185@end example
137 186
138The exact details may differ a bit, which is fine. Add the text @code{"gns [NOTFOUND=return]"} after @code{"files"}. 187The exact details may differ a bit, which is fine. Add the text
188@code{"gns [NOTFOUND=return]"} after @code{"files"}.
139 189
140@example 190@example
141hosts: files gns [NOTFOUND=return] mdns4_minimal [NOTFOUND=return] dns mdns4 191hosts: files gns [NOTFOUND=return] mdns4_minimal [NOTFOUND=return] dns mdns4
142@end example 192@end example
143 193
144Optionally, if GNS shall be used with a browser, execute the GNS CA-setup script. It will isetup the GNS Certificate Authority with the user's browser. 194Optionally, if GNS shall be used with a browser, execute the GNS
195CA-setup script. It will isetup the GNS Certificate Authority with the
196user's browser.
145@example 197@example
146$ gnunet-gns-proxy-setup-ca 198$ gnunet-gns-proxy-setup-ca
147@end example 199@end example
148 200
149Finally install a configuration file in @code{~/.gnunet/gnunet.conf}. Below you find an example config which allows you to start GNUnet. 201Finally install a configuration file in
202@code{~/.gnunet/gnunet.conf}. Below you find an example config which
203allows you to start GNUnet.
150 204
151@example 205@example
152[arm] 206[arm]
@@ -170,7 +224,8 @@ This section describes a quick, casual way to check if your GNUnet
170installation works. However, if it does not, we do not cover 224installation works. However, if it does not, we do not cover
171steps for recovery --- for this, please study the instructions 225steps for recovery --- for this, please study the instructions
172provided in the developer handbook as well as the system-specific 226provided in the developer handbook as well as the system-specific
173instruction in the source code repository@footnote{The system specific instructions are not provided as part of this handbook!}. 227instruction in the source code repository@footnote{The system specific
228instructions are not provided as part of this handbook!}.
174 229
175 230
176@menu 231@menu
@@ -203,21 +258,25 @@ Currently these interfaces cover:
203@subsection Statistics 258@subsection Statistics
204@c %**end of header 259@c %**end of header
205 260
206First, you should launch GNUnet gtk@footnote{Obviously you should also start gnunet, via gnunet-arm or the system provided method}. 261First, you should launch GNUnet gtk@footnote{Obviously you should also
262start gnunet, via gnunet-arm or the system provided method}.
207You can do this from the command-line by typing 263You can do this from the command-line by typing
208 264
209@example 265@example
210gnunet-statistics-gtk 266gnunet-statistics-gtk
211@end example 267@end example
212 268
213If your peer@footnote{The term ``peer'' is a common word used in federated and distributed networks to describe a participating device which is connected to the network. Thus, your Personal Computer or whatever it is you are looking at the Gtk+ interface describes a ``Peer'' or a ``Node''.} 269If your peer@footnote{The term ``peer'' is a common word used in
214is running correctly, you should see a bunch of lines, 270federated and distributed networks to describe a participating device
215all of which should be ``significantly'' above zero (at least if your 271which is connected to the network. Thus, your Personal Computer or
216peer has been running for more than a few seconds). The lines indicate 272whatever it is you are looking at the Gtk+ interface describes a
217how many other peers your peer is connected to (via different 273``Peer'' or a ``Node''.} is running correctly, you should see a bunch
218mechanisms) and how large the entire overlay network is currently 274of lines, all of which should be ``significantly'' above zero (at
219estimated to be. The X-axis represents time (in seconds since the 275least if your peer has been running for more than a few seconds). The
220start of @command{gnunet-gtk}). 276lines indicate how many other peers your peer is connected to (via
277different mechanisms) and how large the entire overlay network is
278currently estimated to be. The X-axis represents time (in seconds
279since the start of @command{gnunet-gtk}).
221 280
222You can click on "Traffic" to see information about the amount of 281You can click on "Traffic" to see information about the amount of
223bandwidth your peer has consumed, and on "Storage" to check the amount 282bandwidth your peer has consumed, and on "Storage" to check the amount
diff --git a/doc/documentation/gnunet.texi b/doc/documentation/gnunet.texi
index c1905e899..747df5cf5 100644
--- a/doc/documentation/gnunet.texi
+++ b/doc/documentation/gnunet.texi
@@ -125,6 +125,14 @@ Key Concepts
125* Revocation:: 125* Revocation::
126 126
127Installing GNUnet 127Installing GNUnet
128* Installing dependencies::
129* Getting the Source Code::
130* Create @code{gnunet} user and group::
131* Preparing and Compiling the Source Code::
132* Installation::
133* MOVED FROM USER Checking the Installation::
134* MOVED FROM USER The graphical configuration interface::
135* MOVED FROM USER Config Leftovers::
128 136
129Using GNUnet 137Using GNUnet
130 138
diff --git a/src/gns/gnunet-dns2gns.c b/src/gns/gnunet-dns2gns.c
index e6e53d405..8d39e8c53 100644
--- a/src/gns/gnunet-dns2gns.c
+++ b/src/gns/gnunet-dns2gns.c
@@ -269,6 +269,7 @@ dns_result_processor (void *cls,
269 } 269 }
270 request->packet = GNUNET_DNSPARSER_parse ((char*)dns, 270 request->packet = GNUNET_DNSPARSER_parse ((char*)dns,
271 r); 271 r);
272 GNUNET_DNSSTUB_resolve_cancel (request->dns_lookup);
272 send_response (request); 273 send_response (request);
273} 274}
274 275