X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=default.nix;h=ffbcd4c4475a29180301e89d42fcc8bb38082c62;hb=831572e37e88c219e13d558d9abac23160a10741;hp=2e3f1458f7b13f9efa9a07eeadc2f4a1b7f24571;hpb=f659bb94b4c5d47b3dd9b7db392572f0561e3fe9;p=oweals%2Fgnunet.git diff --git a/default.nix b/default.nix index 2e3f1458f..ffbcd4c44 100644 --- a/default.nix +++ b/default.nix @@ -34,8 +34,23 @@ # c) use nixpkgs at a given path # --arg pkgs /path/to/nixpkgs # +## CCACHE +# +# To enable ccache, use the following: +# +# --argstr ccache_dir /var/cache/ccache + +# or when using nix-shell: +# --argstr ccache_dir ~/.ccache +# +# and make sure the given directory is writable by the nixpkgs group when using nix-build or nix-env -i, +# or the current user when using nix-shell +# -{ pkgs ? null }: +{ + pkgs ? null, + ccache_dir ? "", +}: let syspkgs = import { }; @@ -49,72 +64,15 @@ let }; usepkgs = if null == pkgs then import pinpkgs {} - else - if 0 == pkgs then - import { } - else - import pkgs {}; - -in with usepkgs; usepkgs.stdenv.mkDerivation rec { - src = ./.; - name = "gnunet-dev"; - - buildInputs = [ - makeWrapper pkgconfig - adns curl gettext gmp gnutls gss ncurses openldap zlib sqlite mariadb postgresql - libextractor libgcrypt libgnurl libidn libmicrohttpd - libpsl libtool libunistring libxml2 - ]; - - patchPhase = '' - test -e Makefile && make distclean - ''; - - configureFlags = [ - "--enable-gcc-hardening" - "--enable-linker-hardening" - - "--enable-experimental" - "--enable-logging=verbose" - "--enable-poisoning" - ]; - - preConfigure = '' - ./bootstrap - configureFlags="$configureFlags --with-nssdir=$out/lib" - ''; - - doCheck = false; - - postInstall = '' - # Tests can be run this way - #export GNUNET_PREFIX="$out" - #export PATH="$out/bin:$PATH" - #make -k check - ''; - - meta = with stdenv.lib; { - description = "GNU's decentralized anonymous and censorship-resistant P2P framework"; - - longDescription = '' - GNUnet is a framework for secure peer-to-peer networking that - does not use any centralized or otherwise trusted services. A - first service implemented on top of the networking layer - allows anonymous censorship-resistant file-sharing. Anonymity - is provided by making messages originating from a peer - indistinguishable from messages that the peer is routing. All - peers act as routers and use link-encrypted connections with - stable bandwidth utilization to communicate with each other. - GNUnet uses a simple, excess-based economic model to allocate - resources. Peers in GNUnet monitor each others behavior with - respect to resource usage; peers that contribute to the - network are rewarded with better service. - ''; - - homepage = http://gnunet.org/; + else + if 0 == pkgs then + import { } + else + import pkgs {}; + stdenv = usepkgs.stdenvAdapters.keepDebugInfo usepkgs.stdenv; - license = licenses.gpl3Plus; - platforms = platforms.gnu; - maintainers = with maintainers; [ ]; +in { + gnunet-dev = usepkgs.callPackage ./gnunet-dev.nix { + inherit ccache_dir; }; }