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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
{ lib
, fetchFromGitHub
, buildPythonPackage
, pythonOlder
# Mitmproxy requirements
, asgiref
, blinker
, brotli
, certifi
, cryptography
, flask
, h11
, h2
, hyperframe
, kaitaistruct
, ldap3
, mitmproxy-wireguard
, msgpack
, passlib
, protobuf
, publicsuffix2
, pyopenssl
, pyparsing
, pyperclip
, ruamel-yaml
, setuptools
, sortedcontainers
, tornado
, urwid
, wsproto
, zstandard
# Additional check requirements
, hypothesis
, parver
, pytest-asyncio
, pytest-timeout
, pytest-xdist
, pytestCheckHook
, requests
}:
buildPythonPackage rec {
pname = "mitmproxy";
version = "9.0.1";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "mitmproxy";
repo = "mitmproxy";
rev = "refs/tags/${version}";
sha256 = "sha256-CINKvRnBspciS+wefJB8gzBE13L8CjbYCkmLmTTeYlA=";
};
propagatedBuildInputs = [
setuptools
# setup.py
asgiref
blinker
brotli
certifi
cryptography
flask
h11
h2
hyperframe
kaitaistruct
ldap3
mitmproxy-wireguard
msgpack
passlib
protobuf
pyopenssl
publicsuffix2
pyparsing
pyperclip
ruamel-yaml
sortedcontainers
tornado
urwid
wsproto
zstandard
];
checkInputs = [
hypothesis
parver
pytest-asyncio
pytest-timeout
pytest-xdist
pytestCheckHook
requests
];
postPatch = ''
# remove dependency constraints
sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?\( \?, \?!=\([0-9]\.\?\)\+\)\?//' -i setup.py
'';
preCheck = ''
export HOME=$(mktemp -d)
'';
disabledTests = [
# Tests require a git repository
"test_get_version"
# https://github.com/mitmproxy/mitmproxy/commit/36ebf11916704b3cdaf4be840eaafa66a115ac03
# Tests require terminal
"test_integration"
"test_contentview_flowview"
"test_flowview"
# ValueError: Exceeds the limit (4300) for integer string conversion
"test_roundtrip_big_integer"
"test_wireguard"
"test_commands_exist"
"test_statusbar"
];
disabledTestPaths = [
# teardown of half the tests broken
"test/mitmproxy/addons/test_onboarding.py"
];
dontUsePytestXdist = true;
pythonImportsCheck = [ "mitmproxy" ];
meta = with lib; {
description = "Man-in-the-middle proxy";
homepage = "https://mitmproxy.org/";
license = licenses.mit;
maintainers = with maintainers; [ kamilchm SuperSandro2000 ];
};
}
|