Chris Galvan's patch to use setuptools to build pyOpenSSL binaries which include OpenSSL shared lib, at least on Windows
diff --git a/setup.cfg b/setup.cfg
index 5450544..7bfdfcc 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -8,3 +8,7 @@
group = Development/Libraries
build_script = rpm/build_script
doc-files = doc/pyOpenSSL.txt doc/pyOpenSSL.ps doc/html
+
+[build_ext]
+include_dirs=/usr/local/ssl/include
+library_dirs=/usr/local/ssl/lib
diff --git a/setup.py b/setup.py
index 1ebba4f..702e333 100755
--- a/setup.py
+++ b/setup.py
@@ -11,7 +11,9 @@
Installation script for the OpenSSL module
"""
-from distutils.core import setup, Extension
+# Use setuptools if it's available.
+from setuptools import Extension, setup
+from glob import glob
import os, sys
from version import __version__
@@ -66,6 +68,26 @@
IncludeDirs = ['/sw/include']
LibraryDirs = ['/sw/lib']
+# Use the SSL_LIB and SSL_INC environment variables to extend
+# the library and header directories we pass to the extensions.
+ssl_lib = os.environ.get('SSL_LIB', [])
+if ssl_lib:
+ if LibraryDirs:
+ LibraryDirs += [ssl_lib]
+ else:
+ LibraryDirs = [ssl_lib]
+ssl_inc = os.environ.get('SSL_INC', [])
+if ssl_inc:
+ if IncludeDirs:
+ IncludeDirs += [ssl_inc]
+ else:
+ IncludeDirs = [ssl_inc]
+
+# On Windows, make sure the necessary .dll's get added to the egg.
+data_files = []
+if sys.platform == 'win32':
+ data_files = [("OpenSSL", glob(os.path.join(ssl_lib, '*.dll')))]
+
def mkExtension(name):
modname = 'OpenSSL.' + name
src = globals()[name.lower() + '_src']
@@ -82,6 +104,7 @@
'OpenSSL.version', 'OpenSSL.test.__init__',
'OpenSSL.test.test_crypto',
'OpenSSL.test.test_ssl'],
+ data_files = data_files,
description = 'Python wrapper module around the OpenSSL library',
author = 'Martin Sjögren, AB Strakt',
author_email = 'msjogren@gmail.com',