83 lines
1.9 KiB
Nix
83 lines
1.9 KiB
Nix
{ lib, stdenv, fetchFromGitHub, perl, zlib
|
||
, withCryptodev ? false, cryptodev
|
||
}:
|
||
|
||
with lib;
|
||
stdenv.mkDerivation {
|
||
pname = "openssl-chacha";
|
||
version = "2016-08-22";
|
||
|
||
src = fetchFromGitHub {
|
||
owner = "PeterMosmans";
|
||
repo = "openssl";
|
||
rev = "293717318e903b95f4d7e83a98a087282f37efc3";
|
||
sha256 = "134j3anjnj2q99xsd8d47bwvjp73qkdsimdd9riyjxa3hd8ysr00";
|
||
};
|
||
|
||
outputs = [ "bin" "dev" "out" "man" ];
|
||
setOutputFlags = false;
|
||
|
||
nativeBuildInputs = [ perl zlib ];
|
||
buildInputs = lib.optional withCryptodev cryptodev;
|
||
|
||
configureScript = "./config";
|
||
|
||
configureFlags = [
|
||
"zlib"
|
||
"shared"
|
||
"experimental-jpake"
|
||
"enable-md2"
|
||
"enable-rc5"
|
||
"enable-rfc3779"
|
||
"enable-gost"
|
||
"--libdir=lib"
|
||
"--openssldir=etc/ssl"
|
||
] ++ lib.optionals withCryptodev [
|
||
"-DHAVE_CRYPTODEV"
|
||
"-DUSE_CRYPTODEV_DIGESTS"
|
||
];
|
||
|
||
makeFlags = [
|
||
"MANDIR=$(man)/share/man"
|
||
];
|
||
|
||
# Parallel building is broken in OpenSSL.
|
||
enableParallelBuilding = false;
|
||
|
||
postInstall = ''
|
||
# If we're building dynamic libraries, then don't install static
|
||
# libraries.
|
||
if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then
|
||
rm "$out/lib/"*.a
|
||
fi
|
||
|
||
mkdir -p $bin
|
||
mv $out/bin $bin/
|
||
|
||
mkdir $dev
|
||
mv $out/include $dev/
|
||
|
||
# remove dependency on Perl at runtime
|
||
rm -r $out/etc/ssl/misc
|
||
|
||
rmdir $out/etc/ssl/{certs,private}
|
||
'';
|
||
|
||
postFixup = ''
|
||
# Check to make sure we don't depend on perl
|
||
if grep -r '${perl}' $out; then
|
||
echo "Found an erroneous dependency on perl ^^^" >&2
|
||
exit 1
|
||
fi
|
||
'';
|
||
|
||
meta = {
|
||
homepage = "https://www.openssl.org/";
|
||
description = "A cryptographic library that implements the SSL and TLS protocols";
|
||
platforms = [ "x86_64-linux" ];
|
||
maintainers = [ lib.maintainers.cstrahan ];
|
||
license = licenses.openssl;
|
||
priority = 10; # resolves collision with ‘man-pages’
|
||
};
|
||
}
|