-
-- libmicrohttpd >= 0.9.42
-- libgcrypt >= 1.6
-- libgnurl >= 7.35.0 (available from https://gnunet.org/gnurl)
-- libunistring >= 0.9.2
-- gnutls >= 3.2.12
-- libidn >= 1.0
-- libextractor >= 0.6.1 (highly recommended)
-- openssl >= 1.0 (binary, used to generate X.509 certificate)
-- libltdl >= 2.2 (part of GNU libtool)
-- sqlite >= 3.8 (default database, required)
-- mysql >= 5.1 (alternative to sqlite)
-- postgres >= 9.5 (alternative to sqlite)
-- libopus >= 1.0.1 (optional for experimental conversation tool)
-- libpulse >= 2.0 (optional for experimental conversation tool)
-- libogg >= 1.3.0 (optional for experimental conversation tool)
-- python-zbar >= 0.10 (optional for gnunet-qr)
-- TeX Live >= 2012 (optional for gnunet-bcd[*])
-- Texinfo >= 5.2 [*1]
-- libglpk >= 4.45 (optional for experimental code)
-
-Recommended autotools for compiling the git version are:
-- autoconf >= 2.59
-- automake >= 1.11.1
-- libtool >= 2.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- libmicrohttpd >= 0.9.52
+- libgcrypt >= 1.6
+- A curl build against gnutls, or gnurl:
+ - libgnurl >= 7.35.0 (recommended, available from
+ https://gnunet.org/en/gnurl.html)
+ or
+ - libcurl >= 7.35.0 (alternative to libgnurl)
+- libunistring >= 0.9.2
+- gnutls >= 3.2.12 (highly recommended a gnutls
+ linked against libunbound)
+- libidn:
+ - libidn2 (prefered)
+ or
+ - libidn >= 1.0
+- openssl >= 1.0 (binary, used to generate
+ X.509 certificate
+ for gnunet-gns-proxy-setup-ca)
+- nss (certutil binary, for
+ gnunet-gns-proxy-setup-ca)
+- libltdl >= 2.2 (part of GNU libtool)
+- 1 or more databases:
+ - sqlite >= 3.8 (default database, required)
+ and/or
+ - mysql >= 5.1 (alternative to sqlite)
+ and/or
+ - postgres >= 9.5 (alternative to sqlite)
+- Texinfo >= 5.2 [*1]
+- makeinfo >= 4.8
+- make[*3]
+- which (contrib/apparmor(?), gnunet-bugreport,
+ and possibly more)
+- gettext
+- zlib
+- Posix shell (for some scripts)
+- Bash (for some scripts)
+
+These are the dependencies for GNUnet's testsuite:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Posix Shell (for some tests)
+- Bash (for some tests[*4])
+- python >= 3.7 (only python 3.7 is supported)
+- base tools
+ - mostly:
+ - which,
+ - bc,
+ - curl
+ - sed
+
+
+These are the optional dependencies:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Bash (for Docker and Vagrant)
+- libextractor >= 0.6.1 (highly recommended[*5])
+- libjansson
+- libopus >= 1.0.1 (for experimental conversation tool)
+- libpulse >= 2.0 (for experimental conversation tool)
+- libogg >= 1.3.0 (for experimental conversation tool)
+- libnss (certtool binary (for convenient
+ installation of GNS proxy))
+- python2.7 = 2.7 (for gnunet-qr, only python 2.7
+ supported)
+- python-zbar >= 0.10 (for gnunet-qr, not optional)
+- TeX Live >= 2012 (for gnunet-bcd[*])
+- texi2mdoc (for automatic mdoc generation [*2])
+- mandoc (for linting of man pages, generation of
+ html output of man pages)
+- awk (for linting tests)
+- grof (for linting of man pages)
+- libglpk >= 4.45 (for experimental code)
+- perl5 (for some utilities)
+- guile 1.6.4 (or later up to 1.8?, for
+ gnunet-download-manager)
+- bluez (for bluetooth support)
+- miniupnpc
+- libpbc >= 0.5.14 (for Attribute-Based Encryption and
+ Identity Provider functionality)
+- libgabe (for Attribute-Based Encryption and
+ Identity Provider functionality, from
+ https://github.com/schanzen/libgabe)
+
+Recommended autotools for compiling the Git version are:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- autoconf >= 2.59
+- automake >= 1.11.1
+- libtool >= 2.2