From a3e64e81fcf4cc597138f4b89d81ffe84195c4f7 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Fri, 17 Apr 2020 22:16:41 +0200 Subject: [PATCH 1/2] pythonPackages.publicsuffix2: init at 2.2019-12-21 --- .../python-modules/publicsuffix2/default.nix | 26 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/development/python-modules/publicsuffix2/default.nix diff --git a/pkgs/development/python-modules/publicsuffix2/default.nix b/pkgs/development/python-modules/publicsuffix2/default.nix new file mode 100644 index 00000000000..fe360168aa5 --- /dev/null +++ b/pkgs/development/python-modules/publicsuffix2/default.nix @@ -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; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c6dfc9582c7..6a8c5a3d56a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5038,6 +5038,8 @@ in { publicsuffix = callPackage ../development/python-modules/publicsuffix {}; + publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 {}; + py = callPackage ../development/python-modules/py { }; pyacoustid = callPackage ../development/python-modules/pyacoustid { }; From 55d52851a6c650b2ce45d0752ed93b1de57e253a Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Fri, 17 Apr 2020 22:18:59 +0200 Subject: [PATCH 2/2] mitmproxy: 4.0.4 -> 5.1.1 --- pkgs/tools/networking/mitmproxy/default.nix | 50 ++++--------------- pkgs/tools/networking/mitmproxy/pytest5.patch | 31 ------------ 2 files changed, 11 insertions(+), 70 deletions(-) delete mode 100644 pkgs/tools/networking/mitmproxy/pytest5.patch diff --git a/pkgs/tools/networking/mitmproxy/default.nix b/pkgs/tools/networking/mitmproxy/default.nix index 7a623ab69a6..b9d873fad6a 100644 --- a/pkgs/tools/networking/mitmproxy/default.nix +++ b/pkgs/tools/networking/mitmproxy/default.nix @@ -4,47 +4,15 @@ with python3Packages; buildPythonPackage rec { pname = "mitmproxy"; - version = "4.0.4"; + version = "5.1.1"; src = fetchFromGitHub { owner = pname; repo = pname; 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 = '' # remove dependency constraints sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py @@ -61,17 +29,21 @@ buildPythonPackage rec { ''; propagatedBuildInputs = [ - blinker click certifi cryptography - h2 hyperframe kaitaistruct passlib - pyasn1 pyopenssl pyparsing pyperclip - ruamel_yaml tornado urwid brotlipy - sortedcontainers ldap3 wsproto setuptools + blinker brotli certifi cffi + click cryptography flask h11 + h2 hpack hyperframe itsdangerous + jinja2 kaitaistruct ldap3 markupsafe + passlib protobuf publicsuffix2 pyasn1 + pycparser pyopenssl pyparsing pyperclip + ruamel_yaml setuptools six sortedcontainers + tornado urwid werkzeug wsproto zstandard ]; checkInputs = [ beautifulsoup4 flask pytest requests glibcLocales asynctest parver pytest-asyncio + hypothesis ]; meta = with stdenv.lib; { diff --git a/pkgs/tools/networking/mitmproxy/pytest5.patch b/pkgs/tools/networking/mitmproxy/pytest5.patch deleted file mode 100644 index bfbf7253b9c..00000000000 --- a/pkgs/tools/networking/mitmproxy/pytest5.patch +++ /dev/null @@ -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')