]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
setup: make Tahoe exit at startup with a useful error message if the base64.py module...
authorZooko O'Whielacronx <zooko@zooko.com>
Tue, 19 May 2009 19:45:55 +0000 (12:45 -0700)
committerZooko O'Whielacronx <zooko@zooko.com>
Tue, 19 May 2009 19:45:55 +0000 (12:45 -0700)
_auto_deps.py

index 5f08a82c75163acc957bd808ec869bae2eacad11..0b0ca59900439462c92c3ef2ab760b6889a5807a 100644 (file)
@@ -39,6 +39,19 @@ import sys
 if hasattr(sys, 'frozen'): # for py2exe
     install_requires=[]
 
+def require_python_2_with_working_base64():
+    import sys
+    if sys.version_info[0] != 2:
+        raise NotImplementedError("Tahoe-LAFS current requires Python v2.4.2 or greater (but less than v3), not %r" % (sys.version_info,))
+
+    # make sure we have a working base64.b32decode. The one in
+    # python2.4.[01] was broken.
+    nodeid_b32 = 't5g7egomnnktbpydbuijt6zgtmw4oqi5'
+    from base64 import b32decode
+    nodeid = b32decode(nodeid_b32)
+    if nodeid != "\x9fM\xf2\x19\xcckU0\xbf\x03\r\x10\x99\xfb&\x9b-\xc7A\x1d":
+        raise NotImplementedError("There is a bug in this base64 module: %r.  This was a known issue in Python v2.4.0 and v2.4.1 (http://bugs.python.org/issue1171487 ).  Tahoe-LAFS current requires Python v2.4.2 or greater (but less than v3).  The current Python version is %r" % (base64, sys.version_info,))
+
 def require_auto_deps():
     """
     The purpose of this function is to raise a pkg_resources exception if any of the
@@ -47,6 +60,8 @@ def require_auto_deps():
     of these packages and gets an ImportError.  This function gets called from
     src/allmydata/__init__.py .
     """
+    require_python_2_with_working_base64()
+
     import pkg_resources
     for requirement in install_requires:
         try: