From: Daira Hopwood Date: Sat, 2 May 2015 21:26:39 +0000 (+0100) Subject: Retire the setup_requires hack in cases where it isn't needed (and can cause build... X-Git-Url: https://git.rkrishnan.org/components/architecture.txt?a=commitdiff_plain;h=b1a7cbbbc8fa5939bec96c074684680b34f204db;p=tahoe-lafs%2Ftahoe-lafs.git Retire the setup_requires hack in cases where it isn't needed (and can cause build problems). refs #2286 Signed-off-by: Daira Hopwood --- diff --git a/setup.py b/setup.py index 5f687853..ea89195a 100644 --- a/setup.py +++ b/setup.py @@ -113,23 +113,6 @@ trove_classifiers=[ ] -setup_requires = [] - -# Nevow imports itself when building, which causes Twisted and zope.interface -# to be imported. We need to make sure that the versions of Twisted and -# zope.interface used at build time satisfy Nevow's requirements. If not -# then there are two problems: -# - prior to Nevow v0.9.33, Nevow didn't declare its dependency on Twisted -# in a way that enabled setuptools to satisfy that requirement at -# build time. -# - some versions of zope.interface, e.g. v3.6.4, are incompatible with -# Nevow, and we need to avoid those both at build and run-time. -# -# This only matters when compatible versions of Twisted and zope.interface -# are not already installed. Retire this hack when -# https://bugs.launchpad.net/nevow/+bug/812537 has been fixed. -setup_requires += [req for req in install_requires if req.startswith('Twisted') or req.startswith('zope.interface')] - # We no longer have any requirements specific to tests. tests_require=[] diff --git a/src/allmydata/_auto_deps.py b/src/allmydata/_auto_deps.py index e8e2b172..4e5c40bc 100644 --- a/src/allmydata/_auto_deps.py +++ b/src/allmydata/_auto_deps.py @@ -121,12 +121,23 @@ if not hasattr(sys, 'frozen'): # 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. +# 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/ ). +# # # # +# _use_old_Twisted_and_Nevow = False if sys.platform == "win32": @@ -140,11 +151,14 @@ if _use_old_Twisted_and_Nevow: "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", ] + setup_requires = [] # * pyOpenSSL is required in order for foolscap to provide secure connections.