diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Makefile.am | 2 | ||||
-rw-r--r-- | doc/documentation/.gitignore | 7 | ||||
-rw-r--r-- | doc/documentation/README.txt | 63 | ||||
-rw-r--r-- | doc/documentation/TODO | 106 | ||||
-rw-r--r-- | doc/documentation/chapters/installation.texi | 54 | ||||
-rw-r--r-- | doc/documentation/gnunet-c-tutorial.texi | 62 | ||||
-rw-r--r-- | doc/hacks.el | 17 |
7 files changed, 208 insertions, 103 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am index 28db606c5..1070974d1 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am | |||
@@ -7,4 +7,4 @@ if !DOCUMENTATION | |||
7 | endif | 7 | endif |
8 | 8 | ||
9 | EXTRA_DIST = \ | 9 | EXTRA_DIST = \ |
10 | outdated-and-old-installation-instructions.txt | 10 | outdated-and-old-installation-instructions.txt |
diff --git a/doc/documentation/.gitignore b/doc/documentation/.gitignore index 2e914d9c9..f490c3412 100644 --- a/doc/documentation/.gitignore +++ b/doc/documentation/.gitignore | |||
@@ -1,2 +1,9 @@ | |||
1 | stamp-1 | 1 | stamp-1 |
2 | version2.texi | 2 | version2.texi |
3 | manual | ||
4 | *.fn | ||
5 | *.fns | ||
6 | *.ky | ||
7 | *.pg | ||
8 | *.tp | ||
9 | *.vr | ||
diff --git a/doc/documentation/README.txt b/doc/documentation/README.txt deleted file mode 100644 index 9e76394c3..000000000 --- a/doc/documentation/README.txt +++ /dev/null | |||
@@ -1,63 +0,0 @@ | |||
1 | * Completion Levels: | ||
2 | |||
3 | ** chapters/philosophy: around 100% fixed after initial export. | ||
4 | |||
5 | * What's left to do | ||
6 | |||
7 | - Which Texlive modules are needed? Decrease the size. | ||
8 | - distro specific, or can we set requirements? | ||
9 | - Update the content of gnunet documentation. | ||
10 | - XXX: images are only generated for the html documentation | ||
11 | with gendoc.sh … FIXME! | ||
12 | - XXX: png,dot, and svg images MUST be converted to eps by the | ||
13 | build system. Right now they aren't, as a result: No images. | ||
14 | |||
15 | * How to use (hack) on this | ||
16 | |||
17 | ** with guix | ||
18 | |||
19 | Adjust accordingly, ie read the Guix Documentation: | ||
20 | setenv GUIX_PACKAGE_PATH "gnunet/contrib/packages/guix/packages" | ||
21 | guix environment gnunet-doc | ||
22 | and | ||
23 | guix build -f contrib/packages/guix/gnunet-doc.scm | ||
24 | |||
25 | ** without guix | ||
26 | |||
27 | You need to have Texinfo and Texlive in your path. | ||
28 | sh bootstrap | ||
29 | ./configure --enable-documentation | ||
30 | cd doc | ||
31 | make (format you want) | ||
32 | |||
33 | for example: make html, make info, make pdf | ||
34 | |||
35 | * structure (relations) | ||
36 | |||
37 | ** gnunet.texi | ||
38 | -> chapters/developer.texi | ||
39 | -> chapters/installation.texi | ||
40 | -> chapters/philosophy.texi | ||
41 | -> chapters/user.texi | ||
42 | -> chapters/vocabulary.texi | ||
43 | -> images/* | ||
44 | -> gpl-3.0.texi | ||
45 | -> fdl-1.3.texi | ||
46 | |||
47 | ** gnunet-c-tutorial.texi | ||
48 | -> figs/Service.pdf | ||
49 | -> figs/System.pdf | ||
50 | -> tutorial-examples/*.c | ||
51 | -> gpl-3.0.texi | ||
52 | -> fdl-1.3.texi | ||
53 | |||
54 | - gnunet-c-tutorial-v1.pdf: original LaTeX "gnunet-c-tutorial.pdf". | ||
55 | - man folder: the man pages. | ||
56 | - doxygen folder | ||
57 | - outdated-and-old-installation-instructions.txt: self described within the file. | ||
58 | |||
59 | |||
60 | Use `gendocs', add to the manual/ directory of the web site. | ||
61 | |||
62 | $ cd doc | ||
63 | $ gendocs.sh gnunet "GNUnet 0.10.X Reference Manual" | ||
diff --git a/doc/documentation/TODO b/doc/documentation/TODO new file mode 100644 index 000000000..fa1ce7a23 --- /dev/null +++ b/doc/documentation/TODO | |||
@@ -0,0 +1,106 @@ | |||
1 | -*- mode: org -*- | ||
2 | |||
3 | TODO - or: the Documentation Masterplan. | ||
4 | |||
5 | To some extent this duplicates the Mantis tickets on this topic. | ||
6 | |||
7 | * Motivation | ||
8 | My motivation is to read into good documentations and create a self-contained collection of books, | ||
9 | which can be understood without expecting too much background knowledge in every topic. | ||
10 | ** User Handbook: | ||
11 | The content of the User book should be mostly concerned with our current and future graphical (gtk | ||
12 | as well as terminal user interface) applications. After reading Preface and maybe Philosophy, the | ||
13 | person reading the User Handbook should understand with the least possible strugle the application | ||
14 | they intend to use. Examples should be given and concepts explained. | ||
15 | ** Installation Handbook: | ||
16 | As seen with requests on the mailinglist, we will have to pick up people where they are, similar | ||
17 | to the User Handbook. People already used to compiling and installing should have the chance to | ||
18 | skip to the end, everyone else should: have step-by-step instructions, which will either already | ||
19 | include OS specific notes or will be followed by OS specific instructions. It is up for discussion | ||
20 | if configuring GNUnet is 'User Handbook' or 'Installation Handbook', the current mixture in | ||
21 | the Installation Handbook is not good. | ||
22 | ** Contributors Handbook: | ||
23 | This chapter could either be reduced to a couple of sections following the theme of 'contributing | ||
24 | to GNUnet' or the chapter could be extended. If we extend it, we should explain a range of topics | ||
25 | that can be useful for contributors. It can be understood as a recommended reading in addition to | ||
26 | the Developer Handbook then, and the Developer Handbook could simply become a better commented | ||
27 | reference for the code-base. | ||
28 | ** Developer Handbook: | ||
29 | As outlined in the last sentences, the Developer Handbook could be reduced to the necessary bits | ||
30 | with enough comments to be understood without reading into the papers published over the years. | ||
31 | |||
32 | |||
33 | * DONE 1. Drupal books export to LaTeX. | ||
34 | * DONE 2. LaTeX conversion to Texinfo. | ||
35 | * DONE 3. (initial) Fixup of syntax errors introduced in conversion chain. | ||
36 | * TODO 4. Update content. | ||
37 | * TODO 5. Create API Reference or similar | ||
38 | * TODO 6. Create Concept Index | ||
39 | * TODO 7. Create Procedure Index | ||
40 | * TODO 8. Create Type Index | ||
41 | * TODO 9. Create Functions Index | ||
42 | * TODO 10. Properly address concerns and criticism people had/have on the old and current documentation. | ||
43 | * TODO 11. Reorder structure | ||
44 | * TODO more TODO. | ||
45 | |||
46 | |||
47 | * Status Progress / Completion Levels | ||
48 | |||
49 | ** chapters/philosophy: around 100% fixed after initial export. | ||
50 | |||
51 | * System Integration Tasks | ||
52 | |||
53 | * Which Texlive modules are needed for every output we generate? | ||
54 | * Generate the images from their dot sources. | ||
55 | |||
56 | * How to use (hack) on this | ||
57 | |||
58 | This section will find its way into the documentation sooner or later. | ||
59 | Potentially outdated or inaccurate bits. | ||
60 | |||
61 | ** with guix | ||
62 | |||
63 | Adjust accordingly, ie read the Guix Documentation: | ||
64 | guix environment gnunet-doc | ||
65 | and | ||
66 | guix build -f contrib/packages/guix/gnunet-doc.scm | ||
67 | |||
68 | ** without guix | ||
69 | |||
70 | You need to have Texinfo and Texlive in your path. | ||
71 | sh bootstrap | ||
72 | ./configure --enable-documentation | ||
73 | cd doc | ||
74 | make (format you want) | ||
75 | |||
76 | for example: make html, make info, make pdf | ||
77 | |||
78 | * structure (relations) (old!) | ||
79 | |||
80 | ** gnunet.texi | ||
81 | -> chapters/developer.texi | ||
82 | -> chapters/installation.texi | ||
83 | -> chapters/philosophy.texi | ||
84 | -> chapters/user.texi | ||
85 | -> chapters/vocabulary.texi | ||
86 | -> images/* | ||
87 | -> gpl-3.0.texi | ||
88 | -> fdl-1.3.texi | ||
89 | |||
90 | ** gnunet-c-tutorial.texi | ||
91 | -> figs/Service.pdf | ||
92 | -> figs/System.pdf | ||
93 | -> tutorial-examples/*.c | ||
94 | -> gpl-3.0.texi | ||
95 | -> fdl-1.3.texi | ||
96 | |||
97 | - gnunet-c-tutorial-v1.pdf: original LaTeX "gnunet-c-tutorial.pdf". | ||
98 | - man folder: the man pages. | ||
99 | - doxygen folder | ||
100 | - outdated-and-old-installation-instructions.txt: self described within the file. | ||
101 | |||
102 | |||
103 | Use `gendocs', add to the manual/ directory of the web site. | ||
104 | |||
105 | $ cd doc | ||
106 | $ gendocs.sh gnunet "GNUnet 0.10.X Reference Manual" | ||
diff --git a/doc/documentation/chapters/installation.texi b/doc/documentation/chapters/installation.texi index f2042033e..665f980be 100644 --- a/doc/documentation/chapters/installation.texi +++ b/doc/documentation/chapters/installation.texi | |||
@@ -19,6 +19,7 @@ it in the form of new chapters or insightful comments. | |||
19 | * Build instructions for Debian 7.5:: | 19 | * Build instructions for Debian 7.5:: |
20 | * Installing GNUnet from Git on Ubuntu 14.4:: | 20 | * Installing GNUnet from Git on Ubuntu 14.4:: |
21 | * Build instructions for Debian 8:: | 21 | * Build instructions for Debian 8:: |
22 | * Build instructions for macOS:: | ||
22 | @c * Build instructions for OpenBSD 6.2:: | 23 | @c * Build instructions for OpenBSD 6.2:: |
23 | * Outdated build instructions for previous revisions:: | 24 | * Outdated build instructions for previous revisions:: |
24 | @c * Portable GNUnet:: | 25 | @c * Portable GNUnet:: |
@@ -1472,6 +1473,59 @@ with the default Sqlite database. Sqlite is usually fine for most | |||
1472 | applications, but MySQL can offer better performance and Postgres better | 1473 | applications, but MySQL can offer better performance and Postgres better |
1473 | resillience. | 1474 | resillience. |
1474 | 1475 | ||
1476 | @node Build instructions for macOS | ||
1477 | @section Build instructions for macOS | ||
1478 | @c FIXME: I -> we | ||
1479 | |||
1480 | These are the installation guidelines for macOS. | ||
1481 | They were tested on macOS High Sierra. | ||
1482 | |||
1483 | @menu | ||
1484 | * Installing dependencies:: | ||
1485 | * Compile from Source:: | ||
1486 | @end menu | ||
1487 | |||
1488 | @node Installing dependencies | ||
1489 | @subsection Installing dependencies | ||
1490 | |||
1491 | First, install XCode in the newest version. | ||
1492 | See https://developer.apple.com/xcode/. | ||
1493 | |||
1494 | Install Homebrew (https://brew.sh) and then install the dependencies listed above. | ||
1495 | If a dependency does not exists in brew, you need to compile it from source. | ||
1496 | |||
1497 | @example | ||
1498 | # brew install <dependency> | ||
1499 | @end example | ||
1500 | |||
1501 | @node Compile from Source | ||
1502 | @subsection Compile from Source | ||
1503 | |||
1504 | Before you start building GNUnet, you need to setup your environment. | ||
1505 | This means that you have to make sure the proper tools are used in the build process. | ||
1506 | For example, after installing texinfo you need to make sure the new texinfo is actually used: | ||
1507 | |||
1508 | @example | ||
1509 | # echo 'export PATH="/usr/local/opt/texinfo/bin:$PATH"' >> ~/.bash_profile | ||
1510 | @end example | ||
1511 | |||
1512 | Note: brew tells you the appropriate command when executing | ||
1513 | |||
1514 | @example | ||
1515 | # brew info texinfo | ||
1516 | @end example | ||
1517 | |||
1518 | This may also be necessary for the gettext package. | ||
1519 | |||
1520 | Before you start compiling, you need to make sure gcc is used and not the clang compile of your macOS system. | ||
1521 | On my system, gcc was actually ``gcc-7'' and gcc pointed to the clang compiler. | ||
1522 | |||
1523 | @example | ||
1524 | # export CC=gcc-7 | ||
1525 | @end example | ||
1526 | |||
1527 | After this the standard compile instructions apply. | ||
1528 | |||
1475 | @c @node Build instructions for OpenBSD 6.2 | 1529 | @c @node Build instructions for OpenBSD 6.2 |
1476 | @c @section Build instructions for OpenBSD 6.2 | 1530 | @c @section Build instructions for OpenBSD 6.2 |
1477 | 1531 | ||
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 |
13 | Copyright @copyright{} 2001-2017 GNUnet e.V. | 13 | Copyright @copyright{} 2001-2018 GNUnet e.V. |
14 | 14 | ||
15 | Permission is granted to copy, distribute and/or modify this document | 15 | Permission is granted to copy, distribute and/or modify this document |
16 | under the terms of the GNU Free Documentation License, Version 1.3 or | 16 | under the terms of the GNU Free Documentation License, Version 1.3 or |
@@ -68,9 +68,10 @@ dependencies can be found on our website at | |||
68 | Reference Documentation (GNUnet Handbook). | 68 | Reference Documentation (GNUnet Handbook). |
69 | 69 | ||
70 | Please read this tutorial carefully since every single step is | 70 | Please read this tutorial carefully since every single step is |
71 | important and do not hesitate to contact the GNUnet team if you have | 71 | important, and do not hesitate to contact the GNUnet team if you have |
72 | any questions or problems! Check here how to contact the GNUnet | 72 | any questions or problems! Visit this link in your webbrowser to learn |
73 | team: @uref{https://gnunet.org/contact_information} | 73 | how 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 |
153 | If this command fails because you do not have the required public key, | 154 | If this command fails because you do not have the required public key, |
154 | then you need to run this command to import it: | 155 | then 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 | |||
167 | The next release of GNUnet will have a valid signature | 168 | The next release of GNUnet will have a valid signature |
168 | again. We are sorry for the inconvenience this causes. | 169 | again. We are sorry for the inconvenience this causes. |
169 | Another possible source you could use is our | 170 | Another 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, |
171 | by every developer. | 172 | has mandatory signed commits by every developer. |
172 | 173 | ||
173 | Now you can extract the tarball and rename the resulting | 174 | After verifying the signature you can extract the tarball. |
174 | directory to @file{gnunet} which we will be using in the | 175 | The resulting directory will be renamed to @file{gnunet}, which we will |
175 | remainder of this document. | 176 | be using in the remainder of this document to refer to the |
177 | root 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 |
184 | However, please note that stable versions can be very outdated. | 188 | However, please note that stable versions can be very outdated. |
185 | As a developer you are @b{strongly} encouraged to use the version | 189 | As 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 | |||
192 | the required dependencies. Please take a look at the | 196 | the required dependencies. Please take a look at the |
193 | GNUnet Reference Documentation | 197 | GNUnet 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}) |
195 | for a list of required dependencies | 199 | for a list of required dependencies and |
196 | and | ||
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}) |
198 | read its Installation chapter for specific instructions for | 201 | read its Installation chapter for specific instructions for |
199 | your operating system. | 202 | your Operating System. |
200 | Please check the notes at the end of the configure process about | 203 | Please check the notes at the end of the configure process about |
201 | required dependencies. | 204 | required dependencies. |
202 | 205 | ||
203 | For GNUnet bootstrapping support and the HTTP(S) plugin you should | 206 | For GNUnet bootstrapping support and the HTTP(S) plugin you should |
204 | install @uref{https://gnunet.org/gnurl, libgnurl}. | 207 | install @uref{https://gnunet.org/gnurl, libgnurl}. |
205 | For the filesharing service you should install at least one of the | 208 | For the filesharing service you should install at least one of the |
206 | datastore backends. MySQL, SQlite and PostgreSQL are supported. | 209 | datastore 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 | ||
211 | The latest development version can obtained from our Git repository. | 214 | The latest development version can be obtained from our Git repository. |
212 | To obtain the code you need to have @code{Git} installed, which is | 215 | To get the code you need to have @code{Git} installed. Usually your |
213 | required for obtaining the repository via: | 216 | Operating System package manager should provide a suitable distribution |
217 | of git (otherwise check out Guix or Nix). If you are using an Operating | ||
218 | System based on Debian's apt: | ||
219 | |||
220 | @example | ||
221 | $ sudo apt-get install git | ||
222 | @end example | ||
223 | |||
224 | This is required for obtaining the repository, which is achieved with | ||
225 | the 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 |
220 | After cloning the repository you have to execute the @file{bootstrap} | 232 | After cloning the repository, you have to execute the @file{bootstrap} |
221 | script in the new directory: | 233 | script 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 | |||
275 | to enable verbose logging by adding @code{--enable-logging=verbose}: | 287 | to 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 |
309 | should return $PREFIX/bin/gnunet-arm. It should be located in your | 323 | should return $PREFIX/bin/gnunet-arm (where $PREFIX is the location |
324 | you have set earlier). It should be located in your | ||
310 | GNUnet installation and the output should not be empty. | 325 | GNUnet installation and the output should not be empty. |
326 | |||
311 | If you see an output like: | 327 | If you see an output like: |
312 | 328 | ||
313 | @example | 329 | @example |
@@ -318,9 +334,11 @@ $ which gnunet-arm | |||
318 | check your PATH variable to ensure GNUnet's @file{bin} directory is | 334 | check your PATH variable to ensure GNUnet's @file{bin} directory is |
319 | included. | 335 | included. |
320 | 336 | ||
321 | GNUnet provides tests for all of its subcomponents. Run | 337 | GNUnet provides tests for all of its subcomponents. Assuming you have |
338 | successfully 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 | ||
389 | The main service implementation runs as a standalone process in the | 407 | The main service implementation runs as a standalone process in the |
390 | operating system and the client code runs as part of the client program, | 408 | Operating System and the client code runs as part of the client program, |
391 | so crashes of a client do not affect the service process or other clients. | 409 | so crashes of a client do not affect the service process or other clients. |
392 | The service and the clients communicate via a message protocol to be | 410 | The service and the clients communicate via a message protocol to be |
393 | defined and implemented by the programmer. | 411 | defined and implemented by the programmer. |
diff --git a/doc/hacks.el b/doc/hacks.el deleted file mode 100644 index 9f271b3af..000000000 --- a/doc/hacks.el +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | ;;;; hacks.el --- a few functions to help me work on the manual | ||
2 | ;;;; Jim Blandy <jimb@red-bean.com> --- October 1998 | ||
3 | ;;;; -- imported from https://git.savannah.gnu.org/cgit/guile.git/tree/doc/hacks.el | ||
4 | |||
5 | (defun jh-exemplify-region (start end) | ||
6 | (interactive "r") | ||
7 | (save-excursion | ||
8 | (save-restriction | ||
9 | (narrow-to-region start end) | ||
10 | |||
11 | ;; Texinfo doesn't handle tabs well. | ||
12 | (untabify (point-min) (point-max)) | ||
13 | |||
14 | ;; Quote any characters special to texinfo. | ||
15 | (goto-char (point-min)) | ||
16 | (while (re-search-forward "[{}@]" nil t) | ||
17 | (replace-match "@\\&"))))) | ||