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',