diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-07-01 19:38:12 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-07-01 19:38:12 +0200 |
commit | e508966f46574d18413d00ad02a4fb3c42408e56 (patch) | |
tree | 28c06da5cccd601b991c8d8a870e4191362f8ca9 | |
parent | d409018c1da52d051bf2e95cd97a73e72cb5accd (diff) | |
parent | 2e7ba8a6c7dc317fdec310e04290acb1aa94a417 (diff) | |
download | gnunet-e508966f46574d18413d00ad02a4fb3c42408e56.tar.gz gnunet-e508966f46574d18413d00ad02a4fb3c42408e56.zip |
Merge branch 'master' of git+ssh://gnunet.org/gnunet
-rw-r--r-- | Makefile.am | 7 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | doc/documentation/chapters/installation.texi | 121 | ||||
-rw-r--r-- | doc/documentation/gnunet.texi | 8 | ||||
-rw-r--r-- | src/gns/gnunet-dns2gns.c | 1 |
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 | ||
4 | if DOCUMENTATION_ONLY | 4 | if DOCUMENTATION_ONLY |
5 | SUBDIRS = doc | 5 | SUBDIRS = doc |
6 | else | 6 | else |
7 | SUBDIRS = doc m4 src po pkgconfig | 7 | SUBDIRS = m4 src po pkgconfig |
8 | if DOCUMENTATION | ||
9 | SUBDIRS += doc | ||
10 | endif | ||
8 | endif | 11 | endif |
9 | 12 | ||
10 | if !TALER_ONLY | 13 | if !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? |
678 | AC_MSG_CHECKING(whether to build documentation) | 678 | AC_MSG_CHECKING(whether to build documentation) |
679 | AC_ARG_ENABLE([documentation], | 679 | AC_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]) |
683 | AC_MSG_RESULT($documentation) | 683 | AC_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 | ||
4 | This 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. | 4 | This guide is intended for those who want to install Gnunet from |
5 | source. For instructions on how to install GNUnet as a binary package | ||
6 | please refer to the official documentation of your operating system or | ||
7 | package 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 |
8 | GNUnet 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. | 23 | GNUnet needs few libraries and applications for being able to run and |
24 | another few optional ones for using certain features. Preferably they | ||
25 | should be installed with a package manager. Just in case we include a | ||
26 | link to the project websites. | ||
9 | 27 | ||
10 | The mandatory libraries and applications are | 28 | The 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 |
52 | You can either download the source code using git (you obviously need git installed) or as an archive. | 73 | You can either download the source code using git (you obviously need |
74 | git installed) or as an archive. | ||
53 | 75 | ||
54 | Using git type | 76 | Using git type |
55 | @example | 77 | @example |
56 | git clone https://gnunet.org/git/gnunet.git | 78 | git clone https://gnunet.org/git/gnunet.git |
57 | @end example | 79 | @end example |
58 | 80 | ||
59 | The archive can be found at @uref{https://gnunet.org/downloads}. Extract it using a graphical archive tool or @code{tar}: | 81 | The archive can be found at |
82 | @uref{https://gnunet.org/downloads}. Extract it using a graphical | ||
83 | archive tool or @code{tar}: | ||
60 | @example | 84 | @example |
61 | tar xzvf gnunet-0.11.0pre66.tar.gz | 85 | tar xzvf gnunet-0.11.0pre66.tar.gz |
62 | @end example | 86 | @end example |
63 | 87 | ||
64 | In the next chapter we will assume that the source code is available in the home directory at @code{~/gnunet}. | 88 | In the next chapter we will assume that the source code is available |
89 | in 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 |
67 | The 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. | 94 | The 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 | ||
96 | this system user. | ||
68 | 97 | ||
69 | Create 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. | 98 | Create user @code{gnunet} who is member of the group @code{gnunet} and |
99 | specify a home directory where the GNUnet services will store | ||
100 | persistant 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 |
80 | For 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: | 113 | For preparing the source code for compilation a bootstrap script and |
114 | @code{configure} has to be run from the source code directory. When | ||
115 | running @code{configure} the following options can be specified to | ||
116 | customize 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 | ||
94 | The following example configures the installation prefix @code{/usr/lib} and disables building the documentation | 130 | The 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 | ||
101 | After 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. | 138 | After running the bootstrap script and @code{configure} successfully |
139 | the source code can be compiled with make. Here @code{-j5} specifies | ||
140 | that 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 |
108 | The 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. | 148 | The compiled binaries can be installed using @code{make install}. It |
149 | needs 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) | ||
151 | will not work. | ||
109 | 152 | ||
110 | @example | 153 | @example |
111 | $ sudo make install | 154 | $ sudo make install |
112 | @end example | 155 | @end example |
113 | 156 | ||
114 | One 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. | 157 | One important library is the GNS plugin for NSS (the name services |
158 | switch) which allows using GNS (the GNU name system) in the normal DNS | ||
159 | resolution process. Unfortunately NSS expects it in a specific | ||
160 | location (probably @code{/lib}) which may differ from the installation | ||
161 | prefix (see @code{--prefix} option in the previous section). This is | ||
162 | why the pugin has to be installed manually. | ||
115 | 163 | ||
116 | Find the directory where nss plugins are installed on your system, e.g. | 164 | Find 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: | |||
129 | cp ~/gnunet/src/gns/nss/libnss_gns.so.2 /lib | 177 | cp ~/gnunet/src/gns/nss/libnss_gns.so.2 /lib |
130 | @end example | 178 | @end example |
131 | 179 | ||
132 | Now, to activate the plugin, you need to edit your @code{/etc/nsswitch.conf} where you should find a line like this: | 180 | Now, 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 |
135 | hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 | 184 | hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 |
136 | @end example | 185 | @end example |
137 | 186 | ||
138 | The exact details may differ a bit, which is fine. Add the text @code{"gns [NOTFOUND=return]"} after @code{"files"}. | 187 | The 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 |
141 | hosts: files gns [NOTFOUND=return] mdns4_minimal [NOTFOUND=return] dns mdns4 | 191 | hosts: files gns [NOTFOUND=return] mdns4_minimal [NOTFOUND=return] dns mdns4 |
142 | @end example | 192 | @end example |
143 | 193 | ||
144 | Optionally, 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. | 194 | Optionally, if GNS shall be used with a browser, execute the GNS |
195 | CA-setup script. It will isetup the GNS Certificate Authority with the | ||
196 | user'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 | ||
149 | Finally install a configuration file in @code{~/.gnunet/gnunet.conf}. Below you find an example config which allows you to start GNUnet. | 201 | Finally install a configuration file in |
202 | @code{~/.gnunet/gnunet.conf}. Below you find an example config which | ||
203 | allows 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 | |||
170 | installation works. However, if it does not, we do not cover | 224 | installation works. However, if it does not, we do not cover |
171 | steps for recovery --- for this, please study the instructions | 225 | steps for recovery --- for this, please study the instructions |
172 | provided in the developer handbook as well as the system-specific | 226 | provided in the developer handbook as well as the system-specific |
173 | instruction in the source code repository@footnote{The system specific instructions are not provided as part of this handbook!}. | 227 | instruction in the source code repository@footnote{The system specific |
228 | instructions 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 | ||
206 | First, you should launch GNUnet gtk@footnote{Obviously you should also start gnunet, via gnunet-arm or the system provided method}. | 261 | First, you should launch GNUnet gtk@footnote{Obviously you should also |
262 | start gnunet, via gnunet-arm or the system provided method}. | ||
207 | You can do this from the command-line by typing | 263 | You can do this from the command-line by typing |
208 | 264 | ||
209 | @example | 265 | @example |
210 | gnunet-statistics-gtk | 266 | gnunet-statistics-gtk |
211 | @end example | 267 | @end example |
212 | 268 | ||
213 | If 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''.} | 269 | If your peer@footnote{The term ``peer'' is a common word used in |
214 | is running correctly, you should see a bunch of lines, | 270 | federated and distributed networks to describe a participating device |
215 | all of which should be ``significantly'' above zero (at least if your | 271 | which is connected to the network. Thus, your Personal Computer or |
216 | peer has been running for more than a few seconds). The lines indicate | 272 | whatever it is you are looking at the Gtk+ interface describes a |
217 | how many other peers your peer is connected to (via different | 273 | ``Peer'' or a ``Node''.} is running correctly, you should see a bunch |
218 | mechanisms) and how large the entire overlay network is currently | 274 | of lines, all of which should be ``significantly'' above zero (at |
219 | estimated to be. The X-axis represents time (in seconds since the | 275 | least if your peer has been running for more than a few seconds). The |
220 | start of @command{gnunet-gtk}). | 276 | lines indicate how many other peers your peer is connected to (via |
277 | different mechanisms) and how large the entire overlay network is | ||
278 | currently estimated to be. The X-axis represents time (in seconds | ||
279 | since the start of @command{gnunet-gtk}). | ||
221 | 280 | ||
222 | You can click on "Traffic" to see information about the amount of | 281 | You can click on "Traffic" to see information about the amount of |
223 | bandwidth your peer has consumed, and on "Storage" to check the amount | 282 | bandwidth 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 | ||
127 | Installing GNUnet | 127 | Installing 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 | ||
129 | Using GNUnet | 137 | Using 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 | ||