python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / security / honggfuzz / default.nix
blob5d709a4441d306cbf6488aa23cfede2fa320566b
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , callPackage
5 , makeWrapper
6 , clang
7 , llvm
8 # TODO: switch to latest versions when 2.6 release is out to include
9 #   https://github.com/google/honggfuzz/commit/90fdf81006614664ef05e5e3c6f94d91610f11b2
10 , libbfd_2_38, libopcodes_2_38
11 , libunwind
12 , libblocksruntime }:
14 stdenv.mkDerivation rec {
15   pname = "honggfuzz";
16   version = "2.5";
18   src = fetchFromGitHub {
19     owner = "google";
20     repo = pname;
21     rev = version;
22     sha256 = "sha256-TkyUKmiiSAfCnfQhSOUxuce6+dRyMmHy7vFK59jPIxM=";
23   };
25   postPatch = ''
26     substituteInPlace hfuzz_cc/hfuzz-cc.c \
27       --replace '"clang' '"${clang}/bin/clang'
28   '';
30   enableParallelBuilding = true;
32   nativeBuildInputs = [ makeWrapper ];
33   buildInputs = [ llvm ];
34   propagatedBuildInputs = [ libbfd_2_38 libopcodes_2_38 libunwind libblocksruntime ];
36   makeFlags = [ "PREFIX=$(out)" ];
38   meta = {
39     description =
40       "A security oriented, feedback-driven, evolutionary, easy-to-use fuzzer";
41     longDescription = ''
42       Honggfuzz is a security oriented, feedback-driven, evolutionary,
43       easy-to-use fuzzer with interesting analysis options. It is
44       multi-process and multi-threaded, blazingly fast when the persistent
45       fuzzing mode is used and has a solid track record of uncovered security
46       bugs.
48       Honggfuzz uses low-level interfaces to monitor processes and it will
49       discover and report hijacked/ignored signals from crashes. Feed it
50       a simple corpus directory (can even be empty for the feedback-driven
51       fuzzing), and it will work its way up, expanding it by utilizing
52       feedback-based coverage metrics.
53     '';
54     homepage = "https://honggfuzz.dev/";
55     license = lib.licenses.asl20;
56     platforms = [ "x86_64-linux" ];
57     maintainers = with lib.maintainers; [ cpu chivay ];
58   };