diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix index 6300587a7d1..7d23a3a7f8f 100644 --- a/pkgs/build-support/fetchurl/default.nix +++ b/pkgs/build-support/fetchurl/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenvNoCC, curl }: # Note that `curl' may be `null', in case of the native stdenvNoCC. +{ lib, buildPackages ? { inherit stdenvNoCC; }, stdenvNoCC, curl }: # Note that `curl' may be `null', in case of the native stdenvNoCC. let @@ -10,7 +10,7 @@ let # resulting store derivations (.drv files) much smaller, which in # turn makes nix-env/nix-instantiate faster. mirrorsFile = - stdenvNoCC.mkDerivation ({ + buildPackages.stdenvNoCC.mkDerivation ({ name = "mirrors-list"; builder = ./write-mirror-list.sh; preferLocalBuild = true; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a4ae7430e0f..5a1b9cfab69 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -283,8 +283,10 @@ in fetchhg = callPackage ../build-support/fetchhg { }; # `fetchurl' downloads a file from the network. - fetchurl = makeOverridable (import ../build-support/fetchurl) { - inherit lib stdenvNoCC; + fetchurl = if stdenv.buildPlatform != stdenv.hostPlatform + then buildPackages.fetchurl # No need to do special overrides twice, + else makeOverridable (import ../build-support/fetchurl) { + inherit lib stdenvNoCC buildPackages; curl = buildPackages.curl.override (old: rec { # break dependency cycles fetchurl = stdenv.fetchurlBoot;