diff options
author | ng0 <ng0@n0.is> | 2019-11-24 18:21:42 +0000 |
---|---|---|
committer | ng0 <ng0@n0.is> | 2019-11-24 18:21:42 +0000 |
commit | 52ece4ab06393aafce029f50afbee2ce1aa877d8 (patch) | |
tree | d4217b4f7dbe42b436510b5343988bf39f27f237 /doc | |
parent | a6e31c91476191a038e240c030a799247fde39fb (diff) | |
download | gnunet-52ece4ab06393aafce029f50afbee2ce1aa877d8.tar.gz gnunet-52ece4ab06393aafce029f50afbee2ce1aa877d8.zip |
handbook: installation: update dependency list.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/handbook/chapters/installation.texi | 56 |
1 files changed, 36 insertions, 20 deletions
diff --git a/doc/handbook/chapters/installation.texi b/doc/handbook/chapters/installation.texi index c007b2de5..c8fdd8bfc 100644 --- a/doc/handbook/chapters/installation.texi +++ b/doc/handbook/chapters/installation.texi | |||
@@ -14,9 +14,10 @@ there are two different ways of running GNUnet: | |||
14 | @item the @emph{multi-user setup} | 14 | @item the @emph{multi-user setup} |
15 | @end itemize | 15 | @end itemize |
16 | 16 | ||
17 | The latter variant has a better security model and requires extra preparation | 17 | The latter variant has a better security model and requires extra |
18 | before running @code{make install} and a different configuration. Beginners who want to | 18 | preparation before running @code{make install} and a different |
19 | quickly try out GNUnet can use the @emph{single-user setup}. | 19 | configuration. Beginners who want to quickly try out GNUnet can |
20 | use the @emph{single-user setup}. | ||
20 | 21 | ||
21 | @menu | 22 | @menu |
22 | * Installing dependencies:: | 23 | * Installing dependencies:: |
@@ -33,23 +34,23 @@ quickly try out GNUnet can use the @emph{single-user setup}. | |||
33 | @c ----------------------------------------------------------------------- | 34 | @c ----------------------------------------------------------------------- |
34 | @node Installing dependencies | 35 | @node Installing dependencies |
35 | @section Installing dependencies | 36 | @section Installing dependencies |
37 | |||
36 | GNUnet needs few libraries and applications for being able to run and | 38 | GNUnet needs few libraries and applications for being able to run and |
37 | another few optional ones for using certain features. Preferably they | 39 | another few optional ones for using certain features. Preferably they |
38 | should be installed with a package manager. Just in case we include a | 40 | should be installed with a package manager. |
39 | link to the project websites. | ||
40 | 41 | ||
41 | The mandatory libraries and applications are | 42 | The mandatory libraries and applications are |
42 | @itemize @bullet | 43 | @itemize @bullet |
43 | @item autoconf 2.59 or above | 44 | @item autoconf 2.59 or above |
44 | @item automake 1.11.1 or above | 45 | @item automake 1.11.1 or above |
45 | @item gettext | 46 | @item gettext |
46 | @item glibc (read below, other libcs should work) | 47 | @item glibc (read below, other libcs work) |
47 | @item gnutls 3.2.12 or above, recommended to be linked against libunbound | 48 | @item GnuTLS 3.2.12 or above, recommended to be linked against libunbound |
49 | @item GNU make 4.0 or higher (other make implementations do work) | ||
48 | @item iptables (on Linux systems) | 50 | @item iptables (on Linux systems) |
49 | @item libtool 2.2 or above | 51 | @item libtool 2.2 or above |
50 | @item libltdl (part of libtool) | 52 | @item libltdl (part of libtool) |
51 | @item libgcrypt 1.6 or above | 53 | @item libgcrypt 1.6 or above |
52 | @item libextractor | ||
53 | @item libidn2 or libidn | 54 | @item libidn2 or libidn |
54 | @item libmicrohttpd 0.9.63 or above | 55 | @item libmicrohttpd 0.9.63 or above |
55 | @item libunistring | 56 | @item libunistring |
@@ -58,6 +59,7 @@ The mandatory libraries and applications are | |||
58 | @item Texinfo 5.2 or above (for building the documentation) | 59 | @item Texinfo 5.2 or above (for building the documentation) |
59 | @item Texlive 2012 or above (for building the documentation, and for gnunet-bcd) | 60 | @item Texlive 2012 or above (for building the documentation, and for gnunet-bcd) |
60 | @item makeinfo 4.8 or above | 61 | @item makeinfo 4.8 or above |
62 | @item pkgconf (or pkg-config) | ||
61 | @item zlib | 63 | @item zlib |
62 | @end itemize | 64 | @end itemize |
63 | 65 | ||
@@ -67,7 +69,7 @@ Glibc is required for certain NSS features: | |||
67 | One mechanism of integrating GNS with legacy applications via NSS is | 69 | One mechanism of integrating GNS with legacy applications via NSS is |
68 | not available if this is disabled. But applications that don't use the | 70 | not available if this is disabled. But applications that don't use the |
69 | glibc for NS resolution won't work anyway with this, so little is lost | 71 | glibc for NS resolution won't work anyway with this, so little is lost |
70 | on BSD systems. | 72 | on *BSD systems. |
71 | GNS via direct use or via the HTTP or DNS proxies is unaffected. | 73 | GNS via direct use or via the HTTP or DNS proxies is unaffected. |
72 | @end example | 74 | @end example |
73 | 75 | ||
@@ -75,7 +77,8 @@ Other libcs should work, the resulting builds just don't include the | |||
75 | glibc NSS specific code. One example is the build against NetBSD's libc | 77 | glibc NSS specific code. One example is the build against NetBSD's libc |
76 | as detailed in @uref{https://bugs.gnunet.org/view.php?id=5605}. | 78 | as detailed in @uref{https://bugs.gnunet.org/view.php?id=5605}. |
77 | 79 | ||
78 | In addition GNUnet needs one of of these three databases | 80 | In addition GNUnet needs at least one of these three databases |
81 | (at the minimum sqlite3) | ||
79 | @itemize @bullet | 82 | @itemize @bullet |
80 | @item sqlite + libsqlite 3.8 or above (the default, requires no further configuration) | 83 | @item sqlite + libsqlite 3.8 or above (the default, requires no further configuration) |
81 | @item postgres + libpq | 84 | @item postgres + libpq |
@@ -84,36 +87,50 @@ In addition GNUnet needs one of of these three databases | |||
84 | 87 | ||
85 | These are the dependencies only required for certain features | 88 | These are the dependencies only required for certain features |
86 | @itemize @bullet | 89 | @itemize @bullet |
87 | @item guile 1.6.4 for gnunet-download-manager | ||
88 | @item miniupnpc (for traversing NAT boxes more reliably) | 90 | @item miniupnpc (for traversing NAT boxes more reliably) |
89 | @item libnss | 91 | @item libnss |
90 | @item libglpk 4.45 or above for experimental code | 92 | @item libglpk 4.45 or above for experimental code |
91 | @item libopus (for running the GNUnet conversation telephony application) | 93 | @item libopus (for running the GNUnet conversation telephony application) |
92 | @item libpulse (for running the GNUnet conversation telephony application) | ||
93 | @item libogg (for running the GNUnet conversation telephony application) | 94 | @item libogg (for running the GNUnet conversation telephony application) |
95 | @item gstreamer OR libpulse (for running the GNUnet conversation telephony application) | ||
94 | @item bluez (for bluetooth support) | 96 | @item bluez (for bluetooth support) |
97 | @item libextractor (optional but highly recommended, read below) | ||
95 | @item libpbc | 98 | @item libpbc |
96 | (for attribute-based encryption and the identity provider subsystem) | 99 | (for attribute-based encryption and the identity provider subsystem) |
97 | @item libgabe | 100 | @item libgabe |
98 | (for attribute-based encryption and the identity provider subsystem) | 101 | (for attribute-based encryption and the identity provider subsystem) |
99 | @item texi2mdoc (for automatic mdoc generation) | 102 | @item texi2mdoc (for automatic mdoc generation) |
100 | @item perl5 for some utilities | 103 | @item perl5 for some utilities (which are not installed) |
104 | @item libjanson | ||
101 | @end itemize | 105 | @end itemize |
102 | 106 | ||
103 | These are the test suite requirements: | 107 | About libextractor being optional: |
108 | @example | ||
109 | While libextractor ("LE") is optional, it is recommended to build gnunet | ||
110 | against it. If you install it later, you won't benefit from libextractor. | ||
111 | If you are a distributor, we recommend to split LE into basis + plugins | ||
112 | rather than making LE an option as an afterthought by the user. LE | ||
113 | itself is very small, but its dependency chain on first, second, third | ||
114 | etc level can be big. There is a small effect on privacy if your LE | ||
115 | build differs from one which includes all plugins (plugins are build as | ||
116 | shared objects): if users publish a directory with a mixture of file | ||
117 | types (for example mpeg, jpeg, png, gif) the configuration of LE could | ||
118 | leak which plugins are installed for which filetypes are not providing | ||
119 | more details. However, this leak is just a minor concern. | ||
120 | @end example | ||
121 | |||
122 | These are the test-suite requirements: | ||
104 | @itemize @bullet | 123 | @itemize @bullet |
105 | @item python3.7 | 124 | @item python3.6 or higher |
106 | @item gnunet (installation first) | 125 | @item gnunet (installation first) |
107 | @item which(1) | 126 | @item some core-utils: which(1), bc(1), curl(1), sed(1), awk(1), etc. |
108 | @item a shell (possibly Bash, maybe just POSIX sh) | 127 | @item a shell (very few Bash scripts, the majority are POSIX sh scripts) |
109 | @end itemize | 128 | @end itemize |
110 | 129 | ||
111 | These are runtime requirements: | 130 | These are runtime requirements: |
112 | @itemize @bullet | 131 | @itemize @bullet |
113 | @item nss (the certutil binary, for gnunet-gns-proxy-setup-ca) | 132 | @item nss (the certutil binary, for gnunet-gns-proxy-setup-ca) |
114 | @item openssl (openssl binary, for gnunet-gns-proxy-setup-ca) | 133 | @item openssl (openssl binary, for gnunet-gns-proxy-setup-ca) |
115 | @item python2.7 for gnunet-qr (at the moment only python2.7 supported) | ||
116 | @item python-zbar 0.10 or above for gnunet-qr | ||
117 | @end itemize | 134 | @end itemize |
118 | 135 | ||
119 | @c ----------------------------------------------------------------------- | 136 | @c ----------------------------------------------------------------------- |
@@ -193,7 +210,6 @@ customize the compilation and installation process: | |||
193 | @item @code{--with-microhttpd=[PATH]} - the path to libmicrohttpd | 210 | @item @code{--with-microhttpd=[PATH]} - the path to libmicrohttpd |
194 | @item @code{--with-sqlite=[PATH]} - the path to libsqlite | 211 | @item @code{--with-sqlite=[PATH]} - the path to libsqlite |
195 | @item @code{--with-zlib=[PATH]} - the path to zlib | 212 | @item @code{--with-zlib=[PATH]} - the path to zlib |
196 | @item @code{--with-sudo=[PATH]} - path to the sudo binary (no need to run @code{make install} as root if specified) | ||
197 | @end itemize | 213 | @end itemize |
198 | 214 | ||
199 | Note that the list above is not always up to date and you | 215 | Note that the list above is not always up to date and you |