summary refs log tree commit diff
path: root/pkgs/build-support/rust
diff options
context:
space:
mode:
authorLéo Gaspard <leo@gaspard.io>2018-08-13 14:44:30 +0900
committerLéo Gaspard <leo@gaspard.io>2018-08-13 22:07:58 +0900
commit48e5fbe8eeddf9fbe1fca3c9ee0e5fd5ac1bafb0 (patch)
tree6ec8c21015436f18619c0320d844002c17ccf287 /pkgs/build-support/rust
parentf8e8ecde51b49132d7f8d5adb971c0e37eddcdc2 (diff)
downloadnixlib-48e5fbe8eeddf9fbe1fca3c9ee0e5fd5ac1bafb0.tar
nixlib-48e5fbe8eeddf9fbe1fca3c9ee0e5fd5ac1bafb0.tar.gz
nixlib-48e5fbe8eeddf9fbe1fca3c9ee0e5fd5ac1bafb0.tar.bz2
nixlib-48e5fbe8eeddf9fbe1fca3c9ee0e5fd5ac1bafb0.tar.lz
nixlib-48e5fbe8eeddf9fbe1fca3c9ee0e5fd5ac1bafb0.tar.xz
nixlib-48e5fbe8eeddf9fbe1fca3c9ee0e5fd5ac1bafb0.tar.zst
nixlib-48e5fbe8eeddf9fbe1fca3c9ee0e5fd5ac1bafb0.zip
buildRustPackage: allow patches to fix Cargo.lock
Diffstat (limited to 'pkgs/build-support/rust')
-rw-r--r--pkgs/build-support/rust/default.nix5
-rw-r--r--pkgs/build-support/rust/fetchcargo.nix6
2 files changed, 8 insertions, 3 deletions
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix
index fb1d6e390ae1..820989a76206 100644
--- a/pkgs/build-support/rust/default.nix
+++ b/pkgs/build-support/rust/default.nix
@@ -7,6 +7,8 @@ in
 { name, cargoSha256 ? "unset"
 , src ? null
 , srcs ? null
+, cargoPatches ? []
+, patches ? []
 , sourceRoot ? null
 , logLevel ? ""
 , buildInputs ? []
@@ -23,6 +25,7 @@ let
   cargoDeps = if cargoVendorDir == null
     then fetchcargo {
         inherit name src srcs sourceRoot cargoUpdateHook;
+        patches = cargoPatches;
         sha256 = cargoSha256;
       }
     else null;
@@ -44,6 +47,8 @@ in stdenv.mkDerivation (args // {
 
   buildInputs = [ cacert git rust.cargo rust.rustc ] ++ buildInputs;
 
+  patches = cargoPatches ++ patches;
+
   configurePhase = args.configurePhase or ''
     runHook preConfigure
     # noop
diff --git a/pkgs/build-support/rust/fetchcargo.nix b/pkgs/build-support/rust/fetchcargo.nix
index 42a3ac27cb5b..2670ed528640 100644
--- a/pkgs/build-support/rust/fetchcargo.nix
+++ b/pkgs/build-support/rust/fetchcargo.nix
@@ -1,11 +1,11 @@
 { stdenv, cacert, git, rust, cargo-vendor }:
-{ name ? "cargo-deps", src, srcs, sourceRoot, sha256, cargoUpdateHook ? "" }:
+{ name ? "cargo-deps", src, srcs, patches, sourceRoot, sha256, cargoUpdateHook ? "" }:
 stdenv.mkDerivation {
   name = "${name}-vendor";
   nativeBuildInputs = [ cacert cargo-vendor git rust.cargo ];
-  inherit src srcs sourceRoot;
+  inherit src srcs patches sourceRoot;
 
-  phases = "unpackPhase installPhase";
+  phases = "unpackPhase patchPhase installPhase";
 
   installPhase = ''
     if [[ ! -f Cargo.lock ]]; then