]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - src/allmydata/_auto_deps.py
Update version requirement for zope.interface.
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / _auto_deps.py
index 6f7d7cf55c0528cd38892823b77ab1d940af92b0..b7be32128e6f4f44e85231df769ded65fc838d30 100644 (file)
@@ -14,30 +14,40 @@ install_requires = [
     # Feisty has simplejson 1.4
     "simplejson >= 1.4",
 
+    # zope.interface >= 3.6.0 is required for Twisted >= 12.1.0.
     # zope.interface 3.6.3 and 3.6.4 are incompatible with Nevow (#1435).
-    "zope.interface <= 3.6.2, >= 3.6.5",
-
-    # On Windows we need at least Twisted 9.0 to avoid an indirect dependency on pywin32.
-    # 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 for the FTP frontend in order for Twisted's FTP server to
-    # support asynchronous close.
-    "Twisted >= 10.1.0",
-
-    # foolscap < 0.5.1 had a performance bug which spent
-    # O(N**2) CPU for transferring large mutable files
-    # of size N.
-    # foolscap < 0.6 is incompatible with Twisted 10.2.0.
-    # foolscap 0.6.1 quiets a DeprecationWarning.
-    # pyOpenSSL is required by foolscap for it (foolscap) to provide secure
-    # connections. Foolscap doesn't reliably declare this dependency in a
-    # machine-readable way, so we need to declare a dependency on pyOpenSSL
-    # ourselves. Tahoe-LAFS doesn't *really* depend directly on pyOpenSSL,
-    # so if something changes in the relationship between foolscap and
-    # pyOpenSSL, such as foolscap requiring a specific version of pyOpenSSL,
-    # or foolscap switching from pyOpenSSL to a different crypto library, we
-    # need to update this declaration here.
-    "foolscap >= 0.6.1",
+    "zope.interface == 3.6.0, == 3.6.1, == 3.6.2, >= 3.6.5",
+
+    # * On Windows we need at least Twisted 9.0 to avoid an indirect
+    #   dependency on pywin32.
+    # * 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 for the FTP frontend in order for Twisted's
+    #   FTP server to support asynchronous close.
+    # * When the cloud backend lands, it will depend on Twisted 10.2.0 which
+    #   includes the fix to https://twistedmatrix.com/trac/ticket/411
+    # * The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server
+    #   rekeying bug http://twistedmatrix.com/trac/ticket/4395
+    #
+    "Twisted >= 11.0.0",
+
+    # * foolscap < 0.5.1 had a performance bug which spent O(N**2) CPU for
+    #   transferring large mutable files of size N.
+    # * foolscap < 0.6 is incompatible with Twisted 10.2.0.
+    # * foolscap 0.6.1 quiets a DeprecationWarning.
+    # * foolscap < 0.6.3 is incompatible with Twisted-11.1.0 and newer. Since
+    #   current Twisted is 12.0, any build which needs twisted will grab a
+    #   version that requires foolscap>=0.6.3
+    # * pyOpenSSL is required by foolscap for it (foolscap) to provide secure
+    #   connections. Foolscap doesn't reliably declare this dependency in a
+    #   machine-readable way, so we need to declare a dependency on pyOpenSSL
+    #   ourselves. Tahoe-LAFS doesn't *really* depend directly on pyOpenSSL,
+    #   so if something changes in the relationship between foolscap and
+    #   pyOpenSSL, such as foolscap requiring a specific version of
+    #   pyOpenSSL, or foolscap switching from pyOpenSSL to a different crypto
+    #   library, we need to update this declaration here.
+    #
+    "foolscap >= 0.6.3",
     "pyOpenSSL",
 
     "Nevow >= 0.6.0",
@@ -48,8 +58,11 @@ install_requires = [
     "pycrypto == 2.1.0, == 2.3, >= 2.4.1",
     "pyasn1 >= 0.0.8a",
 
-    # http://www.voidspace.org.uk/python/mock/
-    "mock",
+    # http://www.voidspace.org.uk/python/mock/ , 0.8.0 provides "call"
+    "mock >= 0.8.0",
+
+    # pycryptopp-0.6.0 includes ed25519
+    "pycryptopp >= 0.6.0",
 
     # Will be needed to test web apps, but not yet. See #1001.
     #"windmill >= 1.3",
@@ -75,20 +88,7 @@ package_imports = [
 ]
 
 def require_more():
-    import platform, sys
-    # pycryptopp-0.6.0 includes ed25519
-    install_requires.append("pycryptopp >= 0.6.0")
-
-    # Sqlite comes built into Python >= 2.5, and is provided by the "pysqlite"
-    # distribution for Python 2.4.
-    try:
-        import sqlite3
-        sqlite3 # hush pyflakes
-        package_imports.append(('sqlite3', 'sqlite3'))
-    except ImportError:
-        # pysqlite v2.0.5 was shipped in Ubuntu 6.06 LTS "dapper" and Nexenta NCP 1.
-        install_requires.append("pysqlite >= 2.0.5")
-        package_imports.append(('pysqlite', 'pysqlite2.dbapi2'))
+    import sys
 
     # Don't try to get the version number of setuptools in frozen builds, because
     # that triggers 'site' processing that causes failures. Note that frozen
@@ -99,6 +99,16 @@ def require_more():
 
 require_more()
 
+
+# These are suppressed globally:
+
+global_deprecation_messages = [
+    "BaseException.message has been deprecated as of Python 2.6",
+    "twisted.internet.interfaces.IFinishableConsumer was deprecated in Twisted 11.1.0: Please use IConsumer (and IConsumer.unregisterProducer) instead.",
+]
+
+# These are suppressed while importing dependencies:
+
 deprecation_messages = [
     "the sha module is deprecated; use the hashlib module instead",
     "object.__new__\(\) takes no parameters",
@@ -113,6 +123,10 @@ user_warning_messages = [
     "Reliable disconnection notification requires pywin32 215 or later",
 ]
 
+runtime_warning_messages = [
+    "Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.",
+]
+
 warning_imports = [
     'nevow',
     'twisted.persisted.sob',