From 2ebaa916df66fd3f119f3464095be0138dda3fee Mon Sep 17 00:00:00 2001 From: david-sarah Date: Thu, 21 Jul 2011 16:49:41 -0700 Subject: [PATCH] Update the dependency on zope.interface to fix an incompatiblity between Nevow and zope.interface 3.6.4. fixes #1435 --- NEWS.rst | 4 ++++ setup.py | 20 +++++++++++++------- src/allmydata/_auto_deps.py | 4 +++- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/NEWS.rst b/NEWS.rst index 873d06c4..387bd5b2 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -15,6 +15,9 @@ Release 1.9.0 (2011-??-??) Compatibility and Dependencies '''''''''''''''''''''''''''''' +- An incompatibility of zope.interface version 3.6.4 with Nevow has + been resolved. Tahoe-LAFS now requires one of the exact versions + v3.3.1, v3.5.3, or v3.6.1 of zope.interface. (`#1435`_) - The Twisted dependency has been raised to version 10.1. This ensures that we no longer require pywin32 on Windows, and that it is never necessary to patch Twisted in order to use the FTP frontend. @@ -23,6 +26,7 @@ Compatibility and Dependencies .. _`#1274`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1274 .. _`#1392`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1392 .. _`#1409`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1409 +.. _`#1435`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1435 .. _`#1438`: http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1438 diff --git a/setup.py b/setup.py index 09638d19..dcd2c34e 100644 --- a/setup.py +++ b/setup.py @@ -135,14 +135,20 @@ setup_requires = [] # http://pypi.python.org/pypi/darcsver setup_requires.append('darcsver >= 1.7.2') -# Nevow requires Twisted to setup, but prior to Nevow v0.9.33, didn't -# declare that requirement in a way that enables setuptools to satisfy -# the requirement before Nevow's setup.py tries to "import twisted". -# This only matters when Twisted is not already installed. -# See http://divmod.org/trac/ticket/2629 -# Retire this hack when +# 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')] +setup_requires += [req for req in install_requires if req.startswith('Twisted') or req.startswith('zope.interface')] # setuptools_darcs is required to produce complete distributions (such # as with "sdist" or "bdist_egg"), unless there is a diff --git a/src/allmydata/_auto_deps.py b/src/allmydata/_auto_deps.py index c479985c..f2e29d30 100644 --- a/src/allmydata/_auto_deps.py +++ b/src/allmydata/_auto_deps.py @@ -14,7 +14,9 @@ install_requires = [ # Feisty has simplejson 1.4 "simplejson >= 1.4", - "zope.interface", + # zope.interface 3.6.4 is incompatible with Nevow. + # These are the versions packaged in major versions of Debian or Ubuntu, or in pkgsrc. + "zope.interface == 3.3.1, == 3.5.3, == 3.6.1", # On Windows we need at least Twisted 9.0 to avoid an indirect dependency on pywin32. # We also need Twisted 10.1 for the FTP frontend in order for Twisted's FTP server to -- 2.45.2