From 5f5af9535aedd0e42ee5cff3d96c056b17fbcfdb Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Tue, 9 Sep 2014 00:06:10 +0200 Subject: [PATCH] update distribution: pip install now works on Windows --- requirements.txt | 18 ++------ setup.py | 105 ++++++++++++++++++++++++++++-------------- test/requirements.txt | 5 -- 3 files changed, 74 insertions(+), 54 deletions(-) delete mode 100644 test/requirements.txt diff --git a/requirements.txt b/requirements.txt index 8c03d3648..c364d3a47 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,15 +1,3 @@ -Flask>=0.9 -Jinja2>=2.7 -MarkupSafe>=0.18 -Pillow>=2.3.0,<2.4 -Werkzeug>=0.8.3 -lxml>=3.2.1 -netlib>=0.10 -pathod>=0.9.2 -pyOpenSSL>=0.14 -pyasn1>=0.1.7 -requests>=1.2.2 -urwid>=1.1.1 -wsgiref>=0.1.2 -jsbeautifier>=1.4.0 -cssutils>=1.0,<1.1 \ No newline at end of file +-e git+https://github.com/mitmproxy/netlib.git#egg=netlib +-e git+https://github.com/mitmproxy/pathod.git#egg=pathod +-e .[dev, contentviews] \ No newline at end of file diff --git a/setup.py b/setup.py index df9c712f6..a18dda3cf 100644 --- a/setup.py +++ b/setup.py @@ -70,43 +70,80 @@ def findPackages(path, dataExclude=[]): package_data[module] = acc return packages, package_data + with open(os.path.join(pdir(), "README.txt")) as f: long_description = f.read() packages, package_data = findPackages("libmproxy") + + +scripts = ["mitmdump"] +if os.name != "nt": + scripts.append("mitmproxy") + +deps = { + "netlib>=%s" % version.MINORVERSION, + "pyasn1>0.1.2", + "requests>=2.4.0", + "pyOpenSSL>=0.14", + "Flask>=0.10.1" +} +script_deps = { + "mitmproxy": { + "urwid>=1.1", + "lxml>=3.3.6", + "Pillow>=2.3.0", + }, + "mitmdump": set() +} +for script in scripts: + deps.update(script_deps[script]) +if os.name == "nt": + deps.add("pydivert>=0.0.4") # Transparent proxying on Windows +console_scripts = ["%s = libmproxy.main:%s" % (s, s) for s in scripts] + + + setup( - name = "mitmproxy", - version = version.VERSION, - description = "An interactive, SSL-capable, man-in-the-middle HTTP proxy for penetration testers and software developers.", - long_description = long_description, - author = "Aldo Cortesi", - author_email = "aldo@corte.si", - url = "http://mitmproxy.org", - packages = packages, - package_data = package_data, - scripts = ["mitmproxy", "mitmdump"], - classifiers = [ - "License :: OSI Approved :: MIT License", - "Development Status :: 5 - Production/Stable", - "Environment :: Console", - "Environment :: Console :: Curses", - "Operating System :: MacOS :: MacOS X", - "Operating System :: POSIX", - "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Topic :: Security", - "Topic :: Internet", - "Topic :: Internet :: WWW/HTTP", - "Topic :: Internet :: Proxy Servers", - "Topic :: Software Development :: Testing" - ], - install_requires=[ - "netlib>=%s"%version.MINORVERSION, - "urwid>=1.1", - "pyasn1>0.1.2", - "requests>=1.2.2", - "pyopenssl>=0.14", - "Pillow>=2.3.0", - "lxml", - "flask" + name="mitmproxy", + version=version.VERSION, + description="An interactive, SSL-capable, man-in-the-middle HTTP proxy for penetration testers and software developers.", + long_description=long_description, + author="Aldo Cortesi", + author_email="aldo@corte.si", + url="http://mitmproxy.org", + packages=packages, + package_data=package_data, + classifiers=[ + "License :: OSI Approved :: MIT License", + "Development Status :: 5 - Production/Stable", + "Environment :: Console", + "Environment :: Console :: Curses", + "Operating System :: MacOS :: MacOS X", + "Operating System :: POSIX", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Topic :: Security", + "Topic :: Internet", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Internet :: Proxy Servers", + "Topic :: Software Development :: Testing" + ], + entry_points={ + 'console_scripts': console_scripts + }, + install_requires=list(deps), + extras_require={ + 'dev': [ + "mock>=1.0.1", + "nose>=1.3.0", + "nose-cov>=1.6", + "coveralls>=0.4.1", + "pathod>=%s" % version.MINORVERSION ], + 'contentviews': [ + "pyamf>=0.6.1", + "protobuf>=2.5.0", + "cssutils>=1.0" + ] + } ) diff --git a/test/requirements.txt b/test/requirements.txt deleted file mode 100644 index 89e4aa0a9..000000000 --- a/test/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -mock>=1.0.1 -nose>=1.3.0 -nose-cov>=1.6 -coveralls>=0.4.1 -pathod>=0.10 \ No newline at end of file