aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README156
1 files changed, 113 insertions, 43 deletions
diff --git a/README b/README
index b5ba741f2..1841bb616 100644
--- a/README
+++ b/README
@@ -1,5 +1,26 @@
1 Welcome to GNUnet 1 Welcome to GNUnet
2 2
3ToC
4===
5
6* ToC
7* What is GNUnet?
8* Dependencies
9 o direct dependencies
10 o test suite dependencies
11 o optional dependencies
12 o autotools
13* Requirements
14* How to install
15 o binary packages
16 o Scope of Operating System support
17 o Building GNUnet from source
18* Configuration
19* Usage
20* Hacking GNUnet
21* Running HTTP on port 80 and HTTPS on port 443
22* Further Reading
23* Stay tuned
3 24
4What is GNUnet? 25What is GNUnet?
5=============== 26===============
@@ -31,63 +52,93 @@ Dependencies:
31============= 52=============
32 53
33These are the direct dependencies for running GNUnet: 54These are the direct dependencies for running GNUnet:
55~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34 56
35- libmicrohttpd >= 0.9.42 57- Bash (for some scripts)
58- gettext
59- gnutls >= 3.2.12 (highly recommended a gnutls
60 linked against libunbound)
61- A curl build against gnutls, or gnurl:
62 * libgnurl >= 7.35.0 (recommended, available from
63 https://gnunet.org/en/gnurl.html)
64 or
65 * libcurl >= 7.35.0 (alternative to libgnurl)
36- libgcrypt >= 1.6 66- libgcrypt >= 1.6
37- libgnurl >= 7.35.0 (recommended, available from https://gnunet.org/en/gnurl.html)
38- libcurl >= 7.35.0 (alternative to libgnurl)
39- libunistring >= 0.9.2 67- libunistring >= 0.9.2
40- gnutls >= 3.2.12 (highly recommended a gnutls linked against libunbound)
41- libidn: 68- libidn:
42 - libidn2 (prefered) 69 * libidn2 (prefered)
43 or 70 or
44 - libidn >= 1.0 71 * libidn >= 1.0
45- libextractor >= 0.6.1 (highly recommended) 72- libmicrohttpd >= 0.9.52
46- openssl >= 1.0 (binary, used to generate X.509 certificate 73- makeinfo >= 4.8
47 for gnunet-gns-proxy-setup-ca) 74- make[*3]
48- nss (certutil binary, for 75- nss (certutil binary, for
49 gnunet-gns-proxy-setup-ca) 76 gnunet-gns-proxy-setup-ca)
50- libltdl >= 2.2 (part of GNU libtool) 77- openssl >= 1.0 (binary, used to generate
51- sqlite >= 3.8 (default database, required) 78 X.509 certificate
52- mysql >= 5.1 (alternative to sqlite) 79 for gnunet-gns-proxy-setup-ca)
53- postgres >= 9.5 (alternative to sqlite) 80- A Posix shell (for some scripts)
54- Texinfo >= 5.2 [*1] 81- Texinfo >= 5.2 [*1]
55- makeinfo >= 4.8 82- libltdl >= 2.2 (part of GNU libtool)
56- make[*3] 83- 1 or more databases:
84 * sqlite >= 3.8 (default database, required)
85 and/or
86 * mysql >= 5.1 (alternative to sqlite)
87 and/or
88 * postgres >= 9.5 (alternative to sqlite)
57- which (contrib/apparmor(?), gnunet-bugreport, 89- which (contrib/apparmor(?), gnunet-bugreport,
58 tests (dns, gns, namestore, 90 and possibly more)
59 scalarproduct) and possibly more)
60- gettext
61- zlib 91- zlib
62 92
63
64These are the dependencies for GNUnet's testsuite: 93These are the dependencies for GNUnet's testsuite:
94~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65 95
66- Bash (optional (?[*4]), for some tests) 96- Bash (for some tests[*4])
67- python >= 3.7 (only python 3.7 is supported) 97- A Posix Shell (for some tests)
68- python-future >= 3.7 (only python 3.7 is supported) 98- python >= 3.4 (3.4 and higher technically supported,
69- which 99 at least python 3.7 tested to work)
100- base tools
101 - mostly:
102 - bc,
103 - curl,
104 - sed,
105 - awk,
106 - which
70 107
71 108
72These are the optional dependencies: 109These are the optional dependencies:
110~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
111
112- awk (for linting tests)
113- Bash (for Docker and Vagrant)
114- bluez (for bluetooth support)
115- grof (for linting of man pages)
116- guile 1.6.4 (or later up to 1.8?, for
117 gnunet-download-manager)
73 118
119- libextractor >= 0.6.1 (highly recommended[*5])
120- libjansson
121- libglpk >= 4.45 (for experimental code)
74- libopus >= 1.0.1 (for experimental conversation tool) 122- libopus >= 1.0.1 (for experimental conversation tool)
75- libpulse >= 2.0 (for experimental conversation tool) 123- libpulse >= 2.0 (for experimental conversation tool)
76- libogg >= 1.3.0 (for experimental conversation tool) 124- libogg >= 1.3.0 (for experimental conversation tool)
77- libnss (certtool binary (for convenient installation of GNS proxy)) 125- libnss (certtool binary (for convenient
126 installation of GNS proxy))
78- libzbar >= 0.10 (for gnunet-qr) 127- libzbar >= 0.10 (for gnunet-qr)
128- libpbc >= 0.5.14 (for Attribute-Based Encryption and
129 Identity Provider functionality)
130- libgabe (for Attribute-Based Encryption and
131 Identity Provider functionality, from
132 https://github.com/schanzen/libgabe)
133- mandoc (for linting of man pages, generation of
134 html output of man pages)
135- miniupnpc
136- perl5 (for some utilities)
79- TeX Live >= 2012 (for gnunet-bcd[*]) 137- TeX Live >= 2012 (for gnunet-bcd[*])
80- texi2mdoc (for automatic mdoc generation [*2]) 138- texi2mdoc (for automatic mdoc generation [*2])
81- libglpk >= 4.45 (for experimental code)
82- perl5 (for some utilities)
83- guile 1.6.4 (or later up to 1.8?, for gnunet-download-manager)
84- bluez (for bluetooth support)
85- miniupnpc
86- libpbc >= 0.5.14 (for Attribute-Based Encryption and Identity Provider functionality)
87- libgabe (for Attribute-Based Encryption and Identity Provider functionality,
88 from https://github.com/schanzen/libgabe)
89 139
90Recommended autotools for compiling the Git version are: 140Recommended autotools for compiling the Git version are:
141~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
91 142
92- autoconf >= 2.59 143- autoconf >= 2.59
93- automake >= 1.11.1 144- automake >= 1.11.1
@@ -115,16 +166,35 @@ Recommended autotools for compiling the Git version are:
115 fix in. 166 fix in.
116 167
117[*4] We are commited to portable tools and solutions 168[*4] We are commited to portable tools and solutions
118 where possible. While the shellscripts work with 169 where possible. New scripts should be Posix SH
119 NetBSD's sh, there's no warranty some bashisms 170 compatible, current and older scripts are
120 are leftover. 171 in the process of being rewritten to comply
172 with this requirement.
173
174[*5] While libextractor is optional, it is recommended to
175 build gnunet against it. If you install it later,
176 you won't benefit from libextractor.
177 If you are a distributor, we recommend to split
178 LE into basis + plugins rather than making LE
179 an option as an afterthought by the user.
180 LE itself is very small, but its dependency chain
181 on first, second, third etc level can be big.
182 There is a small effect on privacy if your LE build
183 differs from one which includes all
184 plugins (plugins are build as shared objects):
185 if users publish a directory with a mixture of file
186 types (for example mpeg, jpeg, png, gif) the
187 configuration of LE could leak which plugins are
188 installed for which filetypes are not providing
189 more details.
190 However, this leak is just a minor concern.
121 191
122Requirements 192Requirements
123============ 193============
124 194
125GNUnet's directed acyclic graph (DAG) will require around 0.74 GiB 195GNUnet's directed acyclic graph (DAG) will require around 0.74 GiB
126Diskspace, with GNUNet itself taking around 9.2 MiB reported by the 196Diskspace, with GNUNet itself taking around 8 - 9.2 MiB reported by
127build on GNU Guix. 197the build on GNU Guix.
128 198
129How to install? 199How to install?
130=============== 200===============
@@ -365,7 +435,7 @@ together with a description. To publish files on GNUnet, use the
365"gnunet-publish" command. 435"gnunet-publish" command.
366 436
367 437
368The GTK+ (or: Gimp Toolkit) user interface is shipped separately. 438The GTK user interface is shipped separately.
369After installing gnunet-gtk, you can invoke the setup tool and 439After installing gnunet-gtk, you can invoke the setup tool and
370the file-sharing GUI with: 440the file-sharing GUI with:
371 441
@@ -400,13 +470,13 @@ $ make install
400$ export $GNUNET_PREFIX=$SOMEWHERE 470$ export $GNUNET_PREFIX=$SOMEWHERE
401$ make check 471$ make check
402 472
403Some of the testcases require python >= 3.7, and the python modules 473Some of the testcases require python >= 3.7, and the python module
404"python-future" (http://python-future.org/) and "pexpect" to be installed. 474"pexpect" to be installed.
405If any testcases fail to pass on your system, run 475If any testcases fail to pass on your system, run
406"contrib/scripts/gnunet-bugreport" (in the repository) or "gnunet-bugreport" 476"contrib/scripts/gnunet-bugreport" (in the repository) or "gnunet-bugreport"
407when you already have GNUnet installed and report its output together with 477when you already have GNUnet installed and report its output together with
408information about the failing testcase(s) to the Mantis bugtracking 478information about the failing testcase(s) to the Mantis bugtracking
409system at https://gnunet.org/bugs/. 479system at https://bugs.gnunet.org/.
410 480
411 481
412Running HTTP on port 80 and HTTPS on port 443 482Running HTTP on port 80 and HTTPS on port 443
@@ -464,13 +534,13 @@ Further Reading
464 GNUnet or projects around GNUnet. 534 GNUnet or projects around GNUnet.
465 There are currently 2 ways to get them: 535 There are currently 2 ways to get them:
466 536
467 * Using git: 537 * Using git (NOTE: 1.1 GiB as of 2019-03-09):
468 git clone https://git.gnunet.org/bibliography.git 538 git clone https://git.gnunet.org/bibliography.git
469 * Using Drupal: 539 * Using Drupal:
470 https://old.gnunet.org/bibliography 540 https://old.gnunet.org/bibliography
471 541
472 The Drupal access will be replaced by a new interface to our 542 The Drupal access will be replaced by a new interface to our
473 bibliography in 2019. 543 bibliography in the foreseeable future.
474 544
475 545
476Stay tuned 546Stay tuned