python 2.7 mass rebuild [release 0.9-2mamba;Sat Jun 01 2013]
This commit is contained in:
parent
d5b8359a3d
commit
e6f1893174
@ -1,2 +1,4 @@
|
|||||||
# python-pyOpenSSL
|
# python-pyOpenSSL
|
||||||
|
|
||||||
|
Python wrapper around a small subset of the OpenSSL library. Includes: X509 Certificates, SSL Context objects, SSL Connection objects using Python sockets as transport layer. The Connection object wraps all the socket methods and can therefore be used in
|
||||||
|
|
||||||
|
33
python-pyOpenSSL-elinks.patch
Normal file
33
python-pyOpenSSL-elinks.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
diff -Nur pyOpenSSL-0.5.1.orig/doc/tools/mkhowto pyOpenSSL-0.5.1/doc/tools/mkhowto
|
||||||
|
--- pyOpenSSL-0.5.1.orig/doc/tools/mkhowto 2001-07-30 13:31:48.000000000 +0200
|
||||||
|
+++ pyOpenSSL-0.5.1/doc/tools/mkhowto 2003-08-08 16:46:10.000000000 +0200
|
||||||
|
@@ -56,7 +56,7 @@
|
||||||
|
DVIPS_BINARY = "dvips"
|
||||||
|
LATEX_BINARY = "latex"
|
||||||
|
LATEX2HTML_BINARY = "latex2html"
|
||||||
|
-LYNX_BINARY = "lynx"
|
||||||
|
+LYNX_BINARY = "elinks"
|
||||||
|
MAKEINDEX_BINARY = "makeindex"
|
||||||
|
PDFLATEX_BINARY = "pdflatex"
|
||||||
|
PERL_BINARY = "perl"
|
||||||
|
@@ -397,7 +397,7 @@
|
||||||
|
if tempdir is None:
|
||||||
|
tempdir = self.doc
|
||||||
|
indexfile = os.path.join(tempdir, "index.html")
|
||||||
|
- self.run("%s -nolist -dump %s >%s.txt"
|
||||||
|
+ self.run("%s -dump %s >%s.txt"
|
||||||
|
% (LYNX_BINARY, indexfile, self.doc))
|
||||||
|
|
||||||
|
def require_temps(self, binary=None):
|
||||||
|
diff -Nur pyOpenSSL-0.5.1.orig/setup.cfg pyOpenSSL-0.5.1/setup.cfg
|
||||||
|
--- pyOpenSSL-0.5.1.orig/setup.cfg 2002-09-10 00:05:21.000000000 +0200
|
||||||
|
+++ pyOpenSSL-0.5.1/setup.cfg 2003-08-08 16:48:34.000000000 +0200
|
||||||
|
@@ -4,7 +4,7 @@
|
||||||
|
# bdist_rpm settings contributed by Mihai Ibanescu <misa@redhat.com>
|
||||||
|
[bdist_rpm]
|
||||||
|
release = 1
|
||||||
|
-build-requires = lynx openssl-devel python-devel perl tetex-dvips tetex-latex
|
||||||
|
+build-requires = elinks openssl-devel python-devel perl tetex-dvips tetex-latex
|
||||||
|
group = Development/Libraries
|
||||||
|
build_script = rpm/build_script
|
||||||
|
doc-files = doc/pyOpenSSL.txt doc/pyOpenSSL.ps doc/html
|
46
python-pyOpenSSL-nopdfout.patch
Normal file
46
python-pyOpenSSL-nopdfout.patch
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
--- pyOpenSSL-0.6/doc/tools/texinputs/howto.cls.nopdfout 2001-07-16 07:53:03.000000000 -0400
|
||||||
|
+++ pyOpenSSL-0.6/doc/tools/texinputs/howto.cls 2005-03-14 20:22:34.745230000 -0500
|
||||||
|
@@ -54,10 +54,16 @@
|
||||||
|
% changes \\ to ', ' (comma-space), making it pass muster for
|
||||||
|
% generating document info in the PDF file.
|
||||||
|
\def\\{, }
|
||||||
|
- \pdfinfo{
|
||||||
|
- /Author (\@author)
|
||||||
|
- /Title (\@title)
|
||||||
|
- }
|
||||||
|
+ \ifx\pdfoutput\relax
|
||||||
|
+ \else
|
||||||
|
+ \ifcase\pdfoutput
|
||||||
|
+ \else
|
||||||
|
+ \pdfinfo{
|
||||||
|
+ /Author (\@author)
|
||||||
|
+ /Title (\@title)
|
||||||
|
+ }
|
||||||
|
+ \fi
|
||||||
|
+ \fi
|
||||||
|
}}
|
||||||
|
\begin{flushright}
|
||||||
|
{\rm\Huge\py@HeaderFamily \@title} \par
|
||||||
|
--- pyOpenSSL-0.6/doc/tools/texinputs/manual.cls.nopdfout 2005-03-14 09:32:50.000000000 -0500
|
||||||
|
+++ pyOpenSSL-0.6/doc/tools/texinputs/manual.cls 2005-03-14 09:34:20.000000000 -0500
|
||||||
|
@@ -69,10 +69,16 @@
|
||||||
|
% changes \\ to ', ' (comma-space), making it pass muster for
|
||||||
|
% generating document info in the PDF file.
|
||||||
|
\def\\{, }
|
||||||
|
- \pdfinfo{
|
||||||
|
- /Author (\@author)
|
||||||
|
- /Title (\@title)
|
||||||
|
- }
|
||||||
|
+ \ifx\pdfoutput\relax
|
||||||
|
+ \else
|
||||||
|
+ \ifcase\pdfoutput
|
||||||
|
+ \else
|
||||||
|
+ \pdfinfo{%
|
||||||
|
+ /Author (\@author)
|
||||||
|
+ /Title (\@title)
|
||||||
|
+ }
|
||||||
|
+ \fi
|
||||||
|
+ \fi
|
||||||
|
}}
|
||||||
|
\begin{flushright}%
|
||||||
|
{\rm\Huge\py@HeaderFamily \@title \par}%
|
197
python-pyOpenSSL-threadsafe.patch
Normal file
197
python-pyOpenSSL-threadsafe.patch
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
diff -Nur pyOpenSSL-0.7-bad/src/crypto/crypto.c pyOpenSSL-0.7/src/crypto/crypto.c
|
||||||
|
--- pyOpenSSL-0.7-bad/src/crypto/crypto.c 2008-03-21 17:34:42.000000000 -0500
|
||||||
|
+++ pyOpenSSL-0.7/src/crypto/crypto.c 2008-09-19 18:06:08.000000000 -0500
|
||||||
|
@@ -694,6 +694,74 @@
|
||||||
|
{ NULL, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
|
+
|
||||||
|
+#ifdef WITH_THREAD
|
||||||
|
+
|
||||||
|
+#include <pthread.h>
|
||||||
|
+
|
||||||
|
+#define MUTEX_TYPE pthread_mutex_t
|
||||||
|
+#define MUTEX_SETUP(x) pthread_mutex_init(&(x), NULL)
|
||||||
|
+#define MUTEX_CLEANUP(x) pthread_mutex_destroy(&(x))
|
||||||
|
+#define MUTEX_LOCK(x) pthread_mutex_lock(&(x))
|
||||||
|
+#define MUTEX_UNLOCK(x) pthread_mutex_unlock(&(x))
|
||||||
|
+#define THREAD_ID pthread_self()
|
||||||
|
+
|
||||||
|
+void handle_error(const char *file, int lineno, const char *msg)
|
||||||
|
+{
|
||||||
|
+ fprintf(stderr, "** %s:%i %s\n", file, lineno, msg);
|
||||||
|
+ ERR_print_errors_fp(stderr);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+/* This array will store all of the mutexes available to OpenSSL. */
|
||||||
|
+static MUTEX_TYPE *mutex_buf = NULL;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+static void locking_function(int mode, int n, const char * file, int line)
|
||||||
|
+{
|
||||||
|
+ if (mode & CRYPTO_LOCK)
|
||||||
|
+ MUTEX_LOCK(mutex_buf[n]);
|
||||||
|
+ else
|
||||||
|
+ MUTEX_UNLOCK(mutex_buf[n]);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static unsigned long id_function(void)
|
||||||
|
+{
|
||||||
|
+ return ((unsigned long)THREAD_ID);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int init_openssl_threads(void)
|
||||||
|
+{
|
||||||
|
+ int i;
|
||||||
|
+
|
||||||
|
+ mutex_buf = (MUTEX_TYPE *)malloc(CRYPTO_num_locks() * sizeof(MUTEX_TYPE));
|
||||||
|
+ if (!mutex_buf)
|
||||||
|
+ return 0;
|
||||||
|
+ for (i = 0; i < CRYPTO_num_locks(); i++)
|
||||||
|
+ MUTEX_SETUP(mutex_buf[i]);
|
||||||
|
+ CRYPTO_set_id_callback(id_function);
|
||||||
|
+ CRYPTO_set_locking_callback(locking_function);
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int deinit_openssl_threads(void)
|
||||||
|
+{
|
||||||
|
+ int i;
|
||||||
|
+
|
||||||
|
+ if (!mutex_buf)
|
||||||
|
+ return 0;
|
||||||
|
+ CRYPTO_set_id_callback(NULL);
|
||||||
|
+ CRYPTO_set_locking_callback(NULL);
|
||||||
|
+ for (i = 0; i < CRYPTO_num_locks(); i++)
|
||||||
|
+ MUTEX_CLEANUP(mutex_buf[i]);
|
||||||
|
+ free(mutex_buf);
|
||||||
|
+ mutex_buf = NULL;
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Initialize crypto sub module
|
||||||
|
*
|
||||||
|
@@ -739,6 +807,10 @@
|
||||||
|
PyModule_AddIntConstant(module, "TYPE_DSA", crypto_TYPE_DSA);
|
||||||
|
|
||||||
|
dict = PyModule_GetDict(module);
|
||||||
|
+#ifdef WITH_THREAD
|
||||||
|
+ if (!init_openssl_threads())
|
||||||
|
+ goto error;
|
||||||
|
+#endif
|
||||||
|
if (!init_crypto_x509(dict))
|
||||||
|
goto error;
|
||||||
|
if (!init_crypto_x509name(dict))
|
||||||
|
diff -Nur pyOpenSSL-0.7-bad/src/ssl/context.c pyOpenSSL-0.7/src/ssl/context.c
|
||||||
|
--- pyOpenSSL-0.7-bad/src/ssl/context.c 2008-03-21 17:34:42.000000000 -0500
|
||||||
|
+++ pyOpenSSL-0.7/src/ssl/context.c 2008-09-19 18:27:00.000000000 -0500
|
||||||
|
@@ -64,39 +64,33 @@
|
||||||
|
static int
|
||||||
|
global_passphrase_callback(char *buf, int maxlen, int verify, void *arg)
|
||||||
|
{
|
||||||
|
- int len;
|
||||||
|
+ int len = 0;
|
||||||
|
char *str;
|
||||||
|
PyObject *argv, *ret = NULL;
|
||||||
|
ssl_ContextObj *ctx = (ssl_ContextObj *)arg;
|
||||||
|
|
||||||
|
+ if (!ctx->tstate)
|
||||||
|
+ fprintf (stderr, "ERROR: ctx->tstate == NULL!\n");
|
||||||
|
+ MY_END_ALLOW_THREADS(ctx->tstate);
|
||||||
|
+
|
||||||
|
/* The Python callback is called with a (maxlen,verify,userdata) tuple */
|
||||||
|
argv = Py_BuildValue("(iiO)", maxlen, verify, ctx->passphrase_userdata);
|
||||||
|
- if (ctx->tstate != NULL)
|
||||||
|
- {
|
||||||
|
- /* We need to get back our thread state before calling the callback */
|
||||||
|
- MY_END_ALLOW_THREADS(ctx->tstate);
|
||||||
|
- ret = PyEval_CallObject(ctx->passphrase_callback, argv);
|
||||||
|
- MY_BEGIN_ALLOW_THREADS(ctx->tstate);
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- ret = PyEval_CallObject(ctx->passphrase_callback, argv);
|
||||||
|
- }
|
||||||
|
+ ret = PyEval_CallObject(ctx->passphrase_callback, argv);
|
||||||
|
Py_DECREF(argv);
|
||||||
|
|
||||||
|
if (ret == NULL)
|
||||||
|
- return 0;
|
||||||
|
+ goto out;
|
||||||
|
|
||||||
|
if (!PyObject_IsTrue(ret))
|
||||||
|
{
|
||||||
|
Py_DECREF(ret);
|
||||||
|
- return 0;
|
||||||
|
+ goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!PyString_Check(ret))
|
||||||
|
{
|
||||||
|
Py_DECREF(ret);
|
||||||
|
- return 0;
|
||||||
|
+ goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
len = PyString_Size(ret);
|
||||||
|
@@ -107,6 +101,8 @@
|
||||||
|
strncpy(buf, str, len);
|
||||||
|
Py_XDECREF(ret);
|
||||||
|
|
||||||
|
+out:
|
||||||
|
+ MY_BEGIN_ALLOW_THREADS(ctx->tstate);
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -173,28 +169,19 @@
|
||||||
|
ssl_ConnectionObj *conn = (ssl_ConnectionObj *)SSL_get_app_data(ssl);
|
||||||
|
PyObject *argv, *ret;
|
||||||
|
|
||||||
|
+ if (!conn->tstate)
|
||||||
|
+ fprintf (stderr, "ERROR: ctx->tstate == NULL!\n");
|
||||||
|
+ MY_END_ALLOW_THREADS(conn->tstate);
|
||||||
|
+
|
||||||
|
argv = Py_BuildValue("(Oii)", (PyObject *)conn, where, _ret);
|
||||||
|
- if (conn->tstate != NULL)
|
||||||
|
- {
|
||||||
|
- /* We need to get back our thread state before calling the callback */
|
||||||
|
- MY_END_ALLOW_THREADS(conn->tstate);
|
||||||
|
- ret = PyEval_CallObject(conn->context->info_callback, argv);
|
||||||
|
- if (ret == NULL)
|
||||||
|
- PyErr_Clear();
|
||||||
|
- else
|
||||||
|
- Py_DECREF(ret);
|
||||||
|
- MY_BEGIN_ALLOW_THREADS(conn->tstate);
|
||||||
|
- }
|
||||||
|
+ ret = PyEval_CallObject(conn->context->info_callback, argv);
|
||||||
|
+ if (ret == NULL)
|
||||||
|
+ PyErr_Clear();
|
||||||
|
else
|
||||||
|
- {
|
||||||
|
- ret = PyEval_CallObject(conn->context->info_callback, argv);
|
||||||
|
- if (ret == NULL)
|
||||||
|
- PyErr_Clear();
|
||||||
|
- else
|
||||||
|
- Py_DECREF(ret);
|
||||||
|
- }
|
||||||
|
+ Py_DECREF(ret);
|
||||||
|
Py_DECREF(argv);
|
||||||
|
|
||||||
|
+ MY_BEGIN_ALLOW_THREADS(conn->tstate);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -447,6 +434,8 @@
|
||||||
|
if (!PyArg_ParseTuple(args, "s|i:use_privatekey_file", &keyfile, &filetype))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
+ if (self->tstate)
|
||||||
|
+ fprintf (stderr, "ERROR: ctx->tstate != NULL!\n");
|
||||||
|
MY_BEGIN_ALLOW_THREADS(self->tstate);
|
||||||
|
ret = SSL_CTX_use_PrivateKey_file(self->ctx, keyfile, filetype);
|
||||||
|
MY_END_ALLOW_THREADS(self->tstate);
|
80
python-pyOpenSSL.spec
Normal file
80
python-pyOpenSSL.spec
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
Name: python-pyOpenSSL
|
||||||
|
Version: 0.9
|
||||||
|
Release: 2mamba
|
||||||
|
Summary: Python interface to the OpenSSL library
|
||||||
|
Group: System/Libraries/Python
|
||||||
|
Vendor: openmamba
|
||||||
|
Distribution: openmamba
|
||||||
|
Packager: Automatic Build System <autodist@mambasoft.it>
|
||||||
|
URL: http://pyopenssl.sourceforge.net/
|
||||||
|
Source: http://downloads.sourceforge.net/pyopenssl/pyOpenSSL-%{version}.tar.gz
|
||||||
|
Patch0: python-pyOpenSSLL-0.7-openssl.patch
|
||||||
|
Patch1: python-pyOpenSSL-elinks.patch
|
||||||
|
Patch2: python-pyOpenSSL-nopdfout.patch
|
||||||
|
Patch3: python-pyOpenSSL-threadsafe.patch
|
||||||
|
License: LGPL
|
||||||
|
## AUTOBUILDREQ-BEGIN
|
||||||
|
BuildRequires: glibc-devel
|
||||||
|
BuildRequires: libopenssl-devel
|
||||||
|
BuildRequires: libpython-devel
|
||||||
|
## AUTOBUILDREQ-END
|
||||||
|
BuildRequires: elinks
|
||||||
|
BuildRequires: tetex-dvips
|
||||||
|
BuildRequires: tetex-latex
|
||||||
|
BuildRequires: latex2html
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
||||||
|
|
||||||
|
%description
|
||||||
|
Python wrapper around a small subset of the OpenSSL library. Includes: X509 Certificates, SSL Context objects, SSL Connection objects using Python sockets as transport layer. The Connection object wraps all the socket methods and can therefore be used in
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n pyOpenSSL-%{version}
|
||||||
|
%patch0 -p1 -b .openssl097
|
||||||
|
%patch1 -p1 -b .elinks
|
||||||
|
%patch2 -p1 -b .nopdfout
|
||||||
|
#%patch3 -p1 -b .threadsafe
|
||||||
|
|
||||||
|
# Fix permissions for debuginfo package
|
||||||
|
%{__chmod} -x src/ssl/connection.c
|
||||||
|
|
||||||
|
%build
|
||||||
|
CFLAGS="%{optflags}" %{__python} setup.py build
|
||||||
|
##sed -i "s|python|python2.6|" doc/Makefile
|
||||||
|
%make -C doc ps
|
||||||
|
%make -C doc text
|
||||||
|
#html
|
||||||
|
%install
|
||||||
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||||
|
%{__python} setup.py install \
|
||||||
|
--root="%{buildroot}" \
|
||||||
|
--install-headers=%{_includedir}/python \
|
||||||
|
--install-lib=%{python_sitearch}
|
||||||
|
|
||||||
|
%clean
|
||||||
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{python_sitearch}/pyOpenSSL-%{version}-py%{python_version}.egg-info
|
||||||
|
%dir %{python_sitearch}/OpenSSL
|
||||||
|
%{python_sitearch}/OpenSSL/*.so
|
||||||
|
%{python_sitearch}/OpenSSL/*.py
|
||||||
|
%{python_sitearch}/OpenSSL/*.pyc
|
||||||
|
%dir %{python_sitearch}/OpenSSL/test
|
||||||
|
%{python_sitearch}/OpenSSL/test/*.py
|
||||||
|
%{python_sitearch}/OpenSSL/test/*.pyc
|
||||||
|
%doc README doc/pyOpenSSL.ps
|
||||||
|
#%doc doc/pyOpenSSL.txt
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Sat Jun 01 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 0.9-2mamba
|
||||||
|
- python 2.7 mass rebuild
|
||||||
|
|
||||||
|
* Fri Jul 10 2009 Automatic Build System <autodist@mambasoft.it> 0.9-1mamba
|
||||||
|
- automatic update by autodist
|
||||||
|
|
||||||
|
* Mon Dec 29 2008 gil <puntogil@libero.it> 0.8-2mamba
|
||||||
|
- rebuilt with python 2.6
|
||||||
|
|
||||||
|
* Tue Nov 18 2008 gil <puntogil@libero.it> 0.8-1mamba
|
||||||
|
- package created by autospec
|
12
python-pyOpenSSLL-0.7-openssl.patch
Normal file
12
python-pyOpenSSLL-0.7-openssl.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
--- pyOpenSSL-0.7/setup.py 2008-04-11 16:53:24.000000000 +0100
|
||||||
|
+++ pyOpenSSL-0.7/setup-new.py 2008-09-15 23:46:19.000000000 +0100
|
||||||
|
@@ -64,6 +64,9 @@
|
||||||
|
if sys.platform == 'darwin':
|
||||||
|
IncludeDirs = ['/sw/include']
|
||||||
|
LibraryDirs = ['/sw/lib']
|
||||||
|
+elif os.name == 'posix':
|
||||||
|
+ IncludeDirs = ['/usr/kerberos/include']
|
||||||
|
+ LibraryDirs = ['/usr/kerberos/lib']
|
||||||
|
|
||||||
|
def mkExtension(name):
|
||||||
|
modname = 'OpenSSL.' + name
|
Loading…
Reference in New Issue
Block a user