Merge pull request #85458 from rnhmjoj/mitmproxy

mitmproxy: 4.0.4 -> 5.1.1
This commit is contained in:
Michele Guerini Rocco 2020-04-19 12:12:41 +02:00 committed by GitHub
commit d4d6d26588
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 70 deletions

View file

@ -0,0 +1,26 @@
{ stdenv, buildPythonPackage, fetchFromGitHub, requests }:
buildPythonPackage rec {
pname = "publicsuffix2";
version = "2.20191221";
# Tests are missing in the sdist
# See: https://github.com/nexB/python-publicsuffix2/issues/12
src = fetchFromGitHub {
owner = "nexB";
repo = "python-publicsuffix2";
rev = "release-2.2019-12-21";
sha256 = "1dkvfvl0izq9hqzilnw8ipkbgjs9xyad9p21i3864hzinbh0wp9r";
};
nativeBuildInputs = [ requests ];
meta = with stdenv.lib; {
description = ''
Get a public suffix for a domain name using the Public Suffix
List. Forked from and using the same API as the publicsuffix package.
'';
homepage = "https://pypi.python.org/pypi/publicsuffix2/";
license = licenses.mpl20;
};
}

View file

@ -4,47 +4,15 @@ with python3Packages;
buildPythonPackage rec { buildPythonPackage rec {
pname = "mitmproxy"; pname = "mitmproxy";
version = "4.0.4"; version = "5.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "14i9dkafvyl15rq2qa8xldscn5lmkk2g52kbi2hl63nzx9yibx6r"; sha256 = "1lirlckpvd3c6s6q3p32w4k4yfna5mlgr1x9g39lhzzq0sdiz3lk";
}; };
patches = [
(fetchpatch {
# Tests failed due to expired test certificates,
# https://github.com/mitmproxy/mitmproxy/issues/3316
# TODO: remove on next update
name = "test-certificates.patch";
url = "https://github.com/mitmproxy/mitmproxy/commit/1b6a8d6acd3d70f9b9627ad4ae9def08103f8250.patch";
sha256 = "03y79c25yir7d8xj79czdc81y3irqq1i3ks9ca0mv1az8b7xsvfv";
})
(fetchpatch {
# 0.13 <= wsproto < 0.14 patch
# https://github.com/mitmproxy/mitmproxy/issues/3459
# TODO: remove on next update
name = "wsproto-0.13.patch";
url = "https://github.com/mitmproxy/mitmproxy/commit/70777a1b6ed64af9cafcdef223a8a260ecc96864.patch";
sha256 = "1ddxdr7js510kzyq3gyks4k5k1n8zb1i9amxw7wzmi1dcg8kqw9a";
# We strip these bounds anyway
excludes = [ "setup.py" ];
})
(fetchpatch {
# Fix for newer pytest disallowing calling fixtures
# https://github.com/mitmproxy/mitmproxy/issues/3403
# TODO: remove on next update
name = "dont-call-fixtures.patch";
url = "https://github.com/mitmproxy/mitmproxy/commit/ce28721458c8cc71de86513a5110676e9763041b.patch";
sha256 = "05pljr28lx7l1xgswqr9sz8dnhvc7npzh8xg2p9hignf159kd54d";
# Irrelevant in nixpkgs
excludes = [ "setup.py" "setup.cfg" "release/docker/*" ];
})
./pytest5.patch
];
postPatch = '' postPatch = ''
# remove dependency constraints # remove dependency constraints
sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py
@ -61,17 +29,21 @@ buildPythonPackage rec {
''; '';
propagatedBuildInputs = [ propagatedBuildInputs = [
blinker click certifi cryptography blinker brotli certifi cffi
h2 hyperframe kaitaistruct passlib click cryptography flask h11
pyasn1 pyopenssl pyparsing pyperclip h2 hpack hyperframe itsdangerous
ruamel_yaml tornado urwid brotlipy jinja2 kaitaistruct ldap3 markupsafe
sortedcontainers ldap3 wsproto setuptools passlib protobuf publicsuffix2 pyasn1
pycparser pyopenssl pyparsing pyperclip
ruamel_yaml setuptools six sortedcontainers
tornado urwid werkzeug wsproto zstandard
]; ];
checkInputs = [ checkInputs = [
beautifulsoup4 flask pytest beautifulsoup4 flask pytest
requests glibcLocales requests glibcLocales
asynctest parver pytest-asyncio asynctest parver pytest-asyncio
hypothesis
]; ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -1,31 +0,0 @@
diff --git a/test/mitmproxy/net/test_tls.py b/test/mitmproxy/net/test_tls.py
index 489bf89f..c78472e3 100644
--- a/test/mitmproxy/net/test_tls.py
+++ b/test/mitmproxy/net/test_tls.py
@@ -87,14 +87,16 @@ def test_get_client_hello():
rfile = io.BufferedReader(io.BytesIO(
FULL_CLIENT_HELLO_NO_EXTENSIONS[:30]
))
- with pytest.raises(exceptions.TlsProtocolException, message="Unexpected EOF"):
+ with pytest.raises(exceptions.TlsProtocolException):
tls.get_client_hello(rfile)
+ pytest.fail("Unexpected EOF")
rfile = io.BufferedReader(io.BytesIO(
b"GET /"
))
- with pytest.raises(exceptions.TlsProtocolException, message="Expected TLS record"):
+ with pytest.raises(exceptions.TlsProtocolException):
tls.get_client_hello(rfile)
+ pytest.fail("Expected TLS record")
class TestClientHello:
@@ -153,5 +155,6 @@ class TestClientHello:
b"\x01\x00\x00\x03" + # handshake header
b"foo"
))
- with pytest.raises(exceptions.TlsProtocolException, message='Cannot parse Client Hello'):
+ with pytest.raises(exceptions.TlsProtocolException):
tls.ClientHello.from_file(rfile)
+ pytest.fail('Cannot parse Client Hello')

View file

@ -5038,6 +5038,8 @@ in {
publicsuffix = callPackage ../development/python-modules/publicsuffix {}; publicsuffix = callPackage ../development/python-modules/publicsuffix {};
publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 {};
py = callPackage ../development/python-modules/py { }; py = callPackage ../development/python-modules/py { };
pyacoustid = callPackage ../development/python-modules/pyacoustid { }; pyacoustid = callPackage ../development/python-modules/pyacoustid { };