summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/tools/rust/cargo-fuzz/default.nix35
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 38 insertions, 1 deletions
diff --git a/pkgs/development/tools/rust/cargo-fuzz/default.nix b/pkgs/development/tools/rust/cargo-fuzz/default.nix
new file mode 100644
index 000000000000..cc5d90b223d6
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-fuzz/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, fetchurl, runCommand, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  name = "cargo-fuzz-${version}";
+  version = "0.5.3"; # Note to self: on 0.5.4, remove the hand-added Cargo.lock
+
+  src =
+    let
+      source = fetchFromGitHub {
+        owner = "rust-fuzz";
+        repo = "cargo-fuzz";
+        rev = version;
+        sha256 = "1l452fnjw7i10nrd4y4rssi5d457vgjp6rhdr9cnq32bjhdkprrs";
+      };
+      cargo-lock = fetchurl {
+        url = "https://gist.githubusercontent.com/Ekleog/7d5b62d13b7207aafa4c37d1bbdf2de7/raw/c6027fc1c531947f4d6836a3c4cba1b3e24df24c/Cargo.lock";
+        sha256 = "0d7b6kxfbfvwksybzrihylamg2zv5fmsk9m6xshryhwipskzzvmd";
+      };
+    in
+    runCommand "cargo-fuzz-src" {} ''
+      cp -R ${source} $out
+      chmod +w $out
+      cp ${cargo-lock} $out/Cargo.lock
+    '';
+
+  cargoSha256 = "0ajm8qp8hi7kn7199ywv26cmjv13phxv72lz8kcq97hxg17x0dkk";
+
+  meta = with stdenv.lib; {
+    description = "Command line helpers for fuzzing";
+    homepage = https://github.com/rust-fuzz/cargo-fuzz;
+    license = with licenses; [ mit asl20 ];
+    maintainers = [ maintainers.ekleog ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 187dece6c7f6..546a9d9bd76f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6850,7 +6850,7 @@ with pkgs;
 
   buildRustCrate = callPackage ../build-support/rust/build-rust-crate.nix { };
 
-  cargo-vendor = callPackage ../build-support/rust/cargo-vendor {};
+  cargo-vendor = callPackage ../build-support/rust/cargo-vendor { };
 
   carnix = (callPackage ../build-support/rust/carnix.nix { }).carnix { };
 
@@ -6875,6 +6875,8 @@ with pkgs;
 
   cargo-edit = callPackage ../tools/package-management/cargo-edit { };
 
+  cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { };
+
   rainicorn = callPackage ../development/tools/rust/rainicorn { };
   rustfmt = callPackage ../development/tools/rust/rustfmt { };
   rustracer = callPackage ../development/tools/rust/racer { };