1 { stdenv, makeWrapper, pkgconfig, autoconf, automake, ccache, ccache_dir ? ""
2 , adns, curl, gettext, gmp, gnutls, gss, ncurses, openldap, zlib, sqlite, mariadb, postgresql
3 , libextractor, libgcrypt, libgnurl, libidn, libmicrohttpd
4 , libpsl, libtool, libunistring, libxml2
7 stdenv.mkDerivation rec {
12 makeWrapper pkgconfig autoconf automake ccache
13 adns curl gettext gmp gnutls gss ncurses openldap zlib sqlite mariadb postgresql
14 libextractor libgcrypt libgnurl libidn libmicrohttpd
15 libpsl libtool libunistring libxml2
19 if [ -e Makefile ]; then
24 NIX_CFLAGS_COMPILE = "-ggdb -O0";
27 "--enable-gcc-hardening"
28 "--enable-linker-hardening"
30 "--enable-experimental"
31 "--enable-logging=verbose"
37 configureFlags="$configureFlags --with-nssdir=$out/lib"
39 if [ -n "${ccache_dir}" ]; then
40 export CC='ccache gcc'
41 export CCACHE_COMPRESS=1
42 export CCACHE_DIR="${ccache_dir}"
43 export CCACHE_UMASK=007
50 # Tests can be run this way
51 #export GNUNET_PREFIX="$out"
52 #export PATH="$out/bin:$PATH"
56 meta = with stdenv.lib; {
57 description = "GNU's decentralized anonymous and censorship-resistant P2P framework";
60 GNUnet is a framework for secure peer-to-peer networking that
61 does not use any centralized or otherwise trusted services. A
62 first service implemented on top of the networking layer
63 allows anonymous censorship-resistant file-sharing. Anonymity
64 is provided by making messages originating from a peer
65 indistinguishable from messages that the peer is routing. All
66 peers act as routers and use link-encrypted connections with
67 stable bandwidth utilization to communicate with each other.
68 GNUnet uses a simple, excess-based economic model to allocate
69 resources. Peers in GNUnet monitor each others behavior with
70 respect to resource usage; peers that contribute to the
71 network are rewarded with better service.
74 homepage = https://gnunet.org/;
76 license = licenses.gpl3Plus;
77 platforms = platforms.gnu;
78 maintainers = with maintainers; [ ];