summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ericson <git@JohnEricson.me>2022-08-07 19:21:33 -0400
committerGitHub <noreply@github.com>2022-08-07 19:21:33 -0400
commit022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf (patch)
tree077c9c340ca76db75bac6549ad92f6e3e891a6f2
parent7ca652795e39b1c61250546492e4f417185246cb (diff)
parentd5baefeb34c0a1e64d8b2e00ba4c19b4a272f01f (diff)
Merge pull request #185612 from obsidiansystems/buildRustCrate-21.05-no-choke-on-deprelease-21.05nixos-21.05-smallnixos-21.05-aarch64nixos-21.05
[Backport release 21.05] buildRustCrate: don't try to set CARGO_FEATURE_ variables for dep: fe…
-rw-r--r--pkgs/build-support/rust/build-rust-crate/default.nix9
1 files changed, 7 insertions, 2 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
index ab6b867725f1..bc0aa36f17d5 100644
--- a/pkgs/build-support/rust/build-rust-crate/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/default.nix
@@ -257,9 +257,14 @@ stdenv.mkDerivation (rec {
# Create a list of features that are enabled by the crate itself and
# through the features argument of buildRustCrate. Exclude features
- # with a forward slash, since they are passed through to dependencies.
+ # with a forward slash, since they are passed through to dependencies,
+ # and dep: features, since they're internal-only and do nothing except
+ # enable optional dependencies.
crateFeatures = lib.optionals (crate ? features)
- (builtins.filter (f: !lib.hasInfix "/" f) (crate.features ++ features));
+ (builtins.filter
+ (f: !(lib.hasInfix "/" f || lib.hasPrefix "dep:" f))
+ (crate.features ++ features)
+ );
libName = if crate ? libName then crate.libName else crate.crateName;
libPath = if crate ? libPath then crate.libPath else "";