diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2016-03-08 09:57:58 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2016-03-08 09:58:19 +0100 |
commit | 09af15654f0c8091f1b9e0bbb2e523cdee194442 (patch) | |
tree | e648edef1ce4c64c533f2593aa22b8015cf0e506 /pkgs/development/libraries/openssl/default.nix | |
parent | f306e67e15bdbe9a8358c9f81319fc4fcbadc2eb (diff) | |
parent | 0ee75214f336474e127c2e3546c0406a0c4d5fa7 (diff) | |
download | nixlib-09af15654f0c8091f1b9e0bbb2e523cdee194442.tar nixlib-09af15654f0c8091f1b9e0bbb2e523cdee194442.tar.gz nixlib-09af15654f0c8091f1b9e0bbb2e523cdee194442.tar.bz2 nixlib-09af15654f0c8091f1b9e0bbb2e523cdee194442.tar.lz nixlib-09af15654f0c8091f1b9e0bbb2e523cdee194442.tar.xz nixlib-09af15654f0c8091f1b9e0bbb2e523cdee194442.tar.zst nixlib-09af15654f0c8091f1b9e0bbb2e523cdee194442.zip |
Merge master into closure-size
The kde-5 stuff still didn't merge well. I hand-fixed what I saw, but there may be more problems.
Diffstat (limited to 'pkgs/development/libraries/openssl/default.nix')
-rw-r--r-- | pkgs/development/libraries/openssl/default.nix | 158 |
1 files changed, 88 insertions, 70 deletions
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix index 86d94b58d231..5fa9556b3f1d 100644 --- a/pkgs/development/libraries/openssl/default.nix +++ b/pkgs/development/libraries/openssl/default.nix @@ -2,58 +2,60 @@ , withCryptodev ? false, cryptodevHeaders }: with stdenv.lib; + let - opensslCrossSystem = attrByPath [ "openssl" "system" ] - (throw "openssl needs its platform name cross building" null) - stdenv.cross; -in -stdenv.mkDerivation rec { - name = "openssl-1.0.1r"; - - src = fetchurl { - urls = [ - "http://www.openssl.org/source/${name}.tar.gz" - "http://openssl.linux-mirror.org/source/${name}.tar.gz" - ]; - sha256 = "0iik7a3b0mrfrxzngdf7ywfscg9inbw77y0jp2ccw0gdap9xhjvq"; - }; - patches = optional stdenv.isCygwin ./1.0.1-cygwin64.patch - ++ optional (stdenv.isDarwin || (stdenv ? cross && stdenv.cross.libc == "libSystem")) ./darwin-arch.patch; + opensslCrossSystem = stdenv.cross.openssl.system or + (throw "openssl needs its platform name cross building"); + + common = { version, sha256 }: stdenv.mkDerivation rec { + name = "openssl-${version}"; + + src = fetchurl { + url = "http://www.openssl.org/source/${name}.tar.gz"; + inherit sha256; + }; + + patches = + [ ./use-etc-ssl-certs.patch ] + ++ optional stdenv.isCygwin ./1.0.1-cygwin64.patch + ++ optional + (versionOlder version "1.0.2" && (stdenv.isDarwin || (stdenv ? cross && stdenv.cross.libc == "libSystem"))) + ./darwin-arch.patch; outputs = [ "dev" "out" "man" "bin" ]; setOutputFlags = false; - nativeBuildInputs = [ perl ]; - buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders; - - # On x86_64-darwin, "./config" misdetects the system as - # "darwin-i386-cc". So specify the system type explicitly. - configureScript = - if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc" - else if stdenv.system == "x86_64-solaris" then "./Configure solaris64-x86_64-gcc" - else "./config"; - - configureFlags = [ - "shared" - "--libdir=lib" - "--openssldir=etc/ssl" - ] ++ stdenv.lib.optionals withCryptodev [ - "-DHAVE_CRYPTODEV" - "-DUSE_CRYPTODEV_DIGESTS" - ]; + nativeBuildInputs = [ perl ]; + buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders; + + # On x86_64-darwin, "./config" misdetects the system as + # "darwin-i386-cc". So specify the system type explicitly. + configureScript = + if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc" + else if stdenv.system == "x86_64-solaris" then "./Configure solaris64-x86_64-gcc" + else "./config"; + + configureFlags = [ + "shared" + "--libdir=lib" + "--openssldir=etc/ssl" + ] ++ stdenv.lib.optionals withCryptodev [ + "-DHAVE_CRYPTODEV" + "-DUSE_CRYPTODEV_DIGESTS" + ]; makeFlags = [ "MANDIR=$(man)/share/man" ]; - # Parallel building is broken in OpenSSL. - enableParallelBuilding = false; + # 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 + 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/ @@ -61,39 +63,55 @@ stdenv.mkDerivation rec { mkdir $dev mv $out/include $dev/ - # remove dependency on Perl at runtime + # remove dependency on Perl at runtime rm -r $out/etc/ssl/misc - ''; - postFixup = '' - # Check to make sure the main output doesn't depend on perl - if grep -r '${perl}' $out; then - echo "Found an erroneous dependency on perl ^^^" >&2 - exit 1 - fi - ''; - - crossAttrs = { - # upstream patch: https://rt.openssl.org/Ticket/Display.html?id=2558 - postPatch = '' - sed -i -e 's/[$][(]CROSS_COMPILE[)]windres/$(WINDRES)/' Makefile.shared + rmdir $out/etc/ssl/{certs,private} ''; - preConfigure='' - # It's configure does not like --build or --host - export configureFlags="${concatStringsSep " " (configureFlags ++ [ opensslCrossSystem ])}" - # WINDRES and RANLIB need to be prefixed when cross compiling; - # the openssl configure script doesn't do that for us - export WINDRES=${stdenv.cross.config}-windres - export RANLIB=${stdenv.cross.config}-ranlib + + postFixup = '' + # Check to make sure the main output doesn't depend on perl + if grep -r '${perl}' $out; then + echo "Found an erroneous dependency on perl ^^^" >&2 + exit 1 + fi ''; - configureScript = "./Configure"; + + crossAttrs = { + # upstream patch: https://rt.openssl.org/Ticket/Display.html?id=2558 + postPatch = '' + sed -i -e 's/[$][(]CROSS_COMPILE[)]windres/$(WINDRES)/' Makefile.shared + ''; + preConfigure='' + # It's configure does not like --build or --host + export configureFlags="${concatStringsSep " " (configureFlags ++ [ opensslCrossSystem ])}" + # WINDRES and RANLIB need to be prefixed when cross compiling; + # the openssl configure script doesn't do that for us + export WINDRES=${stdenv.cross.config}-windres + export RANLIB=${stdenv.cross.config}-ranlib + ''; + configureScript = "./Configure"; + }; + + meta = { + homepage = http://www.openssl.org/; + description = "A cryptographic library that implements the SSL and TLS protocols"; + platforms = stdenv.lib.platforms.all; + maintainers = [ stdenv.lib.maintainers.simons ]; + priority = 10; # resolves collision with ‘man-pages’ + }; }; - meta = { - homepage = http://www.openssl.org/; - description = "A cryptographic library that implements the SSL and TLS protocols"; - platforms = stdenv.lib.platforms.all; - maintainers = [ stdenv.lib.maintainers.simons ]; - priority = 10; # resolves collision with ‘man-pages’ +in { + + openssl_1_0_1 = common { + version = "1.0.1r"; + sha256 = "0iik7a3b0mrfrxzngdf7ywfscg9inbw77y0jp2ccw0gdap9xhjvq"; }; + + openssl_1_0_2 = lowPrio (common { + version = "1.0.2f"; + sha256 = "932b4ee4def2b434f85435d9e3e19ca8ba99ce9a065a61524b429a9d5e9b2e9c"; + }); + } |