Home

Heikki Toivonen wrote:
> John Nagle wrote:
>
>>Back in March, I posted this:
>>
>>
>>> Hit that with OpenSSL. Red Hat took elliptical curve cryptography
>>>out of Fedora 6 for patent reasons. With that missing, M2Crypto won't
>>>build. It ought to; the implementor of M2Crypto thought of that, because
>>>it's an optional feature. But M2Crypto uses SWIG. SWIG doesn't normally
>>>process nested include files. OpenSSL had changed their configuration
>>>approach to use nested include files. So SWIG didn't see the #define
>>>that
>>>said to turn off elliptical curve crypto support. This resulted in
>>>compile errors in the 24,000 lines of code that come out of SWIG.
>>
>> That was for M2Crypto 0.17.
>>
>> It's still broken in M2Crypto 0.18.
>
>
> This was reported as
> https://bugzilla.osafoundation.org/show_bug.cgi?id=9404 and fixed, at
> least according to the person who reported the bug. I'd be curious to
> know why the fix does not work for you...
>
> As an alternative, does it work if you add line 130 to setup.py:
>
> '-DOPENSSL_NO_EC', # Uncomment if you have
> trouble compiling without EC support

OK, here's the build failing:

python setup.py build
running build
running build_py
running build_ext
building 'M2Crypto.__m2crypto' extension
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
swig -python -I/usr/local/include/python2.5 -I/usr/include -o
SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
/usr/include/openssl/opensslconf.h:27: Error: CPP #error ""This openssl-devel
package does not work your architecture?"". Use the -cpperraswarn option to
continue swig processing.
error: command 'swig' failed with exit status 1

OK, let's check the requirements, from
http://chandlerproject.org/bin/view/Projects/MeTooCrypto
M2Crypto 0.18:
* Python 2.3 or newer
o m2urllib2 requires Python 2.4 or newer
* OpenSSL 0.9.7 or newer
o Some optional new features will require OpenSSL 0.9.8 or newer
* SWIG 1.3.24 or newer

python --version
Python 2.5 [OK here, 2.5 >= 2.4]

swig -version
SWIG Version 1.3.31 [OK here; 1.3.31 >= 1.3.24]
Compiled with i386-redhat-linux-g++ [i386-redhat-linux-gnu]

openssl
OpenSSL> version
OpenSSL 0.9.8a 11 Oct 2005 [OK here; 0.9.8a => 0.9.7.]

Tried the suggested patch to "setup.py":
diff setup.py.orig setup.py
130c130
< #'-D__i386__', # Uncomment for early OpenSSL
0.9.7 versions
---
> '-D__i386__', # Uncomment for early OpenSSL
0.9.7 versions

No change in error message. That gets us

-bash-3.1$ python setup.py build
running build
running build_py
running build_ext
building 'M2Crypto.__m2crypto' extension
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
swig -python -I/usr/local/include/python2.5 -I/usr/include -o
SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
/usr/include/openssl/opensslconf.h:27: Error: CPP #error ""This openssl-devel
package does not work your architecture?"". Use the -cpperraswarn option to
continue swig processing.
error: command 'swig' failed with exit status 1

But notice that the -D entry didn't appear on the SWIG command line.
Neither did the "-includeall". The "swig_opts" values around line
129 aren't actually being used. I think that's left over from the code intended
to allow builds with Python 2.3 and earlier. The "self.swig_opts" up at
line 53 of "setup.py" seems to be controlling. The patch was to
the obsolete code.

This is on Fedora Core 5, x86, 32 bit.

John Nagle

previous
next

Re: Howto rethrow an exception outside a catch block?
Re: Requesting critique of a C unit test environment
Re: list index()
Re: python 2.5 bug
Re: So what exactly is a complex number?
Fundacja Avalon
Rodzic Po Ludzku
Akogo
Krwinka
Podaruj Zycie