fetchurl: Don't force-override curl's gssSupport to on. Fixes #66499.

The original intent in commit

    a1fec866 treewide: assemble all `fetchurlBoot` uses in overrides to `fetchurl` itself

was to turn `gssSupport` *off* on Darwin, but the code actually also forced
it *on* on Linux.
This resulted in previous (e.g. overlays) `.override { gssSupport = false; }`
being ignored (#66499).

This commit fixes it by just respecting the old value when it doesn't need
to be forced to off.
This commit is contained in:
Niklas Hambüchen 2019-08-12 06:38:55 +02:00
parent c78fead206
commit b7dfc72a88

View file

@ -275,7 +275,7 @@ in
# `fetchurl' downloads a file from the network.
fetchurl = makeOverridable (import ../build-support/fetchurl) {
inherit lib stdenvNoCC;
curl = buildPackages.curl.override rec {
curl = buildPackages.curl.override (old: rec {
# break dependency cycles
fetchurl = stdenv.fetchurlBoot;
zlib = buildPackages.zlib.override { fetchurl = stdenv.fetchurlBoot; };
@ -292,7 +292,12 @@ in
};
# On darwin, libkrb5 needs bootstrap_cmds which would require
# converting many packages to fetchurl_boot to avoid evaluation cycles.
gssSupport = !stdenv.isDarwin && !stdenv.hostPlatform.isWindows;
# So turn gssSupport off there, and on Windows.
# On other platforms, keep the previous value.
gssSupport =
if stdenv.isDarwin || stdenv.hostPlatform.isWindows
then false
else old.gssSupport or true; # `? true` is the default
libkrb5 = buildPackages.libkrb5.override {
fetchurl = stdenv.fetchurlBoot;
inherit pkgconfig perl openssl;
@ -304,7 +309,7 @@ in
c-ares = buildPackages.c-ares.override { fetchurl = stdenv.fetchurlBoot; };
libev = buildPackages.libev.override { fetchurl = stdenv.fetchurlBoot; };
};
};
});
};
fetchRepoProject = callPackage ../build-support/fetchrepoproject { };