From 62dcb3d5d0d22f10a128a20a3acf099b2b66bf79 Mon Sep 17 00:00:00 2001 From: Andrew Childs Date: Thu, 18 Jan 2018 00:00:20 +0900 Subject: [PATCH] buildRustCrate: Allow arbitrary attributes in crateOverrides --- pkgs/build-support/rust/build-rust-crate.nix | 10 ++++++++-- 1 file 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;