summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/build-support/rust/build-rust-crate.nix10
1 files changed, 8 insertions, 2 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate.nix b/pkgs/build-support/rust/build-rust-crate.nix
index 72bb3b80492..e36fab36bf9 100644
--- a/pkgs/build-support/rust/build-rust-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate.nix
@@ -297,9 +297,15 @@ in
 crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides }:
 
 let crate = crate_ // (lib.attrByPath [ crate_.crateName ] (attr: {}) crateOverrides crate_);
+    processedAttrs = [
+      "src" "buildInputs" "crateBin" "crateLib" "libName" "libPath"
+      "buildDependencies" "dependencies" "features"
+      "crateName" "version" "build" "authors" "colors"
+    ];
+    extraDerivationAttrs = lib.filterAttrs (n: v: ! lib.elem n processedAttrs) crate;
     buildInputs_ = buildInputs;
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
 
     inherit (crate) crateName;
 
@@ -372,7 +378,7 @@ stdenv.mkDerivation rec {
     };
     installPhase = installCrate crateName;
 
-}) {
+} // extraDerivationAttrs)) {
   rust = rustc;
   release = true;
   verbose = true;