|
|
|
@ -3,8 +3,17 @@ |
|
|
|
|
, enableSSL2 ? false |
|
|
|
|
, enableSSL3 ? false |
|
|
|
|
, static ? stdenv.hostPlatform.isStatic |
|
|
|
|
# Used to avoid cross compiling perl, for example, in darwin bootstrap tools. |
|
|
|
|
# This will cause c_rehash to refer to perl via the environment, but otherwise |
|
|
|
|
# will produce a perfectly functional openssl binary and library. |
|
|
|
|
, withPerl ? true |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
assert ( |
|
|
|
|
lib.assertMsg (!withPerl -> stdenv.hostPlatform != stdenv.buildPlatform) |
|
|
|
|
"withPerl should not be disabled unless cross compiling" |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
# Note: this package is used for bootstrapping fetchurl, and thus |
|
|
|
|
# cannot use fetchpatch! All mutable patches (generated by GitHub or |
|
|
|
|
# cgit) that are needed here should be included directly in Nixpkgs as |
|
|
|
@ -46,7 +55,10 @@ let |
|
|
|
|
separateDebugInfo = !(stdenv.hostPlatform.useLLVM or false) && stdenv.cc.isGNU; |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ perl ]; |
|
|
|
|
buildInputs = lib.optional withCryptodev cryptodev; |
|
|
|
|
buildInputs = lib.optional withCryptodev cryptodev |
|
|
|
|
# perl is included to allow the interpreter path fixup hook to set the |
|
|
|
|
# correct interpreter in c_rehash. |
|
|
|
|
++ lib.optional withPerl perl; |
|
|
|
|
|
|
|
|
|
# TODO(@Ericson2314): Improve with mass rebuild |
|
|
|
|
configurePlatforms = []; |
|
|
|
@ -108,12 +120,20 @@ let |
|
|
|
|
rm "$out/lib/"*.a |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
'' + |
|
|
|
|
'' |
|
|
|
|
mkdir -p $bin |
|
|
|
|
'' + lib.optionalString (!stdenv.hostPlatform.isWindows) |
|
|
|
|
# Fix bin/c_rehash's perl interpreter line |
|
|
|
|
# |
|
|
|
|
# - openssl 1_0_2: embeds a reference to buildPackages.perl |
|
|
|
|
# - openssl 1_1: emits "#!/usr/bin/env perl" |
|
|
|
|
# |
|
|
|
|
# In the case of openssl_1_0_2, reset the invalid reference and let the |
|
|
|
|
# interpreter hook take care of it. |
|
|
|
|
# |
|
|
|
|
# In both cases, if withPerl = false, the intepreter line is expected be |
|
|
|
|
# "#!/usr/bin/env perl" |
|
|
|
|
'' |
|
|
|
|
substituteInPlace $out/bin/c_rehash --replace ${buildPackages.perl} ${perl} |
|
|
|
|
substituteInPlace $out/bin/c_rehash --replace ${buildPackages.perl}/bin/perl "/usr/bin/env perl" |
|
|
|
|
'' + |
|
|
|
|
'' |
|
|
|
|
mv $out/bin $bin/ |
|
|
|
|