<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to patches</title><link href="https://sourceforge.net/p/pyopenssl/patches/" rel="alternate"/><link href="https://sourceforge.net/p/pyopenssl/patches/feed.atom" rel="self"/><id>https://sourceforge.net/p/pyopenssl/patches/</id><updated>2009-02-12T05:46:27Z</updated><subtitle>Recent changes to patches</subtitle><entry><title>Merged changes from Dave Cridland's branch</title><link href="https://sourceforge.net/p/pyopenssl/patches/21/" rel="alternate"/><published>2009-02-12T05:46:27Z</published><updated>2009-02-12T05:46:27Z</updated><author><name>James Yonan</name><uri>https://sourceforge.net/u/jimyonan/</uri></author><id>https://sourceforge.netd3ab21321f93b33a69701c478ebd773ad7f83d3d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This is a fairly significant upgrade to pyOpenSSL functionality in the sense that many additional OpenSSL APIs are exposed.  Dave Cridland appears to have forked pyOpenSSL several years back (relative to the sourceforge branch), adding significant additional functionality including access to the digital signatures API.  I have merged those changes back into the sourceforge.net pyOpenSSL branch (pyOpenSSL-0.8), attempting to retain both Dave Cridland's extended functionality, as well as the extensive stability improvements that have been made to the sourceforge.net pyOpenSSL branch.  We've been using this patch now for several months with no known issues.  Please consider merging.&lt;/p&gt;
&lt;p&gt;* Merged changes from Dave Cridland's branch:&lt;br /&gt;
-r756 &lt;a href="http://svn.dave.cridland.net/svn/projects/pyopenssl/dwd" rel="nofollow"&gt;http://svn.dave.cridland.net/svn/projects/pyopenssl/dwd&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To apply this patch:&lt;/p&gt;
&lt;p&gt;tar xfz pyOpenSSL-0.8.tar.gz&lt;br /&gt;
cd pyOpenSSL-0.8&lt;br /&gt;
patch -p1 &amp;lt;../pyOpenSSL.diff&lt;/p&gt;
&lt;p&gt;Because the patch adds some binary files as well that cannot&lt;br /&gt;
be represented in the diff, I have placed the binary files&lt;br /&gt;
in pyOpenSSL-0.8-binary.  You should manually copy them&lt;br /&gt;
to the destination after running the patch command.&lt;/p&gt;
&lt;p&gt;All files relevant to this patch can be found in the attached file&lt;br /&gt;
pyOpenSSL-diff.tar.gz&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;
James Yonan&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Module crashes "Fatal Python error: ceval: tstate mix-up"</title><link href="https://sourceforge.net/p/pyopenssl/patches/20/" rel="alternate"/><published>2009-01-28T14:23:48Z</published><updated>2009-01-28T14:23:48Z</updated><author><name>Maksym Sobolyev</name><uri>https://sourceforge.net/u/sobomax/</uri></author><id>https://sourceforge.net40654c6a37f1332e30fc03fcfb77c01b4bf5ec86</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;In a heavily threaded applicaiton that uses the package from more than one thread at a time, the pyOpenSSL 0.8 often makes Python 2.5 interpreter crash with the following errror message:&lt;/p&gt;
&lt;p&gt;Fatal Python error: ceval: tstate mix-up&lt;br /&gt;
Abort trap: 6 (core dumped)&lt;/p&gt;
&lt;p&gt;We have test program that crashes reliably in no time here.&lt;/p&gt;
&lt;p&gt;There are other reports of the same issue:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://groups.google.com/group/comp.lang.python/browse_thread/thread/ab1317191a8182e5" rel="nofollow"&gt;http://groups.google.com/group/comp.lang.python/browse_thread/thread/ab1317191a8182e5&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Investigation revealed that it is caused by the mis-use of the key to store per-thread context. Instead, it's suggested to save the context in per-instance private data. It is safe to do this, since one object instance cannot be used in separate threads at the very same time due to SSL_CTX and libopenssl API in general not being thread-friendly. Therefore, external locking at python level is required to properly serialize access to methods of the same instance anyway. But this patch makes it safe to use different instances in different threads at the same time.&lt;/p&gt;
&lt;p&gt;Proposed patch is attached. The patch also cleans up some of the old, now unused code.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Remove unused variable definition</title><link href="https://sourceforge.net/p/pyopenssl/patches/19/" rel="alternate"/><published>2008-07-14T23:17:39Z</published><updated>2008-07-14T23:17:39Z</updated><author><name>Wilfredo Sanchez</name><uri>https://sourceforge.net/u/wsanchez/</uri></author><id>https://sourceforge.netd4335e956fd5f786cd2d504907ae19fd1dde8447</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Removes an unused variable definition.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>return PyObject*</title><link href="https://sourceforge.net/p/pyopenssl/patches/18/" rel="alternate"/><published>2008-07-14T23:17:07Z</published><updated>2008-07-14T23:17:07Z</updated><author><name>Wilfredo Sanchez</name><uri>https://sourceforge.net/u/wsanchez/</uri></author><id>https://sourceforge.net4bca35619b875546181c84a006664b8dfa1c927c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Silences warnings from gcc about returning an incompatible pointer type from Python wrapper routines.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Silence CVSid warnings</title><link href="https://sourceforge.net/p/pyopenssl/patches/17/" rel="alternate"/><published>2008-07-14T23:15:50Z</published><updated>2008-07-14T23:15:50Z</updated><author><name>Wilfredo Sanchez</name><uri>https://sourceforge.net/u/wsanchez/</uri></author><id>https://sourceforge.netdbc0008b2ab6e8f5df3481e075ef18ae90263497</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Silences "unused variable" warnings from gcc for the static CVSid variable kept in many files.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>shebang usr bin env python</title><link href="https://sourceforge.net/p/pyopenssl/patches/16/" rel="alternate"/><published>2008-04-11T00:53:19Z</published><updated>2008-04-11T00:53:19Z</updated><author><name>Zooko O'Whielacronx</name><uri>https://sourceforge.net/u/zooko/</uri></author><id>https://sourceforge.net5d2196de491aa45cea2fd2f194bc6bde888f20ef</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;This makes it so I can run "./setup.py" on all platforms including cygwin.&lt;/p&gt;
&lt;p&gt;{{{&lt;br /&gt;
diff -rN -u old-pyOpenSSL-0.7a2/pyOpenSSL-0.7a2/setup.py new-pyOpenSSL-0.7a2/pyOpenSSL-0.7a2/setup.py&lt;br /&gt;
--- old-pyOpenSSL-0.7a2/pyOpenSSL-0.7a2/setup.py   2008-04-10 17:50:43.000000000 -0700&lt;br /&gt;
+++ new-pyOpenSSL-0.7a2/pyOpenSSL-0.7a2/setup.py    2008-04-10 17:50:43.000000000 -0700&lt;br /&gt;
@@ -1,3 +1,4 @@&lt;br /&gt;
+#!/usr/bin/env python&lt;br /&gt;
# vim:fileencoding=UTF-8&lt;br /&gt;
#&lt;br /&gt;
# setup.py&lt;/p&gt;
&lt;p&gt;}}}&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Enable support for building on Solaris</title><link href="https://sourceforge.net/p/pyopenssl/patches/15/" rel="alternate"/><published>2008-03-23T12:30:25Z</published><updated>2008-03-23T12:30:25Z</updated><author><name>Duncan McGreggor</name><uri>https://sourceforge.net/u/oubiwann/</uri></author><id>https://sourceforge.net53281c27d53b12c468d65c72cf848be667b4a1a0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The OpenSSL libs and includes that are installed from SunFreeware are in /usr/sfw. This patch adds support for installing on Solaris by including a check for that directory.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Fix examples/simple</title><link href="https://sourceforge.net/p/pyopenssl/patches/14/" rel="alternate"/><published>2008-01-18T05:46:08Z</published><updated>2008-01-18T05:46:08Z</updated><author><name>Hugh Emberson</name><uri>https://sourceforge.net/u/userid-1984762/</uri></author><id>https://sourceforge.nete79463376fc5ff33bca5d4af667b1d7e212a4874</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The examples in examples/simple were broken for two reasons:&lt;/p&gt;
&lt;p&gt;1) the .py files contained non-ASCII characters, but did not specify a source encoding (see PEP 263),&lt;/p&gt;
&lt;p&gt;2) the CA, client and server certificates had expired in 2007.&lt;/p&gt;
&lt;p&gt;This patch adds source encoding lines and includes new certificates that will expire in approx 10 years.&lt;/p&gt;
&lt;p&gt;The patch has been tested on MacOS X with openssl 0.9.7 and on Windows XP with openssl 0.9.8.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>pyOpenSSL doesn't build with OpenSSL 0.9.8 / VC7.1</title><link href="https://sourceforge.net/p/pyopenssl/patches/13/" rel="alternate"/><published>2005-08-03T15:56:58Z</published><updated>2005-08-03T15:56:58Z</updated><author><name>M.-A. Lemburg</name><uri>https://sourceforge.net/u/lemburg/</uri></author><id>https://sourceforge.net6cf7db1a44a5e17040364f9d0743f51d96376da5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;pyOpenSSL does build fine with VC6 and OpenSSL 0.9.8. &lt;/p&gt;
&lt;p&gt;However if you try to create a Windows build for Python&lt;br /&gt;
2.4 which requires using VC7.1 (.NET 2003), you get&lt;br /&gt;
lots of errors when compiling connection.c.&lt;/p&gt;
&lt;p&gt;The fix is easy, albeit a hack and not a real solution:&lt;/p&gt;
&lt;p&gt;Edit the file src\ssl\x509name.h:&lt;/p&gt;
&lt;p&gt;"""&lt;br /&gt;
#define crypto_X509Name_Check(v) ((v)-&amp;gt;ob_type ==&lt;br /&gt;
&amp;amp;crypto_X509Name_Type)&lt;/p&gt;
&lt;p&gt;/* Fix needed to compile pyOpenSSL with VC7.1: */&lt;br /&gt;
#ifdef OPENSSL_SYS_WIN32&lt;br /&gt;
/* Under Win32 these are defined in wincrypt.h */&lt;br /&gt;
#undef X509_NAME&lt;br /&gt;
#undef X509_CERT_PAIR&lt;br /&gt;
#endif&lt;/p&gt;
&lt;p&gt;typedef struct {&lt;br /&gt;
"""&lt;/p&gt;
&lt;p&gt;With this fix, pyOpenSSL builds against Py2.4. I'm not&lt;br /&gt;
sure whether this is due to how pyOpenSSL includes the&lt;br /&gt;
OpenSSL header files, but it looks like this is the&lt;br /&gt;
cause of the problem.&lt;/p&gt;
&lt;p&gt;Perhaps including OpenSSL *before* Python.h would help&lt;br /&gt;
- not sure, haven't tested it.&lt;/p&gt;
&lt;p&gt;Another hint: you can easily build Windows installers&lt;br /&gt;
using the following commands:&lt;/p&gt;
&lt;p&gt;set SSL=..\openssl-0.9.8&lt;br /&gt;
python setup.py build_ext -I %SSL%\inc32 -L&lt;br /&gt;
%SSL%\out32dll bdist_wininst -c -o &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>(re)enabling  X509Extensions</title><link href="https://sourceforge.net/p/pyopenssl/patches/12/" rel="alternate"/><published>2005-03-18T17:31:57Z</published><updated>2005-03-18T17:31:57Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.netad633b8d17287772558fec456944a2c1907877e2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;OS: Debian Sarge&lt;br /&gt;
python version 2.3.5&lt;br /&gt;
pyOpenSSL version 0.6&lt;br /&gt;
OpenSSL version 0.9.7e &lt;/p&gt;
&lt;p&gt;crypto.X509Extension() causes segmentation fault when it &lt;br /&gt;
is instanciated.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;This patch seems to work fine on my system.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;The main problem was that the ext_method-&amp;gt;i2d method is &lt;br /&gt;
NULL, I simply put the code used by OpenSSL into the &lt;br /&gt;
binding.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;
Cyril.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>