1{ lib
2, stdenv
3, fetchFromGitHub
4, python3
5}:
6
7python3.pkgs.buildPythonApplication rec {
8 pname = "boofuzz";
9 version = "0.4.2";
10 pyproject = true;
11
12 src = fetchFromGitHub {
13 owner = "jtpereyda";
14 repo = "boofuzz";
15 rev = "refs/tags/v${version}";
16 hash = "sha256-ffZVFmfDAJ+Qn3hbeHY/CvYgpDLxB+jaYOiYyZqZ7mo=";
17 };
18
19 nativeBuildInputs = with python3.pkgs; [
20 poetry-core
21 ];
22
23 propagatedBuildInputs = with python3.pkgs; [
24 attrs
25 click
26 colorama
27 flask
28 funcy
29 future
30 psutil
31 pyserial
32 pydot
33 six
34 tornado
35 ];
36
37 nativeCheckInputs = with python3.pkgs; [
38 mock
39 netifaces
40 pytest-bdd
41 pytestCheckHook
42 ];
43
44 disabledTests = [
45 "TestNetworkMonitor"
46 "TestNoResponseFailure"
47 "TestProcessMonitor"
48 "TestSocketConnection"
49 ] ++ lib.optionals stdenv.isDarwin [
50 "test_time_repeater"
51 ];
52
53 pythonImportsCheck = [
54 "boofuzz"
55 ];
56
57 meta = with lib; {
58 description = "Network protocol fuzzing tool";
59 homepage = "https://github.com/jtpereyda/boofuzz";
60 changelog = "https://github.com/jtpereyda/boofuzz/blob/v${version}/CHANGELOG.rst";
61 license = with licenses; [ gpl2Plus ];
62 maintainers = with maintainers; [ fab ];
63 };
64}