about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
blob: 7ccc852835993f69fcb1b09ac05a4bb30b706977 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{ stdenv, fetchFromGitHub, fetchurl, runCommand, rustPlatform }:

rustPlatform.buildRustPackage rec {
  pname = "cargo-fuzz";
  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 = "19kldw2sx0jd89q5q9cwmdcaan148s45fxlb2m0vdxwb69crb7yp";

  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;
  };
}