From 0bb5b9b517acef7231a4a8955b36358eb6988f4a Mon Sep 17 00:00:00 2001 From: Daira Hopwood Date: Tue, 9 Feb 2016 18:08:15 +0000 Subject: [PATCH] Delete some crufty workarounds. Signed-off-by: Daira Hopwood --- src/allmydata/_auto_deps.py | 151 +++++++----------------------------- 1 file changed, 30 insertions(+), 121 deletions(-) diff --git a/src/allmydata/_auto_deps.py b/src/allmydata/_auto_deps.py index a43629f8..42a7534b 100644 --- a/src/allmydata/_auto_deps.py +++ b/src/allmydata/_auto_deps.py @@ -51,6 +51,31 @@ install_requires = [ "characteristic >= 14.0.0", # latest service-identity depends on this version "pyasn1 >= 0.1.8", # latest pyasn1-modules depends on this version "pyasn1-modules >= 0.0.5", # service-identity depends on this + + # * On Linux we need at least Twisted 10.1.0 for inotify support + # used by the drop-upload frontend. + # * We also need Twisted 10.1.0 for the FTP frontend in order for + # Twisted's FTP server to support asynchronous close. + # * The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server + # rekeying bug + # * The FTP frontend depends on Twisted >= 11.1.0 for + # filepath.Permissions + # * Nevow 0.11.1 depends on Twisted >= 13.0.0. + "Twisted >= 13.0.0", + + # We need Nevow >= 0.11.1 which can be installed using pip. + "Nevow >= 0.11.1", + + # * pyOpenSSL is required in order for foolscap to provide secure connections. + # Since foolscap doesn't reliably declare this dependency in a machine-readable + # way, we need to declare a dependency on pyOpenSSL ourselves. Tahoe-LAFS does + # not *directly* depend on pyOpenSSL. + # * pyOpenSSL >= 0.13 is needed in order to avoid + # , and also to check the + # version of OpenSSL that pyOpenSSL is using. + # * pyOpenSSL >= 0.14 is needed in order to avoid + # . + "pyOpenSSL >= 0.14", ] # Includes some indirect dependencies, but does not include allmydata. @@ -73,6 +98,11 @@ package_imports = [ ('service-identity', 'service_identity'), ('characteristic', 'characteristic'), ('pyasn1-modules', 'pyasn1_modules'), + ('cryptography', 'cryptography'), + ('cffi', 'cffi'), + ('six', 'six'), + ('enum34', 'enum'), + ('pycparser', 'pycparser'), ] # Dependencies for which we don't know how to get a version number at run-time. @@ -101,129 +131,8 @@ if not hasattr(sys, 'frozen'): package_imports.append(('setuptools', 'setuptools')) -# * On Linux we need at least Twisted 10.1.0 for inotify support -# used by the drop-upload frontend. -# * We also need Twisted 10.1.0 for the FTP frontend in order for -# Twisted's FTP server to support asynchronous close. -# * The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server -# rekeying bug -# * The FTP frontend depends on Twisted >= 11.1.0 for -# filepath.Permissions -# -# On Windows, Twisted >= 12.2.0 has a dependency on pywin32. -# Since pywin32 can only be installed manually, we fall back to -# requiring earlier versions of Twisted and Nevow if it is not -# already installed. -# -# -# When the fallback is used we also need to work around the fact -# that Nevow imports itself when building, which causes Twisted -# and zope.interface to be imported; therefore, we need to set -# setup_requires to make sure that the versions of Twisted and -# zope.interface used at build time satisfy Nevow's requirements. -# -# In cases where this fallback isn't needed, we prefer Nevow >= 0.11.1 -# which can be installed using pip, and Twisted >= 13.0.0 which -# Nevow 0.11.1 depends on. In this case we should *not* use the -# setup_requires hack, because if we do then the build will break -# when Twisted < 13.0.0 is already installed (even though it could -# have succeeded by building a later version under support/ ). -# -# -# -# -# - setup_requires = [] -_use_old_Twisted_and_Nevow = False -if sys.platform == "win32": - try: - import win32api - [win32api] - except ImportError: - _use_old_Twisted_and_Nevow = True - -if _use_old_Twisted_and_Nevow: - install_requires += [ - "Twisted >= 11.1.0, <= 12.1.0", - "Nevow >= 0.9.33, <= 0.10", - ] - setup_requires += [req for req in install_requires if req.startswith('Twisted') - or req.startswith('zope.interface')] -else: - install_requires += [ - "Twisted >= 13.0.0", - "Nevow >= 0.11.1", - ] - - -# * pyOpenSSL is required in order for foolscap to provide secure connections. -# Since foolscap doesn't reliably declare this dependency in a machine-readable -# way, we need to declare a dependency on pyOpenSSL ourselves. Tahoe-LAFS does -# not *directly* depend on pyOpenSSL. -# -# * pyOpenSSL >= 0.13 is needed in order to avoid -# , and also to check the -# version of OpenSSL that pyOpenSSL is using. -# -# * pyOpenSSL >= 0.14 is built on the 'cryptography' package which depends -# on 'cffi' (and indirectly several other packages). Unfortunately cffi -# attempts to compile code dynamically, which causes problems on many systems. -# It also depends on the libffi OS package which may not be installed. -# -# -# -# So, if pyOpenSSL 0.14 has *already* been installed and is importable, we -# want to accept it; otherwise we ask for pyOpenSSL 0.13 or 0.13.1. -# -# -# We don't rely on pkg_resources to tell us the installed pyOpenSSL version -# number, because pkg_resources telling us that we have 0.14 is not sufficient -# evidence that 0.14 will be the imported version (or will work correctly). -# One possible reason why it might not be is explained in -# and -# . - -_can_use_pyOpenSSL_0_14 = False -try: - import OpenSSL - pyOpenSSL_ver = OpenSSL.__version__.split('.') - if int(pyOpenSSL_ver[0]) > 0 or int(pyOpenSSL_ver[1]) >= 14: - _can_use_pyOpenSSL_0_14 = True -except Exception: - pass - -if _can_use_pyOpenSSL_0_14: - install_requires += [ - # Although we checked for pyOpenSSL >= 0.14 above, we only actually - # need pyOpenSSL >= 0.13; requiring 0.14 here cannot help. - "pyOpenSSL >= 0.13", - - # ... and now all the new stuff that pyOpenSSL 0.14 transitively - # depends on. We specify these explicitly because setuptools is - # bad at correctly resolving indirect dependencies (e.g. see - # ). - # - "cryptography", - "cffi >= 0.8", # latest cryptography depends on this version - "six >= 1.4.1", # latest cryptography depends on this version - "enum34", # latest cryptography depends on this - "pycparser", # cffi depends on this - ] - - package_imports += [ - ('cryptography', 'cryptography'), - ('cffi', 'cffi'), - ('six', 'six'), - ('enum34', 'enum'), - ('pycparser', 'pycparser'), - ] -else: - install_requires += [ - "pyOpenSSL >= 0.13, <= 0.13.1", - ] - # These are suppressed globally: -- 2.37.2