--- setup.py 2007-02-14 14:53:41.000000000 +0200 +++ setup.py 2007-11-18 01:37:16.000000000 +0200 @@ -15,7 +15,14 @@ from distutils.command.install_lib import install_lib # This global variable is used to hold the list of modules to be disabled. -disabled_module_list = [] +try: + disabled_module_list = os.environ["PYTHON_DISABLE_MODULES"].split() +except KeyError: + disabled_module_list = [] +try: + disable_ssl = os.environ["PYTHON_DISABLE_SSL"] +except KeyError: + disable_ssl = 0 def add_dir_to_list(dirlist, dir): """Add the directory 'dir' to the list 'dirlist' (at the front) if @@ -243,6 +250,7 @@ return sys.platform def detect_modules(self): + global disable_ssl # Ensure that /usr/local is always used add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') @@ -537,7 +545,8 @@ ] ) if (ssl_incs is not None and - ssl_libs is not None): + ssl_libs is not None and + not disable_ssl): exts.append( Extension('_ssl', ['_ssl.c'], include_dirs = ssl_incs, library_dirs = ssl_libs, @@ -569,6 +578,7 @@ if (ssl_incs is not None and ssl_libs is not None and + not disable_ssl and openssl_ver >= 0x00907000): # The _hashlib module wraps optimized implementations # of hash functions from the OpenSSL library. @@ -576,21 +586,21 @@ include_dirs = ssl_incs, library_dirs = ssl_libs, libraries = ['ssl', 'crypto']) ) - else: - # The _sha module implements the SHA1 hash algorithm. - exts.append( Extension('_sha', ['shamodule.c']) ) - # The _md5 module implements the RSA Data Security, Inc. MD5 - # Message-Digest Algorithm, described in RFC 1321. The - # necessary files md5.c and md5.h are included here. - exts.append( Extension('_md5', - sources = ['md5module.c', 'md5.c'], - depends = ['md5.h']) ) - - if (openssl_ver < 0x00908000): - # OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash - exts.append( Extension('_sha256', ['sha256module.c']) ) - exts.append( Extension('_sha512', ['sha512module.c']) ) + ### Build these unconditionally so emerge won't fail + ### when openssl is dropped/broken etc. + # The _sha module implements the SHA1 hash algorithm. + exts.append( Extension('_sha', ['shamodule.c']) ) + # The _md5 module implements the RSA Data Security, Inc. MD5 + # Message-Digest Algorithm, described in RFC 1321. The + # necessary files md5.c and md5.h are included here. + exts.append( Extension('_md5', + sources = ['md5module.c', 'md5.c'], + depends = ['md5.h']) ) + + exts.append( Extension('_sha256', ['sha256module.c']) ) + exts.append( Extension('_sha512', ['sha512module.c']) ) + ### # Modules that provide persistent dictionary-like semantics. You will # probably want to arrange for at least one of them to be available on