From 8d4fbc55d839374090fbf45250d40e18e12b4e48 Mon Sep 17 00:00:00 2001 From: Clemens Fruhwirth Date: Sun, 25 Nov 2018 15:20:24 +0100 Subject: [PATCH] Write cargo config to temporary file instead of source dir. ... as this fails if the source dir contains a "config" directory. --- pkgs/build-support/rust/fetchcargo.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/rust/fetchcargo.nix b/pkgs/build-support/rust/fetchcargo.nix index 9e77f8817b24..c231799552f4 100644 --- a/pkgs/build-support/rust/fetchcargo.nix +++ b/pkgs/build-support/rust/fetchcargo.nix @@ -38,18 +38,19 @@ stdenv.mkDerivation { fi export CARGO_HOME=$(mktemp -d cargo-home.XXX) + CARGO_CONFIG=$(mktemp cargo-config.XXXX) ${cargoUpdateHook} mkdir -p $out - cargo vendor $out | cargo-vendor-normalise > config + cargo vendor $out | cargo-vendor-normalise > $CARGO_CONFIG # fetchcargo used to never keep the config output by cargo vendor # and instead hardcode the config in ./fetchcargo-default-config.toml. # This broke on packages needing git dependencies, so now we keep the config. # But not to break old cargoSha256, if the previous behavior was enough, # we don't store the config. - if ! cmp config ${./fetchcargo-default-config.toml} > /dev/null; then - install -Dt $out/.cargo config; + if ! cmp $CARGO_CONFIG ${./fetchcargo-default-config.toml} > /dev/null; then + install -Dt $out/.cargo $CARGO_CONFIG; fi; '';