adglobals = {}
execfile('src/allmydata/_auto_deps.py', adglobals)
install_requires = adglobals['install_requires']
+setup_requires = adglobals['setup_requires']
if len(sys.argv) > 1 and sys.argv[1] == '--fakedependency':
del sys.argv[1]
]
-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=[]
# already installed.
# <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2028>
#
+# 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/ ).
+#
# <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2032>
# <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2249>
# <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2291>
+# <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2286>
+
+setup_requires = []
_use_old_Twisted_and_Nevow = False
if sys.platform == "win32":
"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",