remove dead API
[oweals/gnunet.git] / default.nix
index 2e3f1458f7b13f9efa9a07eeadc2f4a1b7f24571..ffbcd4c4475a29180301e89d42fcc8bb38082c62 100644 (file)
 # 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 <nixpkgs> { };
@@ -49,72 +64,15 @@ let
   };
   usepkgs = if null == pkgs then
              import pinpkgs {}
-           else
-             if 0 == pkgs then
-               import <nixpkgs> { }
-             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 <nixpkgs> { }
+              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;
   };
 }