aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorng0 <ng0@n0.is>2019-11-24 18:21:42 +0000
committerng0 <ng0@n0.is>2019-11-24 18:21:42 +0000
commit52ece4ab06393aafce029f50afbee2ce1aa877d8 (patch)
treed4217b4f7dbe42b436510b5343988bf39f27f237 /doc
parenta6e31c91476191a038e240c030a799247fde39fb (diff)
downloadgnunet-52ece4ab06393aafce029f50afbee2ce1aa877d8.tar.gz
gnunet-52ece4ab06393aafce029f50afbee2ce1aa877d8.zip
handbook: installation: update dependency list.
Diffstat (limited to 'doc')
-rw-r--r--doc/handbook/chapters/installation.texi56
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
17The latter variant has a better security model and requires extra preparation 17The latter variant has a better security model and requires extra
18before running @code{make install} and a different configuration. Beginners who want to 18preparation before running @code{make install} and a different
19quickly try out GNUnet can use the @emph{single-user setup}. 19configuration. Beginners who want to quickly try out GNUnet can
20use 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
36GNUnet needs few libraries and applications for being able to run and 38GNUnet needs few libraries and applications for being able to run and
37another few optional ones for using certain features. Preferably they 39another few optional ones for using certain features. Preferably they
38should be installed with a package manager. Just in case we include a 40should be installed with a package manager.
39link to the project websites.
40 41
41The mandatory libraries and applications are 42The 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:
67One mechanism of integrating GNS with legacy applications via NSS is 69One mechanism of integrating GNS with legacy applications via NSS is
68not available if this is disabled. But applications that don't use the 70not available if this is disabled. But applications that don't use the
69glibc for NS resolution won't work anyway with this, so little is lost 71glibc for NS resolution won't work anyway with this, so little is lost
70on BSD systems. 72on *BSD systems.
71GNS via direct use or via the HTTP or DNS proxies is unaffected. 73GNS 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
75glibc NSS specific code. One example is the build against NetBSD's libc 77glibc NSS specific code. One example is the build against NetBSD's libc
76as detailed in @uref{https://bugs.gnunet.org/view.php?id=5605}. 78as detailed in @uref{https://bugs.gnunet.org/view.php?id=5605}.
77 79
78In addition GNUnet needs one of of these three databases 80In 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
85These are the dependencies only required for certain features 88These 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
103These are the test suite requirements: 107About libextractor being optional:
108@example
109While libextractor ("LE") is optional, it is recommended to build gnunet
110against it. If you install it later, you won't benefit from libextractor.
111If you are a distributor, we recommend to split LE into basis + plugins
112rather than making LE an option as an afterthought by the user. LE
113itself is very small, but its dependency chain on first, second, third
114etc level can be big. There is a small effect on privacy if your LE
115build differs from one which includes all plugins (plugins are build as
116shared objects): if users publish a directory with a mixture of file
117types (for example mpeg, jpeg, png, gif) the configuration of LE could
118leak which plugins are installed for which filetypes are not providing
119more details. However, this leak is just a minor concern.
120@end example
121
122These 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
111These are runtime requirements: 130These 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
199Note that the list above is not always up to date and you 215Note that the list above is not always up to date and you