about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/nettle
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/libraries/nettle
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/nettle')
-rw-r--r--nixpkgs/pkgs/development/libraries/nettle/cygwin.patch12
-rw-r--r--nixpkgs/pkgs/development/libraries/nettle/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/nettle/generic.nix69
3 files changed, 91 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/nettle/cygwin.patch b/nixpkgs/pkgs/development/libraries/nettle/cygwin.patch
new file mode 100644
index 000000000000..d5036237c8d5
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/nettle/cygwin.patch
@@ -0,0 +1,12 @@
+Cygwin sucks.  Patch suggested by Niel Möller.
+
+--- nettle-2.0/examples/setup-env	2009-06-08 20:27:12.000000000 +0200
++++ nettle-2.0/examples/setup-env	2009-09-18 16:58:03.000000000 +0200
+@@ -3,5 +3,5 @@
+ set -e
+ 
+ if [ -x rsa-keygen ] ; then
+-  ./rsa-keygen -r rsa-decrypt -o testkey || exit 1
++  ./rsa-keygen -r rsa-decrypt.exe -o testkey || exit 1
+ fi
+
diff --git a/nixpkgs/pkgs/development/libraries/nettle/default.nix b/nixpkgs/pkgs/development/libraries/nettle/default.nix
new file mode 100644
index 000000000000..5b998926f0a5
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/nettle/default.nix
@@ -0,0 +1,10 @@
+{ callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "3.4";
+
+  src = fetchurl {
+    url = "mirror://gnu/nettle/nettle-${version}.tar.gz";
+    sha256 = "150y8655h629wn946dvzasq16qxsc1m9nf58mifvhl350bgl4ymf";
+  };
+})
diff --git a/nixpkgs/pkgs/development/libraries/nettle/generic.nix b/nixpkgs/pkgs/development/libraries/nettle/generic.nix
new file mode 100644
index 000000000000..2ef367b6c53a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/nettle/generic.nix
@@ -0,0 +1,69 @@
+{ stdenv, buildPackages, gmp, gnum4
+
+# Version specific args
+, version, src
+, ...}:
+
+stdenv.mkDerivation (rec {
+  name = "nettle-${version}";
+
+  inherit src;
+
+  outputs = [ "out" "dev" ];
+  outputBin = "dev";
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = [ gnum4 ];
+  propagatedBuildInputs = [ gmp ];
+
+  doCheck = (stdenv.hostPlatform.system != "i686-cygwin" && !stdenv.isDarwin);
+
+  enableParallelBuilding = true;
+
+  patches = stdenv.lib.optional (stdenv.hostPlatform.system == "i686-cygwin")
+              ./cygwin.patch;
+
+  meta = with stdenv.lib; {
+    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 = licenses.gpl2Plus;
+
+     homepage = http://www.lysator.liu.se/~nisse/nettle/;
+
+     maintainers = with maintainers; [ wkennington ];
+     platforms = 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.dev}/include" ];
+})