mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-02 15:41:48 +00:00
nettle: Refactor to be generic
This commit is contained in:
parent
4e106397df
commit
60b8b5a580
10
pkgs/development/libraries/nettle/27.nix
Normal file
10
pkgs/development/libraries/nettle/27.nix
Normal file
@ -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";
|
||||
};
|
||||
})
|
68
pkgs/development/libraries/nettle/generic.nix
Normal file
68
pkgs/development/libraries/nettle/generic.nix
Normal file
@ -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" ];
|
||||
})
|
@ -7063,7 +7063,8 @@ let
|
||||
inherit ncurses flex bison;
|
||||
};
|
||||
|
||||
nettle = callPackage ../development/libraries/nettle { };
|
||||
nettle27 = callPackage ../development/libraries/nettle/27.nix { };
|
||||
nettle = nettle27;
|
||||
|
||||
newt = callPackage ../development/libraries/newt { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user