summary refs log tree commit diff
path: root/pkgs/development/libraries/nettle
diff options
context:
space:
mode:
authorWilliam A. Kennington III <william@wkennington.com>2015-04-03 19:13:20 -0700
committerWilliam A. Kennington III <william@wkennington.com>2015-04-03 19:13:20 -0700
commit60b8b5a5809091e4d50591c2c571eb1e60b73c36 (patch)
tree93379ec6014b1be9194885c4483aa4053e617a0c /pkgs/development/libraries/nettle
parent4e106397df6025b8f7bdfe5cf1d300928acca8f5 (diff)
downloadnixpkgs-60b8b5a5809091e4d50591c2c571eb1e60b73c36.tar
nixpkgs-60b8b5a5809091e4d50591c2c571eb1e60b73c36.tar.gz
nixpkgs-60b8b5a5809091e4d50591c2c571eb1e60b73c36.tar.bz2
nixpkgs-60b8b5a5809091e4d50591c2c571eb1e60b73c36.tar.lz
nixpkgs-60b8b5a5809091e4d50591c2c571eb1e60b73c36.tar.xz
nixpkgs-60b8b5a5809091e4d50591c2c571eb1e60b73c36.tar.zst
nixpkgs-60b8b5a5809091e4d50591c2c571eb1e60b73c36.zip
nettle: Refactor to be generic
Diffstat (limited to 'pkgs/development/libraries/nettle')
-rw-r--r--pkgs/development/libraries/nettle/27.nix10
-rw-r--r--pkgs/development/libraries/nettle/generic.nix68
2 files changed, 78 insertions, 0 deletions
diff --git a/pkgs/development/libraries/nettle/27.nix b/pkgs/development/libraries/nettle/27.nix
new file mode 100644
index 00000000000..fc85f5eb9de
--- /dev/null
+++ b/pkgs/development/libraries/nettle/27.nix
@@ -0,0 +1,10 @@
+{ callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "2.7.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/nettle/nettle-${version}.tar.gz";
+    sha256 = "0h2vap31yvi1a438d36lg1r1nllfx3y19r4rfxv7slrm6kafnwdw";
+  };
+})
diff --git a/pkgs/development/libraries/nettle/generic.nix b/pkgs/development/libraries/nettle/generic.nix
new file mode 100644
index 00000000000..76629c80b96
--- /dev/null
+++ b/pkgs/development/libraries/nettle/generic.nix
@@ -0,0 +1,68 @@
+{ stdenv, gmp, gnum4
+
+# Version specific args
+, version, src
+, ...}:
+
+stdenv.mkDerivation (rec {
+  name = "nettle-${version}";
+
+  inherit src;
+
+  buildInputs = [ gnum4 ];
+  propagatedBuildInputs = [ gmp ];
+
+  doCheck = (stdenv.system != "i686-cygwin" && !stdenv.isDarwin);
+
+  enableParallelBuilding = true;
+
+  # It doesn't build otherwise
+  dontDisableStatic = true;
+
+  patches = stdenv.lib.optional (stdenv.system == "i686-cygwin")
+              ./cygwin.patch;
+
+  meta = {
+    description = "Cryptographic library";
+
+    longDescription = ''
+        Nettle is a cryptographic library that is designed to fit
+        easily in more or less any context: In crypto toolkits for
+        object-oriented languages (C++, Python, Pike, ...), in
+        applications like LSH or GNUPG, or even in kernel space.  In
+        most contexts, you need more than the basic cryptographic
+        algorithms, you also need some way to keep track of available
+        algorithms, their properties and variants.  You often have
+        some algorithm selection process, often dictated by a protocol
+        you want to implement.
+
+        And as the requirements of applications differ in subtle and
+        not so subtle ways, an API that fits one application well can
+        be a pain to use in a different context.  And that is why
+        there are so many different cryptographic libraries around.
+
+        Nettle tries to avoid this problem by doing one thing, the
+        low-level crypto stuff, and providing a simple but general
+        interface to it.  In particular, Nettle doesn't do algorithm
+        selection.  It doesn't do memory allocation. It doesn't do any
+        I/O.
+     '';
+
+     license = stdenv.lib.licenses.gpl2Plus;
+
+     homepage = http://www.lysator.liu.se/~nisse/nettle/;
+
+     maintainers = [ ];
+     platforms = stdenv.lib.platforms.all;
+  };
+}
+
+//
+
+stdenv.lib.optionalAttrs stdenv.isSunOS {
+  # Make sure the right <gmp.h> is found, and not the incompatible
+  # /usr/include/mp.h from OpenSolaris.  See
+  # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html>
+  # for details.
+  configureFlags = [ "--with-include-path=${gmp}/include" ];
+})