rustPlatform: forward unpack hooks to cargo fetch #221093
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes
Sometimes it's more ergonomic to set up the build environment in hooks, to add to the default behaviour rather than replacing it. It's very surprising that the fetcher works fine with a custom
unpackPhase
, but not with custompreUnpack
orpostUnpack
.Packages that use
preUnpack
orpostUnpack
and Cargo FODs seem to be very rare. I searched Nixpkgs for files containing one ofcargoHash
,cargoDeps
, andcargoSha256
, and one ofpreUnpack
orpostUnpack
, and only found two such packages:python3.pkgs.tokenizers
andrustdesk
. Neither of their Cargo FOD hashes are affected by this change. So if that's any indication, we're unlikely to be breaking many out-of-tree hashes with these changes either.Here's an example of where this is useful. I want to apply a patch to a crate dependency, so I patch the program to use a local crate override, then unpack the crate in
postUnpack
.Things done
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)