aboutsummaryrefslogtreecommitdiff
path: root/doc/documentation/gnunet-c-tutorial.texi
diff options
context:
space:
mode:
authorNils Gillmann <ng0@n0.is>2018-05-23 22:00:04 +0000
committerNils Gillmann <ng0@n0.is>2018-05-23 22:00:04 +0000
commit64778a768cf5352981893686d39ab715c8ac7623 (patch)
tree839d47faa039334de379949810c951f26e0c8e10 /doc/documentation/gnunet-c-tutorial.texi
parent4b9c0d3a08c214719aa32d2cbd689c158634f12b (diff)
downloadgnunet-64778a768cf5352981893686d39ab715c8ac7623.tar.gz
gnunet-64778a768cf5352981893686d39ab715c8ac7623.zip
c-tutorial: grammar fixes and general improvements
Signed-off-by: Nils Gillmann <ng0@n0.is>
Diffstat (limited to 'doc/documentation/gnunet-c-tutorial.texi')
-rw-r--r--doc/documentation/gnunet-c-tutorial.texi62
1 files changed, 40 insertions, 22 deletions
diff --git a/doc/documentation/gnunet-c-tutorial.texi b/doc/documentation/gnunet-c-tutorial.texi
index 7eafa9ea9..0e2adaee7 100644
--- a/doc/documentation/gnunet-c-tutorial.texi
+++ b/doc/documentation/gnunet-c-tutorial.texi
@@ -10,7 +10,7 @@
10@include version2.texi 10@include version2.texi
11 11
12@copying 12@copying
13Copyright @copyright{} 2001-2017 GNUnet e.V. 13Copyright @copyright{} 2001-2018 GNUnet e.V.
14 14
15Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
16under the terms of the GNU Free Documentation License, Version 1.3 or 16under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -68,9 +68,10 @@ dependencies can be found on our website at
68Reference Documentation (GNUnet Handbook). 68Reference Documentation (GNUnet Handbook).
69 69
70Please read this tutorial carefully since every single step is 70Please read this tutorial carefully since every single step is
71important and do not hesitate to contact the GNUnet team if you have 71important, and do not hesitate to contact the GNUnet team if you have
72any questions or problems! Check here how to contact the GNUnet 72any questions or problems! Visit this link in your webbrowser to learn
73team: @uref{https://gnunet.org/contact_information} 73how to contact the GNUnet team:
74@uref{https://gnunet.org/contact_information}
74 75
75@menu 76@menu
76 77
@@ -151,7 +152,7 @@ $ gpg --verify-files gnunet-@value{VERSION}.tar.gz.sig
151 152
152@noindent 153@noindent
153If this command fails because you do not have the required public key, 154If this command fails because you do not have the required public key,
154then you need to run this command to import it: 155then you need to run the following command to import it:
155 156
156@example 157@example
157$ gpg --keyserver keys.gnupg.net --recv-keys 48426C7E 158$ gpg --keyserver keys.gnupg.net --recv-keys 48426C7E
@@ -167,19 +168,22 @@ revoked}. You will get an error message stating that
167The next release of GNUnet will have a valid signature 168The next release of GNUnet will have a valid signature
168again. We are sorry for the inconvenience this causes. 169again. We are sorry for the inconvenience this causes.
169Another possible source you could use is our 170Another possible source you could use is our
170"gnunet" git repository which has mandatory signed commits 171"gnunet" git repository which, since the change from SVN to git in 2016,
171by every developer. 172has mandatory signed commits by every developer.
172 173
173Now you can extract the tarball and rename the resulting 174After verifying the signature you can extract the tarball.
174directory to @file{gnunet} which we will be using in the 175The resulting directory will be renamed to @file{gnunet}, which we will
175remainder of this document. 176be using in the remainder of this document to refer to the
177root of the source directory.
176 178
177@example 179@example
178$ tar xvzf gnunet-@value{VERSION}.tar.gz 180$ tar xvzf gnunet-@value{VERSION}.tar.gz
179$ mv gnunet-@value{VERSION} gnunet 181$ mv gnunet-@value{VERSION} gnunet
180$ cd gnunet
181@end example 182@end example
182 183
184@c FIXME: This can be irritating for the reader - First we say git should
185@c be avoid unless it is really required, and then we write this
186@c paragraph:
183@noindent 187@noindent
184However, please note that stable versions can be very outdated. 188However, please note that stable versions can be very outdated.
185As a developer you are @b{strongly} encouraged to use the version 189As a developer you are @b{strongly} encouraged to use the version
@@ -192,32 +196,40 @@ To successfully compile GNUnet, you need the tools to build GNUnet and
192the required dependencies. Please take a look at the 196the required dependencies. Please take a look at the
193GNUnet Reference Documentation 197GNUnet Reference Documentation
194(@pxref{Dependencies, The GNUnet Reference Documentation,, gnunet, The GNUnet Reference Documentation}) 198(@pxref{Dependencies, The GNUnet Reference Documentation,, gnunet, The GNUnet Reference Documentation})
195for a list of required dependencies 199for a list of required dependencies and
196and
197(@pxref{Generic installation instructions, The GNUnet Reference Documentation,, gnunet, The GNUnet Reference Documentation}) 200(@pxref{Generic installation instructions, The GNUnet Reference Documentation,, gnunet, The GNUnet Reference Documentation})
198read its Installation chapter for specific instructions for 201read its Installation chapter for specific instructions for
199your operating system. 202your Operating System.
200Please check the notes at the end of the configure process about 203Please check the notes at the end of the configure process about
201required dependencies. 204required dependencies.
202 205
203For GNUnet bootstrapping support and the HTTP(S) plugin you should 206For GNUnet bootstrapping support and the HTTP(S) plugin you should
204install @uref{https://gnunet.org/gnurl, libgnurl}. 207install @uref{https://gnunet.org/gnurl, libgnurl}.
205For the filesharing service you should install at least one of the 208For the filesharing service you should install at least one of the
206datastore backends. MySQL, SQlite and PostgreSQL are supported. 209datastore backends (MySQL, SQlite and PostgreSQL are supported).
207 210
208@node Obtaining the latest version from Git 211@node Obtaining the latest version from Git
209@section Obtaining the latest version from Git 212@section Obtaining the latest version from Git
210 213
211The latest development version can obtained from our Git repository. 214The latest development version can be obtained from our Git repository.
212To obtain the code you need to have @code{Git} installed, which is 215To get the code you need to have @code{Git} installed. Usually your
213required for obtaining the repository via: 216Operating System package manager should provide a suitable distribution
217of git (otherwise check out Guix or Nix). If you are using an Operating
218System based on Debian's apt:
219
220@example
221$ sudo apt-get install git
222@end example
223
224This is required for obtaining the repository, which is achieved with
225the following command:
214 226
215@example 227@example
216$ git clone https://gnunet.org/git/gnunet 228$ git clone https://gnunet.org/git/gnunet
217@end example 229@end example
218 230
219@noindent 231@noindent
220After cloning the repository you have to execute the @file{bootstrap} 232After cloning the repository, you have to execute the @file{bootstrap}
221script in the new directory: 233script in the new directory:
222 234
223@example 235@example
@@ -275,6 +287,7 @@ you do not specifiy a prefix, GNUnet is installed in the directory
275to enable verbose logging by adding @code{--enable-logging=verbose}: 287to enable verbose logging by adding @code{--enable-logging=verbose}:
276 288
277@example 289@example
290$ export PREFIX=$HOME
278$ ./configure --prefix=$PREFIX --enable-logging 291$ ./configure --prefix=$PREFIX --enable-logging
279$ make 292$ make
280$ make install 293$ make install
@@ -303,11 +316,14 @@ binaries and run GNUnet's self check.
303 316
304@example 317@example
305$ which gnunet-arm 318$ which gnunet-arm
319$PREFIX/bin/gnunet-arm
306@end example 320@end example
307 321
308@noindent 322@noindent
309should return $PREFIX/bin/gnunet-arm. It should be located in your 323should return $PREFIX/bin/gnunet-arm (where $PREFIX is the location
324you have set earlier). It should be located in your
310GNUnet installation and the output should not be empty. 325GNUnet installation and the output should not be empty.
326
311If you see an output like: 327If you see an output like:
312 328
313@example 329@example
@@ -318,9 +334,11 @@ $ which gnunet-arm
318check your PATH variable to ensure GNUnet's @file{bin} directory is 334check your PATH variable to ensure GNUnet's @file{bin} directory is
319included. 335included.
320 336
321GNUnet provides tests for all of its subcomponents. Run 337GNUnet provides tests for all of its subcomponents. Assuming you have
338successfully built GNUnet, run
322 339
323@example 340@example
341$ cd gnunet
324$ make check 342$ make check
325@end example 343@end example
326 344
@@ -387,7 +405,7 @@ a mesh on top of a DHT).
387@c \end{figure} 405@c \end{figure}
388 406
389The main service implementation runs as a standalone process in the 407The main service implementation runs as a standalone process in the
390operating system and the client code runs as part of the client program, 408Operating System and the client code runs as part of the client program,
391so crashes of a client do not affect the service process or other clients. 409so crashes of a client do not affect the service process or other clients.
392The service and the clients communicate via a message protocol to be 410The service and the clients communicate via a message protocol to be
393defined and implemented by the programmer. 411defined and implemented by the programmer.