Merge pull request #51028 from clefru/tmp-cargo-config

buildRustPackage: write cargo config to temporary file instead of source dir
This commit is contained in:
Jörg Thalheim 2018-11-26 15:00:16 +00:00
commit dc8aca448d
No known key found for this signature in database
GPG Key ID: CA4106B8D7CC79FA

View File

@ -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;
'';