diff options
Diffstat (limited to 'pkgs/development/libraries/openssl/default.nix')
-rw-r--r-- | pkgs/development/libraries/openssl/default.nix | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix index dd5e03c33f92..633e43ac6a68 100644 --- a/pkgs/development/libraries/openssl/default.nix +++ b/pkgs/development/libraries/openssl/default.nix @@ -6,17 +6,8 @@ let opensslCrossSystem = stdenv.lib.attrByPath [ "openssl" "system" ] (throw "openssl needs its platform name cross building" null) stdenv.cross; -in - -stdenv.mkDerivation { - inherit name; - src = fetchurl { - url = "http://www.openssl.org/source/${name}.tar.gz"; - sha256 = "1xw0ffzmr4wbnb0glywgks375dvq8x87pgxmwx6vhgvkflkxqqg3"; - }; - - patches = + patchesCross = isCross: [ # Allow the location of the X509 certificate file (the CA # bundle) to be set through the environment variable # ‘OPENSSL_X509_CERT_FILE’. This is necessary because the @@ -26,7 +17,25 @@ stdenv.mkDerivation { # environment variable is ignored for setuid binaries. ./cert-file.patch ] - ++ stdenv.lib.optional stdenv.isDarwin ./darwin-arch.patch; + + ++ (stdenv.lib.optionals (isCross && opensslCrossSystem == "hurd-x86") + [ ./cert-file-path-max.patch # merge with `cert-file.patch' eventually + ./gnu.patch # submitted upstream + ]) + + ++ (stdenv.lib.optional stdenv.isDarwin ./darwin-arch.patch); + +in + +stdenv.mkDerivation { + inherit name; + + src = fetchurl { + url = "http://www.openssl.org/source/${name}.tar.gz"; + sha256 = "1xw0ffzmr4wbnb0glywgks375dvq8x87pgxmwx6vhgvkflkxqqg3"; + }; + + patches = patchesCross false; buildNativeInputs = [ perl ]; @@ -49,6 +58,8 @@ stdenv.mkDerivation { ''; # */ crossAttrs = { + patches = patchesCross true; + preConfigure='' # It's configure does not like --build or --host export configureFlags="--libdir=lib --cross-compile-prefix=${stdenv.cross.config}- shared ${opensslCrossSystem}" |