summaryrefslogtreecommitdiff
blob: 9ddd5509fdf60d36bc1859d60ea3209951ad1064 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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