Re: win32 no OPENSSL_Applink fatal error - a trial

Larry Bugbee <[email protected]>
Newsgroups gmane.comp.python.cryptography
Message-ID <[email protected]>
>> From my knothole, asking users to recompile Python just so they can
>> use OpenSSL/M2Crypto is not right.

I really want to see OpenSSL/M2Crypto work on Windows without having  
to ask arguably the least capable to compile their Python from  
scratch.  I've played with _m2crypto.i and __init__.py and me with no  
success.  ...but that may because I was going at it wrong.  Please  
check my work and I'll try any reasonable suggestion.

Here is my diff file.  Suggestions are needed.  Clues anybody?

Larry



Index: M2Crypto/__init__.py
===================================================================
--- M2Crypto/__init__.py	(revision 454)
+++ M2Crypto/__init__.py	(working copy)
@@ -43,3 +43,4 @@
decrypt=0
__m2crypto.lib_init()
+__m2crypto.openssl_applink()

Index: setup.py
===================================================================
--- setup.py	(revision 454)
+++ setup.py	(working copy)
@@ -22,14 +22,15 @@
              break
if os.name == 'nt':
-    libraries = ['ssleay32', 'libeay32']
+#    libraries = ['ssleay32', 'libeay32']
+    libraries = ['ssl32', 'eay32']                  # for MinGW
      option_dict = {'openssl_prefix': 'c:\\pkg'}
else:
      libraries = ['ssl', 'crypto']
      option_dict = {'openssl_prefix': '/usr'}

parse_args(option_dict)
-	
+
include_dir = os.path.join(option_dict['openssl_prefix'], 'include')
include_dirs = [os.path.join(os.getcwd(), 'SWIG'), include_dir]
swig_opts_str = ''.join(('-I', include_dir))
@@ -100,7 +101,10 @@
m2crypto = Extension(name = '__m2crypto',
-                     sources = ['SWIG/_m2crypto.i'],
+#                     sources = ['SWIG/_m2crypto.i'],
+                     sources = ['SWIG/_m2crypto.i',  # for MinGW
+#                                'C:\work\openssl-0.9.8b/ms/applink.c',
+                                'applink.c'],
                       include_dirs = include_dirs,
                       library_dirs = library_dirs,
                       libraries = libraries,

Index: SWIG/_m2crypto.i
===================================================================
--- SWIG/_m2crypto.i	(revision 454)
+++ SWIG/_m2crypto.i	(working copy)
@@ -57,3 +57,5 @@
%constant int decrypt = 0;
#endif

+%rename(openssl_applink) OPENSSL_Applink;
+extern void ** OPENSSL_Applink(void);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.