From 0e5657498d9606a85e776d9c90f9ecd0321435a6 Mon Sep 17 00:00:00 2001 From: Vincent Haupert Date: Thu, 23 Jul 2020 13:28:26 +0200 Subject: [PATCH] mitmproxy: convert to python3Packages --- .../python-modules/mitmproxy/default.nix | 114 ++++++++++++++++++ pkgs/tools/networking/mitmproxy/default.nix | 55 --------- pkgs/top-level/all-packages.nix | 4 +- pkgs/top-level/python-packages.nix | 2 + 4 files changed, 117 insertions(+), 58 deletions(-) create mode 100644 pkgs/development/python-modules/mitmproxy/default.nix delete mode 100644 pkgs/tools/networking/mitmproxy/default.nix diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix new file mode 100644 index 00000000000..90fccdcd48c --- /dev/null +++ b/pkgs/development/python-modules/mitmproxy/default.nix @@ -0,0 +1,114 @@ +{ stdenv +, fetchFromGitHub +, buildPythonPackage +, isPy27 +# Mitmproxy requirements +, blinker +, brotli +, certifi +, click +, cryptography +, flask +, h2 +, hyperframe +, kaitaistruct +, ldap3 +, passlib +, protobuf +, pyasn1 +, pyopenssl +, pyparsing +, pyperclip +, ruamel_yaml +, setuptools +, sortedcontainers +, tornado +, urwid +, wsproto +, publicsuffix2 +, zstandard +# Additional check requirements +, beautifulsoup4 +, glibcLocales +, pytest +, requests +, asynctest +, parver +, pytest-asyncio +, hypothesis +}: + +buildPythonPackage rec { + pname = "mitmproxy"; + version = "5.1.1"; + disabled = isPy27; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "1lirlckpvd3c6s6q3p32w4k4yfna5mlgr1x9g39lhzzq0sdiz3lk"; + }; + + postPatch = '' + # remove dependency constraints + sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py + ''; + + doCheck = (!stdenv.isDarwin); + + # examples.complex.xss_scanner doesn't import correctly with pytest5 + checkPhase = '' + export HOME=$(mktemp -d) + export LC_CTYPE=en_US.UTF-8 + pytest --ignore test/examples \ + -k 'not test_find_unclaimed_URLs and not test_tcp' + ''; + + propagatedBuildInputs = [ + setuptools + # setup.py + blinker + brotli + certifi + click + cryptography + flask + h2 + hyperframe + kaitaistruct + ldap3 + passlib + protobuf + publicsuffix2 + pyasn1 + pyopenssl + pyparsing + pyperclip + ruamel_yaml + sortedcontainers + tornado + urwid + wsproto + zstandard + ]; + + checkInputs = [ + asynctest + beautifulsoup4 + flask + glibcLocales + hypothesis + parver + pytest + pytest-asyncio + requests + ]; + + meta = with stdenv.lib; { + description = "Man-in-the-middle proxy"; + homepage = "https://mitmproxy.org/"; + license = licenses.mit; + maintainers = with maintainers; [ fpletz kamilchm ]; + }; +} diff --git a/pkgs/tools/networking/mitmproxy/default.nix b/pkgs/tools/networking/mitmproxy/default.nix deleted file mode 100644 index b9d873fad6a..00000000000 --- a/pkgs/tools/networking/mitmproxy/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ stdenv, fetchFromGitHub, python3Packages, glibcLocales, fetchpatch }: - -with python3Packages; - -buildPythonPackage rec { - pname = "mitmproxy"; - version = "5.1.1"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "v${version}"; - sha256 = "1lirlckpvd3c6s6q3p32w4k4yfna5mlgr1x9g39lhzzq0sdiz3lk"; - }; - - postPatch = '' - # remove dependency constraints - sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py - ''; - - doCheck = (!stdenv.isDarwin); - - # examples.complex.xss_scanner doesn't import correctly with pytest5 - checkPhase = '' - export HOME=$(mktemp -d) - export LC_CTYPE=en_US.UTF-8 - pytest --ignore test/examples \ - -k 'not test_find_unclaimed_URLs and not test_tcp' - ''; - - propagatedBuildInputs = [ - 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; { - description = "Man-in-the-middle proxy"; - homepage = "https://mitmproxy.org/"; - license = licenses.mit; - maintainers = with maintainers; [ fpletz kamilchm ]; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9bce07e4f5f..0243385f77e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5470,9 +5470,7 @@ in mirrorbits = callPackage ../servers/mirrorbits { }; - mitmproxy = callPackage ../tools/networking/mitmproxy { - python3Packages = python37Packages; - }; + mitmproxy = with python3Packages; toPythonApplication mitmproxy; mjpegtools = callPackage ../tools/video/mjpegtools { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ddc1375f276..ab7000c4716 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3657,6 +3657,8 @@ in { mistune = callPackage ../development/python-modules/mistune { }; + mitmproxy = callPackage ../development/python-modules/mitmproxy { }; + mixpanel = callPackage ../development/python-modules/mixpanel { }; mkl-service = callPackage ../development/python-modules/mkl-service { };