diff --git a/pkgs/build-support/rust/fetch-cargo-tarball/default.nix b/pkgs/build-support/rust/fetch-cargo-tarball/default.nix index adbfe98d81039..1ed20e072c81e 100644 --- a/pkgs/build-support/rust/fetch-cargo-tarball/default.nix +++ b/pkgs/build-support/rust/fetch-cargo-tarball/default.nix @@ -73,7 +73,7 @@ in stdenv.mkDerivation ({ ${cargoUpdateHook} - # Override the `http.cainfo` option usually specified in `.cargo/config`. + # Override the `http.cainfo` option usually specified in `.cargo/config.toml`. export CARGO_HTTP_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt if grep '^source = "git' Cargo.lock; then @@ -96,7 +96,8 @@ in stdenv.mkDerivation ({ # Packages with git dependencies generate non-default cargo configs, so # always install it rather than trying to write a standard default template. - install -D $CARGO_CONFIG $name/.cargo/config; + install -D $CARGO_CONFIG $name/.cargo/config.toml; + ln -s .cargo/config.toml .cargo/config runHook postBuild ''; diff --git a/pkgs/build-support/rust/hooks/cargo-setup-hook.sh b/pkgs/build-support/rust/hooks/cargo-setup-hook.sh index 693c0b08759ea..928c07983f7ca 100644 --- a/pkgs/build-support/rust/hooks/cargo-setup-hook.sh +++ b/pkgs/build-support/rust/hooks/cargo-setup-hook.sh @@ -22,7 +22,7 @@ cargoSetupPostUnpackHook() { mkdir .cargo fi - config="$cargoDepsCopy/.cargo/config"; + config="$cargoDepsCopy/.cargo/config.toml"; if [[ ! -e $config ]]; then config=@defaultConfig@ fi; @@ -30,11 +30,12 @@ cargoSetupPostUnpackHook() { tmp_config=$(mktemp) substitute $config $tmp_config \ --subst-var-by vendor "$cargoDepsCopy" - cat ${tmp_config} >> .cargo/config + cat ${tmp_config} >> .cargo/config.toml - cat >> .cargo/config <<'EOF' + cat >> .cargo/config.toml <<'EOF' @cargoConfig@ EOF + ln -s .cargo/config.toml .cargo/config echo "Finished cargoSetupPostUnpackHook" } diff --git a/pkgs/build-support/rust/import-cargo-lock.nix b/pkgs/build-support/rust/import-cargo-lock.nix index 3db3f0e5e1f04..a68b121264100 100644 --- a/pkgs/build-support/rust/import-cargo-lock.nix +++ b/pkgs/build-support/rust/import-cargo-lock.nix @@ -229,7 +229,7 @@ let else "cp $lockFileContentsPath $out/Cargo.lock" } - cat > $out/.cargo/config < $out/.cargo/config.toml <> $out/.cargo/config <> $out/.cargo/config.toml <> $out/.cargo/config + cat "$crate/.cargo-config" >> $out/.cargo/config.toml + ln -s .cargo/config.toml .cargo/config fi fi done