diff options
Diffstat (limited to 'pkgs/development/libraries/openssl/default.nix')
-rw-r--r-- | pkgs/development/libraries/openssl/default.nix | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix index 01f9eca15bb9..52fd0cc6b05e 100644 --- a/pkgs/development/libraries/openssl/default.nix +++ b/pkgs/development/libraries/openssl/default.nix @@ -6,6 +6,11 @@ let opensslCrossSystem = stdenv.lib.attrByPath [ "openssl" "system" ] (throw "openssl needs its platform name cross building" null) stdenv.cross; + + hurdGNUSourcePatch = fetchurl { + url = http://patch-tracker.debian.org/patch/series/dl/openssl/1.0.0e-2.1/gnu_source.patch; + sha256 = "0zp4x8bql92fbqywnigqfsfj2vvabb66wv6g6zgzh0y6js1ic4pn"; + }; in stdenv.mkDerivation { @@ -26,7 +31,8 @@ stdenv.mkDerivation { # environment variable is ignored for setuid binaries. ./cert-file.patch ] - ++ stdenv.lib.optional stdenv.isDarwin ./darwin-arch.patch; + ++ stdenv.lib.optional stdenv.isDarwin ./darwin-arch.patch + ++ stdenv.lib.optional (stdenv.system == "x86_64-freebsd") ./freebsd-x86_64-asm.patch; buildNativeInputs = [ perl ]; @@ -54,6 +60,17 @@ stdenv.mkDerivation { export configureFlags="--libdir=lib --cross-compile-prefix=${stdenv.cross.config}- shared ${opensslCrossSystem}" ''; + patches = stdenv.lib.optionals (opensslCrossSystem == "hurd-x86") [ + # OpenSSL only defines _GNU_SOURCE on Linux, but we need it on GNU + hurdGNUSourcePatch + + # Use the target settings from Debian's "debian-hurd-i386" target. + # see http://patch-tracker.debian.org/patch/series/view/openssl/1.0.0e-2.1/debian-targets.patch + # In particular, this sets the shared library extension properly so that + # make install succeeds + ./hurd-target.patch + ]; + postInstall = '' # Openssl installs readonly files, which otherwise we can't strip. # This could at some stdenv hash change be put out of crossAttrs, too |