X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=README;h=69ab78d76c84991c233b7ecb733efe32635347bd;hb=3fb8304e9126eabd1b6fd4d080946b0dbdc613a2;hp=64d4fd4224c9c2894dd54f294539650704281e61;hpb=609e4becfe496ed62c2007db18d04fbc8d523476;p=oweals%2Fgnunet.git diff --git a/README b/README index 64d4fd422..69ab78d76 100644 --- a/README +++ b/README @@ -1,5 +1,26 @@ Welcome to GNUnet +ToC +=== + +* ToC +* What is GNUnet? +* Dependencies + o direct dependencies + o test suite dependencies + o optional dependencies + o autotools +* Requirements +* How to install + o binary packages + o Scope of Operating System support + o Building GNUnet from source +* Configuration +* Usage +* Hacking GNUnet +* Running HTTP on port 80 and HTTPS on port 443 +* Further Reading +* Stay tuned What is GNUnet? =============== @@ -31,62 +52,92 @@ Dependencies: ============= These are the direct dependencies for running GNUnet: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- libmicrohttpd >= 0.9.42 +- libmicrohttpd >= 0.9.52 - libgcrypt >= 1.6 -- libgnurl >= 7.35.0 (recommended, available from https://gnunet.org/gnurl) -- libcurl >= 7.35.0 (alternative to libgnurl) +- 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) +- gnutls >= 3.2.12 (highly recommended a gnutls + linked against libunbound) - libidn: - libidn2 (prefered) or - - libidn >= 1.0 -- libextractor >= 0.6.1 (highly recommended) -- openssl >= 1.0 (binary, used to generate X.509 certificate + - 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) -- sqlite >= 3.8 (default database, required) -- mysql >= 5.1 (alternative to sqlite) -- postgres >= 9.5 (alternative to sqlite) +- 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 -- which (bootstrap script and some Makefiles) +- make[*3] +- which (contrib/apparmor(?), gnunet-bugreport, + and possibly more) - gettext - zlib -- pkg-config - +- Posix shell (for some scripts) +- Bash (for some scripts) These are the dependencies for GNUnet's testsuite: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Bash (optional (?), for some tests) -- python >= 3.7 (optional, only python 3.7 is supported) -- python-future >= 3.7 (optional, only python 3.7 is supported) +- 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: - -- 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) -- libnss (optional, certtool binary (for convenient installation of GNS proxy)) -- 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) -- guile 1.6.4 (or later up to 1.8?, optional for gnunet-download-manager) -- python2.7 >= 2.7 (optional, for gnunet-qr, only python 2.7 is supported) -- bluez (optional, for bluetooth support) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- 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 (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) +- 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 @@ -107,12 +158,42 @@ Recommended autotools for compiling the Git version are: Contrary to the name, texi2mdoc does not require texinfo, It is a standalone ISO C utility. +[*3] GNU make introduced the != operator in version 4.0. + GNU make was released in october 2013, reasonable to + be widespread by now. If this is not working out for + you, open a bug so that we can get a more portable + fix in. + +[*4] We are commited to portable tools and solutions + where possible. New scripts should be Posix SH + compatible, current and older scripts are + in the process of being rewritten to comply + with this requirement. + +[*5] While libextractor is optional, it is recommended to + build gnunet against it. If you install it later, + you won't benefit from libextractor. + If you are a distributor, we recommend to split + LE into basis + plugins rather than making LE + an option as an afterthought by the user. + LE itself is very small, but its dependency chain + on first, second, third etc level can be big. + There is a small effect on privacy if your LE build + differs from one which includes all + plugins (plugins are build as shared objects): + if users publish a directory with a mixture of file + types (for example mpeg, jpeg, png, gif) the + configuration of LE could leak which plugins are + installed for which filetypes are not providing + more details. + However, this leak is just a minor concern. + Requirements ============ GNUnet's directed acyclic graph (DAG) will require around 0.74 GiB -Diskspace, with GNUNet itself taking around 9.2 MiB reported by the -build on GNU Guix. +Diskspace, with GNUNet itself taking around 8 - 9.2 MiB reported by +the build on GNU Guix. How to install? =============== @@ -195,7 +276,7 @@ If you install from source, you need to install GNU libextractor first (download from https://www.gnu.org/software/libextractor/). We also recommend installing GNU libmicrohttpd (download from https://www.gnu.org/software/libmicrohttpd/). Furthermore we recommend -libgnurl (from https://gnunet.org/gnurl). +libgnurl (from https://gnunet.org/en/gnurl.html). Then you can start the actual GNUnet compilation process with: @@ -388,13 +469,13 @@ $ make install $ export $GNUNET_PREFIX=$SOMEWHERE $ make check -Some of the testcases require python >= 3.7, and the python modules -"python-future" (http://python-future.org/) and "pexpect" to be installed. +Some of the testcases require python >= 3.7, and the python module +"pexpect" to be installed. If any testcases fail to pass on your system, run "contrib/scripts/gnunet-bugreport" (in the repository) or "gnunet-bugreport" when you already have GNUnet installed and report its output together with information about the failing testcase(s) to the Mantis bugtracking -system at https://gnunet.org/bugs/. +system at https://bugs.gnunet.org/. Running HTTP on port 80 and HTTPS on port 443 @@ -452,13 +533,13 @@ Further Reading GNUnet or projects around GNUnet. There are currently 2 ways to get them: - * Using git: - git clone https://gnunet.org/git/bibliography.git + * Using git (NOTE: 1.1 GiB as of 2019-03-09): + git clone https://git.gnunet.org/bibliography.git * Using Drupal: https://old.gnunet.org/bibliography The Drupal access will be replaced by a new interface to our - bibliography in 2019. + bibliography in the foreseeable future. Stay tuned