From e1aecec4cd4c98756839631efa3637fe8124d1cc Mon Sep 17 00:00:00 2001 From: Yurii Rashkovskii Date: Fri, 23 Feb 2018 11:17:03 +0700 Subject: [PATCH] build-support/rust: make use of abandoned cargoUpdateHook Previously, cargoUpdateHook was meaningful as it was used in [`cargo-fetch-deps`](https://github.com/NixOS/nixpkgs/blob/19d3cf81d3436a6600f261579b55b9132a6ca8fb/pkgs/build-support/rust/fetch-cargo-deps#L71). However, this entire file was removed in 5f8cf0048ea089fa73d17512fc4f9f0f0644e225. As far as I can tell, nothing in the code is using it, but it is still being passed around: https://github.com/NixOS/nixpkgs/search?q=cargoUpdateHook&type=Code&utf8=%E2%9C%93 There are, however, legitimate use cases for it. For example, in some software, some dependencies are not locked in Cargo.toml and this causes Cargo to try fetching another version of them. This doesn't work well with vendoring crates. This hook allows to inject patching or whatever necessary workarounds in the crate vendoring process. I suppose that's what it was for in there in the first place. This patch restores this hook and makes it usable again. --- pkgs/build-support/rust/fetchcargo.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/build-support/rust/fetchcargo.nix b/pkgs/build-support/rust/fetchcargo.nix index d03d85c0788..42a3ac27cb5 100644 --- a/pkgs/build-support/rust/fetchcargo.nix +++ b/pkgs/build-support/rust/fetchcargo.nix @@ -21,6 +21,8 @@ stdenv.mkDerivation { export CARGO_HOME=$(mktemp -d cargo-home.XXX) + ${cargoUpdateHook} + cargo vendor cp -ar vendor $out