b5c1deca8a
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.
58 lines
1.9 KiB
Nix
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;
|
|
};
|
|
}
|