139 lines
4.4 KiB
Diff
139 lines
4.4 KiB
Diff
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
|
|
|