- libcurl >= 7.35.0 (alternative to libgnurl)
- libunistring >= 0.9.2
- gnutls >= 3.2.12 (highly recommended a gnutls linked against libunbound)
-- libidn >= 1.0
+- libidn:
+ - libidn2 (prefered)
+ or
+ - 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)
- mysql >= 5.1 (alternative to sqlite)
- postgres >= 9.5 (alternative to sqlite)
- Texinfo >= 5.2 [*1]
+- makeinfo >= 4.8 (at least 4.8 at the time of writing is tested)
- which (for the bootstrap script)
- gettext
- zlib
These are the dependencies for GNUnet's testsuite:
- Bash (optional (?), for some tests)
-- python >= 2.7 (optional, only python 2.7 is supported)
-- python-future >= 2.7 (optional, only python 2.7 is supported)
+- python >= 3.7 (optional, only python 3.7 is supported)
+- python-future >= 3.7 (optional, only python 3.7 is supported)
These are the optional dependencies:
- libpulse >= 2.0 (optional, for experimental conversation tool)
- libogg >= 1.3.0 (optional, for experimental conversation tool)
- libnss (optional, certtool binary (for convenient installation of GNS proxy))
-- python-future (optional, for some testcases and utilities)
+- python2.7-future (optional, for gnunet-qr)
- python-zbar >= 0.10 (optional, for gnunet-qr)
- TeX Live >= 2012 (optional, for gnunet-bcd[*])
+- texi2mdoc (optional, for automatic mdoc generation [*2])
- libglpk >= 4.45 (optional, for experimental code)
- perl5 (optional, for some utilities)
-- python >= 2.7 (optional, for gnunet-qr, only python 2.7 is supported)
+- python2.7 >= 2.7 (optional, for gnunet-qr, only python 2.7 is supported)
- bluez (optional, for bluetooth support)
- miniupnpc
- libpbc >= 0.5.14 (optional, for Attribute-Based Encryption and Identity Provider functionality)
- libgabe (optional, for Attribute-Based Encryption and Identity Provider functionality,
from https://github.com/schanzen/libgabe)
-=======
-These are the direct dependencies for running GNUnet:
-
-- libmicrohttpd >= 0.9.52
-- 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:
+Recommended autotools for compiling the Git version are:
- autoconf >= 2.59
- automake >= 1.11.1
documentation, and therefore require texinfo. You can pass
'--disable-documentation' to the configure script to change this.
+[*2] If you still prefer to have documentation, you can pass
+ '--with-section7' to build mdoc documentation (experimental
+ stages in gnunet). If this proves to be reliable, we will
+ include the mdoc output in the release tarballs.
+ Contrary to the name, texi2mdoc does not require texinfo,
+ It is a standalone ISO C utility.
+
Requirements
============
We recommend to use binary packages provided by your Operating System's
package manager. GNUnet is reportedly available for at least:
-Gentoo (via the 'youbroketheinternet' overlay), GNU Guix, Nix,
-Debian, ALT Linux, Archlinux, Deepin, Devuan, Hyperbola, Kali Linux,
-LEDE/OpenWRT, Manjaro, Parabola, Pardus, Parrot, PureOS, Raspbian,
-Rosa, Trisquel, and Ubuntu.
+GNU Guix, Nix, Debian, ALT Linux, Archlinux, Deepin, Devuan, Hyperbola,
+Kali Linux, LEDE/OpenWRT, Manjaro, Parabola, Pardus, Parrot, PureOS,
+Raspbian, Rosa, Trisquel, and Ubuntu.
If GNUnet is available for your Operating System and it is missing,
send us feedback so that we can add it to this list. Furthermore, if
you feel it is necessary and can not be covered in your Operating
System's documentation.
-
-Some Operating Systems currently require you to build GNUnet from
-source.
If you are building GNUnet from source you are either interested
in furthering its development (we have further notes for developer
-builds in our 'GNUnet Developer Handbook') or your Operating System
-simply lacks support for a binary package at the moment.
+builds in our 'GNUnet Developer Handbook') or you don't trust other
+people's binaries or your Operating System doesn't provide any
+binary package (at the moment).
+
+If you're on Gentoo you can build GNUnet using the recipes provided
+in the 'youbroketheinternet' overlay. Other Operating Systems may
+unintentionally require you to build GNUnet from source.
+
Two prominent examples which currently lack cross-compilation
support in GNUnet (and native binaries) are MS Windows and Apple macOS.
For macOS we recommend you to do the build process via Homebrew and a
-recent XCode installation.
-Compilation for MS Windows can ...
+recent XCode installation. We don't recommend using GNUnet with any
+recent MS Windows system as it officially spies on its users (according
+to its T&C), defying some of the purposes of GNUnet.
Note that some functions of GNUnet require "root" access. GNUnet will
install (tiny) SUID binaries for those functions is you run "make
* Documentation
- A preliminary rendering of the new GNUnet manual is deployed at
+ A HTML version of the new GNUnet manual is deployed at
- https://d.n0.is/pub/doc/gnunet/manual/
+ https://docs.gnunet.org
- we plan to have a complete new gnunet.org up and running in 2019.
- This website output exists as a convenience solution until then.
+ which currently displays just GNUnet documentation. Until 2019
+ we will add more reading material.
* Academia / papers