From 803188070e486030cb1d2e53692b39305c742b17 Mon Sep 17 00:00:00 2001
From: Joe Julian <jjulian@io.com>
Date: Tue, 19 May 2015 23:54:08 -0700
Subject: [PATCH] Use swig generated python loader

---
 .gitignore           |  6 +++++-
 M2Crypto/__init__.py |  4 ++--
 M2Crypto/m2.py       |  4 +---
 SWIG/_m2crypto.def   |  2 +-
 SWIG/_m2crypto.i     |  2 +-
 setup.py             | 25 +++++++++++++++++++++----
 6 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/M2Crypto/__init__.py b/M2Crypto/__init__.py
index 647e057..38dbbd5 100644
--- a/M2Crypto/__init__.py
+++ b/M2Crypto/__init__.py
@@ -19,7 +19,7 @@ Copyright 2008-2011 Heikki Toivonen. All rights reserved.
 version_info = (0, 22)
 version = '.'.join([str(_v) for _v in version_info])
 
-import __m2crypto
+import m2crypto
 import m2
 import ASN1
 import AuthCookie
@@ -47,4 +47,4 @@ import m2xmlrpclib
 import threading
 import util
 
-__m2crypto.lib_init()
+m2crypto.lib_init()
diff --git a/M2Crypto/m2.py b/M2Crypto/m2.py
index e4bb695..516cadb 100644
--- a/M2Crypto/m2.py
+++ b/M2Crypto/m2.py
@@ -25,7 +25,5 @@ Portions created by Open Source Applications Foundation (OSAF) are
 Copyright (C) 2004 OSAF. All Rights Reserved.
 """
 
-from __m2crypto import *
+from m2crypto import *
 lib_init()
-
-
diff --git a/SWIG/_m2crypto.def b/SWIG/_m2crypto.def
index 753db2c..3e9d5bc 100644
--- a/SWIG/_m2crypto.def
+++ b/SWIG/_m2crypto.def
@@ -1,2 +1,2 @@
 EXPORTS
-init__m2crypto
+init_m2crypto
diff --git a/SWIG/_m2crypto.i b/SWIG/_m2crypto.i
index 50be5c3..e491222 100644
--- a/SWIG/_m2crypto.i
+++ b/SWIG/_m2crypto.i
@@ -8,7 +8,7 @@
  *
  */
 
-%module(threads=1) _m2crypto
+%module(threads=1) m2crypto
 /* We really don't need threadblock (PyGILState_Ensure() etc.) anywhere.
    Disable threadallow as well, only enable it for operations likely to
    block. */
diff --git a/setup.py b/setup.py
index bac6f9f..fc89513 100644
--- a/setup.py
+++ b/setup.py
@@ -17,9 +17,22 @@ import os, sys, platform
 from setuptools import setup
 from setuptools.command import build_ext
 
+from distutils.util import get_platform
 from distutils.core import Extension
 from distutils.spawn import find_executable
 
+from distutils.command.build import build
+from setuptools.command.install import install
+
+class CustomBuild(build):
+    def run(self):
+        self.run_command('build_ext')
+        build.run(self)
+
+class CustomInstall(install):
+    def run(self):
+        self.run_command('build_ext')
+        self.do_egg_install()
 
 class _M2CryptoBuildExt(build_ext.build_ext):
     '''Specialization of build_ext to enable swig_opts to inherit any
@@ -70,11 +83,12 @@ class _M2CryptoBuildExt(build_ext.build_ext):
 
         self.add_multiarch_paths()
 
-        opensslIncludeDir = os.path.join(self.openssl, 'include')
+        includeDir = os.path.join(self.openssl, 'include')
+        opensslIncludeDir = os.path.join(self.openssl, 'include', 'openssl')
         opensslLibraryDir = os.path.join(self.openssl, 'lib')
 
         self.swig_opts = ['-I%s' % i for i in self.include_dirs + \
-                          [opensslIncludeDir, os.path.join(opensslIncludeDir, "openssl")]]
+                          [opensslIncludeDir, includeDir]]
         self.swig_opts.append('-includeall')
         self.swig_opts.append('-modern')
 
@@ -85,6 +99,9 @@ class _M2CryptoBuildExt(build_ext.build_ext):
             elif platform.architecture()[0] == '32bit':
                 self.swig_opts.append('-D__i386__')
 
+        self.swig_opts.append('-outdir')
+        self.swig_opts.append(os.path.join(os.getcwd(),'M2Crypto'))
+
         self.include_dirs += [os.path.join(self.openssl, opensslIncludeDir),
                               os.path.join(os.getcwd(), 'SWIG')]
 
@@ -103,7 +120,7 @@ if sys.platform == 'darwin':
 else:
    my_extra_compile_args = []
 
-m2crypto = Extension(name = 'M2Crypto.__m2crypto',
+m2crypto = Extension(name = 'M2Crypto._m2crypto',
                      sources = ['SWIG/_m2crypto.i'],
                      extra_compile_args = ['-DTHREADING'] + my_extra_compile_args,
                      #extra_link_args = ['-Wl,-search_paths_first'], # Uncomment to build Universal Mac binaries
@@ -145,5 +162,5 @@ interface.''',
 
       ext_modules = [m2crypto],
       test_suite='tests.alltests.suite',
-      cmdclass = {'build_ext': _M2CryptoBuildExt}
+      cmdclass = {'build': CustomBuild, 'install': CustomInstall, 'build_ext': _M2CryptoBuildExt}
       )
-- 
2.4.1

