nixpkgs/pkgs/development/libraries/libgcrypt/default.nix
Jörg Thalheim b5c1deca8a
treewide: remove wkennington as maintainer
He prefers to contribute to his own nixpkgs fork triton.
Since he is still marked as maintainer in many packages
this leaves the wrong impression he still maintains those.
2019-01-26 10:05:32 +00:00

58 lines
1.9 KiB
Nix

{ stdenv, fetchurl, gettext, libgpgerror, enableCapabilities ? false, libcap
, buildPackages
}:
assert enableCapabilities -> stdenv.isLinux;
stdenv.mkDerivation rec {
name = "libgcrypt-${version}";
version = "1.8.4";
src = fetchurl {
url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
sha256 = "09r27ywj9zplq6n9qw3mn7zmvf6y2jdmwx5d1kg8yqkj0qx18f7n";
};
outputs = [ "out" "dev" "info" ];
outputBin = "dev";
# The CPU Jitter random number generator must not be compiled with
# optimizations and the optimize -O0 pragma only works for gcc.
# The build enables -O2 by default for everything else.
hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "fortify";
depsBuildBuild = [ buildPackages.stdenv.cc ];
buildInputs = [ libgpgerror ]
++ stdenv.lib.optional stdenv.isDarwin gettext
++ stdenv.lib.optional enableCapabilities libcap;
configureFlags = [ "--with-libgpg-error-prefix=${libgpgerror.dev}" ];
# Make sure libraries are correct for .pc and .la files
# Also make sure includes are fixed for callers who don't use libgpgcrypt-config
postFixup = ''
sed -i 's,#include <gpg-error.h>,#include "${libgpgerror.dev}/include/gpg-error.h",g' "$dev/include/gcrypt.h"
'' + stdenv.lib.optionalString enableCapabilities ''
sed -i 's,\(-lcap\),-L${libcap.lib}/lib \1,' $out/lib/libgcrypt.la
'';
# TODO: figure out why this is even necessary and why the missing dylib only crashes
# random instead of every test
preCheck = stdenv.lib.optionalString stdenv.isDarwin ''
mkdir -p $out/lib
cp src/.libs/libgcrypt.20.dylib $out/lib
'';
doCheck = true;
meta = with stdenv.lib; {
homepage = https://www.gnu.org/software/libgcrypt/;
description = "General-purpose cryptographic library";
license = licenses.lgpl2Plus;
platforms = platforms.all;
maintainers = with maintainers; [ vrthra ];
repositories.git = git://git.gnupg.org/libgcrypt.git;
};
}