diff --git a/m2crypto-0.19.1-close-HTTPResponse.patch b/m2crypto-0.19.1-close-HTTPResponse.patch new file mode 100644 index 0000000..791711a --- /dev/null +++ b/m2crypto-0.19.1-close-HTTPResponse.patch @@ -0,0 +1,42 @@ +Index: x/M2Crypto/m2urllib2.py +=================================================================== +--- a/M2Crypto/m2urllib2.py (revision 662) ++++ b/M2Crypto/m2urllib2.py (working copy) +@@ -11,12 +11,28 @@ + - Add the M2Crypto HTTPSHandler when building a default opener. + """ + ++import socket + from urllib2 import * + import urlparse + + import SSL + import httpslib + ++ ++class _closing_fileobject(socket._fileobject): ++ '''socket._fileobject that propagates self.close() to the socket. ++ ++ Python 2.5 provides this as socket._fileobject(sock, close=True). ++ ''' ++ ++ def __init__(self, sock): ++ socket._fileobject.__init__(self, sock) ++ ++ def close(self): ++ sock = self._sock ++ socket._fileobject.close(self) ++ sock.close() ++ + class HTTPSHandler(AbstractHTTPHandler): + def __init__(self, ssl_context = None): + AbstractHTTPHandler.__init__(self) +@@ -81,7 +97,7 @@ + # out of socket._fileobject() and into a base class. + + r.recv = r.read +- fp = socket._fileobject(r) ++ fp = _closing_fileobject(r) + + resp = addinfourl(fp, r.msg, req.get_full_url()) + resp.code = r.status diff --git a/m2crypto.spec b/m2crypto.spec index 8e23e61..72eecd5 100644 --- a/m2crypto.spec +++ b/m2crypto.spec @@ -6,12 +6,14 @@ Summary: Support for using OpenSSL in python scripts Name: m2crypto Version: 0.19.1 -Release: 4 +Release: 5 Source0: http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-%{version}.tar.gz # https://bugzilla.osafoundation.org/show_bug.cgi?id=2341 Patch0: m2crypto-0.18-timeouts.patch # This is only precautionary, it does fix anything - not sent upstream Patch1: m2crypto-0.18-gcc_macros.patch +# https://bugzilla.osafoundation.org/show_bug.cgi?id=12718 +Patch2: m2crypto-0.19.1-close-HTTPResponse.patch License: MIT Group: System Environment/Libraries URL: http://wiki.osafoundation.org/bin/view/Projects/MeTooCrypto @@ -27,6 +29,7 @@ This package allows you to call OpenSSL functions from python scripts. %setup -q -n M2Crypto-%{version} %patch0 -p1 %patch1 -p1 -b .gcc_macros +%patch2 -p1 # Red Hat opensslconf.h #includes an architecture-specific file, but SWIG # doesn't follow the #include. @@ -45,7 +48,8 @@ for i in SWIG/_ec.i SWIG/_evp.i; do done %endif -gcc -E -dM - < /dev/null | grep -v __STDC__ > SWIG/gcc_macros.h +gcc -E -dM - < /dev/null | grep -v __STDC__ \ + | sed 's/^\(#define \([^ ]*\) .*\)$/#undef \2\n\1/' > SWIG/gcc_macros.h %build CFLAGS="$RPM_OPT_FLAGS" ; export CFLAGS @@ -88,6 +92,11 @@ rm -rf $RPM_BUILD_ROOT %{python_sitearch}/M2Crypto-*.egg-info %changelog +* Wed Feb 4 2009 Miloslav Trmač - 0.19.1-5 +- Close the connection when an m2urllib2 response is closed + Resolves: #460692 +- Work around conflicts between macros defined by gcc and swig + * Sat Jan 17 2009 Tomas Mraz - 0.19.1-4 - rebuild with new openssl