forked from pool/python
- update to 2.7.7
* bugfix-only release, over a hundred bugs fixed * backported hmac.compare_digest from python3, first step of PEP 466 - drop upstreamed patches: * CVE-2014-1912-recvfrom_into.patch * python-2.7.4-no-REUSEPORT.patch * python-2.7.6-bdist-rpm.patch * python-2.7.6-imaplib.patch * python-2.7.6-sqlite-3.8.4-tests.patch - refresh patches: * python-2.7.3-ssl_ca_path.patch * python-2.7.4-canonicalize2.patch * xmlrpc_gzip_27.patch - added python keyring and signature for the main tarball - update to 2.7.7 - update to 2.7.7 * bugfix-only release, over a hundred bugs fixed OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python?expand=0&rev=165
This commit is contained in:
committed by
Git OBS Bridge
parent
b15d1e2b45
commit
71551512cd
@@ -1,56 +0,0 @@
|
|||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User Benjamin Peterson <benjamin@python.org>
|
|
||||||
# Date 1389671978 18000
|
|
||||||
# Node ID 87673659d8f7ba1623cd4914f09ad3d2ade034e9
|
|
||||||
# Parent 2631d33ee7fbd5f0288931ef37872218d511d2e8
|
|
||||||
complain when nbytes > buflen to fix possible buffer overflow (closes #20246)
|
|
||||||
|
|
||||||
Index: Python-2.7.6/Lib/test/test_socket.py
|
|
||||||
===================================================================
|
|
||||||
--- Python-2.7.6.orig/Lib/test/test_socket.py 2013-11-10 08:36:40.000000000 +0100
|
|
||||||
+++ Python-2.7.6/Lib/test/test_socket.py 2014-02-13 18:04:12.710244327 +0100
|
|
||||||
@@ -1616,6 +1616,16 @@
|
|
||||||
|
|
||||||
_testRecvFromIntoMemoryview = _testRecvFromIntoArray
|
|
||||||
|
|
||||||
+ def testRecvFromIntoSmallBuffer(self):
|
|
||||||
+ # See issue #20246.
|
|
||||||
+ buf = bytearray(8)
|
|
||||||
+ self.assertRaises(ValueError, self.cli_conn.recvfrom_into, buf, 1024)
|
|
||||||
+
|
|
||||||
+ def _testRecvFromIntoSmallBuffer(self):
|
|
||||||
+ with test_support.check_py3k_warnings():
|
|
||||||
+ buf = buffer(MSG)
|
|
||||||
+ self.serv_conn.send(buf)
|
|
||||||
+
|
|
||||||
|
|
||||||
TIPC_STYPE = 2000
|
|
||||||
TIPC_LOWER = 200
|
|
||||||
Index: Python-2.7.6/Misc/ACKS
|
|
||||||
===================================================================
|
|
||||||
--- Python-2.7.6.orig/Misc/ACKS 2013-11-10 08:36:41.000000000 +0100
|
|
||||||
+++ Python-2.7.6/Misc/ACKS 2014-02-13 18:04:12.710244327 +0100
|
|
||||||
@@ -973,6 +973,7 @@
|
|
||||||
Christopher Smith
|
|
||||||
Gregory P. Smith
|
|
||||||
Roy Smith
|
|
||||||
+Ryan Smith-Roberts
|
|
||||||
Rafal Smotrzyk
|
|
||||||
Dirk Soede
|
|
||||||
Paul Sokolovsky
|
|
||||||
Index: Python-2.7.6/Modules/socketmodule.c
|
|
||||||
===================================================================
|
|
||||||
--- Python-2.7.6.orig/Modules/socketmodule.c 2013-11-10 08:36:41.000000000 +0100
|
|
||||||
+++ Python-2.7.6/Modules/socketmodule.c 2014-02-13 18:04:12.711244332 +0100
|
|
||||||
@@ -2742,6 +2742,10 @@
|
|
||||||
if (recvlen == 0) {
|
|
||||||
/* If nbytes was not specified, use the buffer's length */
|
|
||||||
recvlen = buflen;
|
|
||||||
+ } else if (recvlen > buflen) {
|
|
||||||
+ PyErr_SetString(PyExc_ValueError,
|
|
||||||
+ "nbytes is greater than the length of the buffer");
|
|
||||||
+ goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
readlen = sock_recvfrom_guts(s, buf.buf, recvlen, flags, &addr);
|
|
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:1fd68e81f8bf7386ff239b7faee9ba387129d2cf34eab13350bd8503a0bff6a1
|
|
||||||
size 10431288
|
|
3
Python-2.7.7.tar.xz
Normal file
3
Python-2.7.7.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:2983e3cd089b30c50e2b2234f07c2ac4fb8a5df230ab8f2e1133a1d8b208da78
|
||||||
|
size 10496500
|
17
Python-2.7.7.tar.xz.asc
Normal file
17
Python-2.7.7.tar.xz.asc
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v2.0.22 (GNU/Linux)
|
||||||
|
|
||||||
|
iQIcBAABAgAGBQJTiinXAAoJEATDZ8IYrdT/rp4P/Rnl1l4O3LgrL+F96ASNqzRJ
|
||||||
|
b2lxcgEzbiuSCxYTsHrNb8nElcl2XozkDb3IOGT9s2dpl0NobcrYkQ5ia0/Tk6XP
|
||||||
|
mJ4B99mIiFJfAssBBIZglG6I2xiJHaV/XNzZj6NIvGrvyyeuW8GqOOG1KDME4UyQ
|
||||||
|
JRqnozC0O1YNzaHmppDjRaKea9ualmmLiAC3N2J6svtB97AkKrUsxFPdqLso776T
|
||||||
|
119ZlZ6MEQx5hs8YgJ+J62gBKzkP/m2yiSu0tf36QUxsYISWlbwjyvqS6cuzRNjl
|
||||||
|
VXlXyKTq7RcU/10VvLYENnA0U5dXIFKZv4BWCj/4wHmujEz2DenwziXUVb38ot+K
|
||||||
|
bAXk9OMUVHzzFwny0pLbQxFXOAXopUx3qtcwXSiOoaK72VxqhKqLH/UP6rL7n3tn
|
||||||
|
Un4wpNYA6pd3O4dZVIbZ3IjfueTasGdKdX6DxLjlvD916w0+zeiYZeohCe/HeT93
|
||||||
|
+Yp4tibpexHPqgln+6/M17Oj8ungqyuD6Y91mPyfOhr8FoPK1z/NyLQit8f97Mkl
|
||||||
|
OJkqOfqoNfOxPPuP1oiN4rb4EttkmFtJ45BOsfsksXDF9IIDKwonOSxDbeTekW8Z
|
||||||
|
RGg2FKXFsnOSpH+NcEkPizY5vsYB7DUH7NB992ovZmUUmUuAS6n0wNyiUqwtQN60
|
||||||
|
sFbdz+EXOO6KTcQx0y3z
|
||||||
|
=tcoa
|
||||||
|
-----END PGP SIGNATURE-----
|
@@ -1,16 +1,16 @@
|
|||||||
Index: Python-2.7.5/Modules/_ssl.c
|
Index: Python-2.7.7/Modules/_ssl.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-2.7.5.orig/Modules/_ssl.c
|
--- Python-2.7.7.orig/Modules/_ssl.c 2014-06-20 14:34:28.157656595 +0200
|
||||||
+++ Python-2.7.5/Modules/_ssl.c
|
+++ Python-2.7.7/Modules/_ssl.c 2014-06-20 14:35:20.092929774 +0200
|
||||||
@@ -271,6 +271,7 @@ newPySSLObject(PySocketSockObject *Sock,
|
@@ -273,6 +273,7 @@
|
||||||
char *errstr = NULL;
|
char *errstr = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
int verification_mode;
|
int verification_mode;
|
||||||
+ struct stat stat_buf;
|
+ struct stat stat_buf;
|
||||||
|
long options;
|
||||||
|
|
||||||
self = PyObject_New(PySSLObject, &PySSL_Type); /* Create new object */
|
self = PyObject_New(PySSLObject, &PySSL_Type); /* Create new object */
|
||||||
if (self == NULL)
|
@@ -331,20 +332,32 @@
|
||||||
@@ -327,20 +328,32 @@ newPySSLObject(PySocketSockObject *Sock,
|
|
||||||
|
|
||||||
if (certreq != PY_SSL_CERT_NONE) {
|
if (certreq != PY_SSL_CERT_NONE) {
|
||||||
if (cacerts_file == NULL) {
|
if (cacerts_file == NULL) {
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
--- a/Python/sysmodule.c
|
Index: Python-2.7.7/Python/sysmodule.c
|
||||||
+++ b/Python/sysmodule.c
|
===================================================================
|
||||||
@@ -1620,7 +1620,20 @@
|
--- Python-2.7.7.orig/Python/sysmodule.c 2014-06-20 14:33:06.696228064 +0200
|
||||||
|
+++ Python-2.7.7/Python/sysmodule.c 2014-06-20 14:33:10.960250497 +0200
|
||||||
|
@@ -1624,7 +1624,20 @@
|
||||||
char *p = NULL;
|
char *p = NULL;
|
||||||
Py_ssize_t n = 0;
|
Py_ssize_t n = 0;
|
||||||
PyObject *a;
|
PyObject *a;
|
||||||
@@ -22,7 +24,7 @@
|
|||||||
char link[MAXPATHLEN+1];
|
char link[MAXPATHLEN+1];
|
||||||
char argv0copy[2*MAXPATHLEN+1];
|
char argv0copy[2*MAXPATHLEN+1];
|
||||||
int nr = 0;
|
int nr = 0;
|
||||||
@@ -1647,7 +1660,8 @@
|
@@ -1651,7 +1664,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -32,7 +34,7 @@
|
|||||||
#if SEP == '\\' /* Special case for MS filename syntax */
|
#if SEP == '\\' /* Special case for MS filename syntax */
|
||||||
if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
|
if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
|
||||||
char *q;
|
char *q;
|
||||||
@@ -1676,11 +1690,6 @@
|
@@ -1680,11 +1694,6 @@
|
||||||
}
|
}
|
||||||
#else /* All other filename syntaxes */
|
#else /* All other filename syntaxes */
|
||||||
if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
|
if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
|
||||||
@@ -44,7 +46,7 @@
|
|||||||
p = strrchr(argv0, SEP);
|
p = strrchr(argv0, SEP);
|
||||||
}
|
}
|
||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
@@ -1698,6 +1707,9 @@
|
@@ -1702,6 +1711,9 @@
|
||||||
a = PyString_FromStringAndSize(argv0, n);
|
a = PyString_FromStringAndSize(argv0, n);
|
||||||
if (a == NULL)
|
if (a == NULL)
|
||||||
Py_FatalError("no mem for sys.path insertion");
|
Py_FatalError("no mem for sys.path insertion");
|
||||||
@@ -54,9 +56,11 @@
|
|||||||
if (PyList_Insert(path, 0, a) < 0)
|
if (PyList_Insert(path, 0, a) < 0)
|
||||||
Py_FatalError("sys.path.insert(0) failed");
|
Py_FatalError("sys.path.insert(0) failed");
|
||||||
Py_DECREF(a);
|
Py_DECREF(a);
|
||||||
--- a/pyconfig.h.in
|
Index: Python-2.7.7/pyconfig.h.in
|
||||||
+++ b/pyconfig.h.in
|
===================================================================
|
||||||
@@ -106,6 +106,9 @@
|
--- Python-2.7.7.orig/pyconfig.h.in 2014-05-31 20:58:40.000000000 +0200
|
||||||
|
+++ Python-2.7.7/pyconfig.h.in 2014-06-20 14:33:10.961250502 +0200
|
||||||
|
@@ -109,6 +109,9 @@
|
||||||
/* Define to 1 if you have the 'chflags' function. */
|
/* Define to 1 if you have the 'chflags' function. */
|
||||||
#undef HAVE_CHFLAGS
|
#undef HAVE_CHFLAGS
|
||||||
|
|
||||||
@@ -66,11 +70,13 @@
|
|||||||
/* Define to 1 if you have the `chown' function. */
|
/* Define to 1 if you have the `chown' function. */
|
||||||
#undef HAVE_CHOWN
|
#undef HAVE_CHOWN
|
||||||
|
|
||||||
--- a/configure.ac
|
Index: Python-2.7.7/configure.ac
|
||||||
+++ b/configure.ac
|
===================================================================
|
||||||
@@ -2913,7 +2913,7 @@
|
--- Python-2.7.7.orig/configure.ac 2014-06-20 14:33:06.694228054 +0200
|
||||||
|
+++ Python-2.7.7/configure.ac 2014-06-20 14:33:10.961250502 +0200
|
||||||
|
@@ -2935,7 +2935,7 @@
|
||||||
getpriority getresuid getresgid getpwent getspnam getspent getsid getwd \
|
getpriority getresuid getresgid getpwent getspnam getspent getsid getwd \
|
||||||
initgroups kill killpg lchmod lchown lstat mkfifo mknod mktime \
|
initgroups kill killpg lchmod lchown lstat mkfifo mknod mktime mmap \
|
||||||
mremap nice pathconf pause plock poll pthread_init \
|
mremap nice pathconf pause plock poll pthread_init \
|
||||||
- putenv readlink realpath \
|
- putenv readlink realpath \
|
||||||
+ putenv readlink realpath canonicalize_file_name \
|
+ putenv readlink realpath canonicalize_file_name \
|
||||||
|
@@ -1,19 +0,0 @@
|
|||||||
Index: Python-2.7.4/Lib/test/test_support.py
|
|
||||||
===================================================================
|
|
||||||
--- Python-2.7.4.orig/Lib/test/test_support.py 2013-04-06 16:02:32.000000000 +0200
|
|
||||||
+++ Python-2.7.4/Lib/test/test_support.py 2013-05-09 17:46:46.789663295 +0200
|
|
||||||
@@ -371,10 +371,10 @@
|
|
||||||
if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR) == 1:
|
|
||||||
raise TestFailed("tests should never set the SO_REUSEADDR " \
|
|
||||||
"socket option on TCP/IP sockets!")
|
|
||||||
- if hasattr(socket, 'SO_REUSEPORT'):
|
|
||||||
- if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1:
|
|
||||||
- raise TestFailed("tests should never set the SO_REUSEPORT " \
|
|
||||||
- "socket option on TCP/IP sockets!")
|
|
||||||
+# if hasattr(socket, 'SO_REUSEPORT'):
|
|
||||||
+# if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1:
|
|
||||||
+# raise TestFailed("tests should never set the SO_REUSEPORT " \
|
|
||||||
+# "socket option on TCP/IP sockets!")
|
|
||||||
if hasattr(socket, 'SO_EXCLUSIVEADDRUSE'):
|
|
||||||
sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1)
|
|
||||||
|
|
@@ -1,12 +0,0 @@
|
|||||||
Index: Python-2.7.6/Lib/distutils/command/bdist_rpm.py
|
|
||||||
===================================================================
|
|
||||||
--- Python-2.7.6.orig/Lib/distutils/command/bdist_rpm.py 2013-11-10 08:36:40.000000000 +0100
|
|
||||||
+++ Python-2.7.6/Lib/distutils/command/bdist_rpm.py 2014-02-11 19:19:26.739708837 +0100
|
|
||||||
@@ -14,6 +14,7 @@
|
|
||||||
from distutils.file_util import write_file
|
|
||||||
from distutils.errors import (DistutilsOptionError, DistutilsPlatformError,
|
|
||||||
DistutilsFileError, DistutilsExecError)
|
|
||||||
+from distutils.sysconfig import get_python_version
|
|
||||||
from distutils import log
|
|
||||||
|
|
||||||
class bdist_rpm (Command):
|
|
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b04dc7c5fa328ad9009cc0f43e2136ef14824246fc596fae0830bb5ece529ab3
|
|
||||||
size 4482212
|
|
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:5ca5209a8cbf8d966eff6611cfe8accf38040a63534d5c050730fba47a24e703
|
|
||||||
size 10321047
|
|
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:ff9b65247b5ad74a86793630eda5063af25b925bcc8dd2910765640a1463401d
|
|
||||||
size 10380021
|
|
@@ -1,59 +0,0 @@
|
|||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User R David Murray <rdmurray@bitdance.com>
|
|
||||||
# Date 1388775562 18000
|
|
||||||
# Node ID dd906f4ab9237020a7a275c2d361fa288e553481
|
|
||||||
# Parent 69b5f692455306c98aa27ecea17e6290787ebd3f
|
|
||||||
closes 16039: CVE-2013-1752: limit line length in imaplib readline calls.
|
|
||||||
|
|
||||||
diff --git a/Lib/imaplib.py b/Lib/imaplib.py
|
|
||||||
--- a/Lib/imaplib.py
|
|
||||||
+++ b/Lib/imaplib.py
|
|
||||||
@@ -35,6 +35,15 @@ IMAP4_PORT = 143
|
|
||||||
IMAP4_SSL_PORT = 993
|
|
||||||
AllowedVersions = ('IMAP4REV1', 'IMAP4') # Most recent first
|
|
||||||
|
|
||||||
+# Maximal line length when calling readline(). This is to prevent
|
|
||||||
+# reading arbitrary length lines. RFC 3501 and 2060 (IMAP 4rev1)
|
|
||||||
+# don't specify a line length. RFC 2683 however suggests limiting client
|
|
||||||
+# command lines to 1000 octets and server command lines to 8000 octets.
|
|
||||||
+# We have selected 10000 for some extra margin and since that is supposedly
|
|
||||||
+# also what UW and Panda IMAP does.
|
|
||||||
+_MAXLINE = 10000
|
|
||||||
+
|
|
||||||
+
|
|
||||||
# Commands
|
|
||||||
|
|
||||||
Commands = {
|
|
||||||
@@ -237,7 +246,10 @@ class IMAP4:
|
|
||||||
|
|
||||||
def readline(self):
|
|
||||||
"""Read line from remote."""
|
|
||||||
- return self.file.readline()
|
|
||||||
+ line = self.file.readline(_MAXLINE + 1)
|
|
||||||
+ if len(line) > _MAXLINE:
|
|
||||||
+ raise self.error("got more than %d bytes" % _MAXLINE)
|
|
||||||
+ return line
|
|
||||||
|
|
||||||
|
|
||||||
def send(self, data):
|
|
||||||
diff --git a/Lib/test/test_imaplib.py b/Lib/test/test_imaplib.py
|
|
||||||
--- a/Lib/test/test_imaplib.py
|
|
||||||
+++ b/Lib/test/test_imaplib.py
|
|
||||||
@@ -165,6 +165,16 @@ class BaseThreadedNetworkedTests(unittes
|
|
||||||
self.imap_class, *server.server_address)
|
|
||||||
|
|
||||||
|
|
||||||
+ def test_linetoolong(self):
|
|
||||||
+ class TooLongHandler(SimpleIMAPHandler):
|
|
||||||
+ def handle(self):
|
|
||||||
+ # Send a very long response line
|
|
||||||
+ self.wfile.write('* OK ' + imaplib._MAXLINE*'x' + '\r\n')
|
|
||||||
+
|
|
||||||
+ with self.reaped_server(TooLongHandler) as server:
|
|
||||||
+ self.assertRaises(imaplib.IMAP4.error,
|
|
||||||
+ self.imap_class, *server.server_address)
|
|
||||||
+
|
|
||||||
class ThreadedNetworkedTests(BaseThreadedNetworkedTests):
|
|
||||||
|
|
||||||
server_class = SocketServer.TCPServer
|
|
@@ -1,30 +0,0 @@
|
|||||||
From: Benjamin Peterson <benjamin@python.org>
|
|
||||||
Date: Wed, 12 Mar 2014 21:51:52 -0500
|
|
||||||
Subject: [PATCH] weaken callback count inequality (closes #20901)
|
|
||||||
Upstream: committed
|
|
||||||
References: https://bugzilla.novell.com/show_bug.cgi?id=867887 http://bugs.python.org/issue20901 http://hg.python.org/cpython/rev/1763e27a182d
|
|
||||||
|
|
||||||
Fixes test failures with SQLite 3.8.4
|
|
||||||
|
|
||||||
[ 296s] test test_sqlite failed -- Traceback (most recent call last):
|
|
||||||
[ 296s] File "/home/abuild/rpmbuild/BUILD/Python-2.7.6/Lib/sqlite3/test/hooks.py", line 165, in CheckOpcodeCount
|
|
||||||
[ 296s] self.assertTrue(first_count > second_count)
|
|
||||||
[ 296s] AssertionError: False is not true
|
|
||||||
|
|
||||||
---
|
|
||||||
Lib/sqlite3/test/hooks.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
Index: Python-2.7.6/Lib/sqlite3/test/hooks.py
|
|
||||||
===================================================================
|
|
||||||
--- Python-2.7.6.orig/Lib/sqlite3/test/hooks.py 2014-03-14 20:32:55.000000000 +0000
|
|
||||||
+++ Python-2.7.6/Lib/sqlite3/test/hooks.py 2014-03-14 20:34:07.000000000 +0000
|
|
||||||
@@ -162,7 +162,7 @@ class ProgressTests(unittest.TestCase):
|
|
||||||
create table bar (a, b)
|
|
||||||
""")
|
|
||||||
second_count = len(progress_calls)
|
|
||||||
- self.assertTrue(first_count > second_count)
|
|
||||||
+ self.assertTrue(first_count >= second_count)
|
|
||||||
|
|
||||||
def CheckCancelOperation(self):
|
|
||||||
"""
|
|
3
python-2.7.7-docs-html.tar.bz2
Normal file
3
python-2.7.7-docs-html.tar.bz2
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:0086dea3641d7b311425339357c52dd2ba5694f0d4d2c9ae1782e898707a8bd6
|
||||||
|
size 4494590
|
3
python-2.7.7-docs-pdf-a4.tar.bz2
Normal file
3
python-2.7.7-docs-pdf-a4.tar.bz2
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:6fc5eef11803c9b84aaab30c09c20ffd492f105089fe918e93ec1d65b6b87a6a
|
||||||
|
size 10728634
|
3
python-2.7.7-docs-pdf-letter.tar.bz2
Normal file
3
python-2.7.7-docs-pdf-letter.tar.bz2
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:fdc09f1a41744ac664d86241072f9525d2c6edb46919b0c197da0eb3e1ffff7d
|
||||||
|
size 10779787
|
@@ -1,3 +1,21 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jun 20 13:11:34 UTC 2014 - jmatejek@suse.com
|
||||||
|
|
||||||
|
- update to 2.7.7
|
||||||
|
* bugfix-only release, over a hundred bugs fixed
|
||||||
|
* backported hmac.compare_digest from python3, first step of PEP 466
|
||||||
|
- drop upstreamed patches:
|
||||||
|
* CVE-2014-1912-recvfrom_into.patch
|
||||||
|
* python-2.7.4-no-REUSEPORT.patch
|
||||||
|
* python-2.7.6-bdist-rpm.patch
|
||||||
|
* python-2.7.6-imaplib.patch
|
||||||
|
* python-2.7.6-sqlite-3.8.4-tests.patch
|
||||||
|
- refresh patches:
|
||||||
|
* python-2.7.3-ssl_ca_path.patch
|
||||||
|
* python-2.7.4-canonicalize2.patch
|
||||||
|
* xmlrpc_gzip_27.patch
|
||||||
|
- added python keyring and signature for the main tarball
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sat Mar 15 08:05:41 UTC 2014 - schwab@suse.de
|
Sat Mar 15 08:05:41 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: python-base
|
Name: python-base
|
||||||
Version: 2.7.6
|
Version: 2.7.7
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Python Interpreter base package
|
Summary: Python Interpreter base package
|
||||||
License: Python-2.0
|
License: Python-2.0
|
||||||
@@ -26,6 +26,8 @@ Url: http://www.python.org/
|
|||||||
%define tarversion %{version}
|
%define tarversion %{version}
|
||||||
%define tarname Python-%{tarversion}
|
%define tarname Python-%{tarversion}
|
||||||
Source0: http://www.python.org/ftp/python/%{version}/%{tarname}.tar.xz
|
Source0: http://www.python.org/ftp/python/%{version}/%{tarname}.tar.xz
|
||||||
|
Source4: http://www.python.org/ftp/python/%{version}/%{tarname}.tar.xz.asc
|
||||||
|
Source6: python.keyring
|
||||||
Source1: macros.python
|
Source1: macros.python
|
||||||
Source2: baselibs.conf
|
Source2: baselibs.conf
|
||||||
Source3: README.SUSE
|
Source3: README.SUSE
|
||||||
@@ -47,21 +49,14 @@ Patch18: python-2.7.3-ssl_ca_path.patch
|
|||||||
Patch20: python-bundle-lang.patch
|
Patch20: python-bundle-lang.patch
|
||||||
# PATCH-FIX-OPENSUSE Properly support aarch64 in _ctypes module
|
# PATCH-FIX-OPENSUSE Properly support aarch64 in _ctypes module
|
||||||
Patch22: python-2.7.4-aarch64.patch
|
Patch22: python-2.7.4-aarch64.patch
|
||||||
Patch23: python-2.7.4-no-REUSEPORT.patch
|
|
||||||
Patch24: python-bsddb6.diff
|
Patch24: python-bsddb6.diff
|
||||||
# PATCH-FIX-OPENSUSE Properly support ppc64le in _ctypes module
|
# PATCH-FIX-OPENSUSE Properly support ppc64le in _ctypes module
|
||||||
Patch25: libffi-ppc64le.diff
|
Patch25: libffi-ppc64le.diff
|
||||||
# CVE-2013-1753 [bnc#856835] unbounded gzip decompression in xmlrpc client
|
# CVE-2013-1753 [bnc#856835] unbounded gzip decompression in xmlrpc client
|
||||||
Patch26: xmlrpc_gzip_27.patch
|
Patch26: xmlrpc_gzip_27.patch
|
||||||
# CVE-2013-1752 patches missing in 2.7.6: imaplib, poplib, smtplib
|
# CVE-2013-1752 patches missing in 2.7.6: imaplib, poplib, smtplib
|
||||||
Patch27: python-2.7.6-imaplib.patch
|
|
||||||
Patch28: smtplib_maxline-2.7.patch
|
Patch28: smtplib_maxline-2.7.patch
|
||||||
Patch29: python-2.7.6-poplib.patch
|
Patch29: python-2.7.6-poplib.patch
|
||||||
# [bnc#857470] add missing import to bdist_rpm command
|
|
||||||
Patch30: python-2.7.6-bdist-rpm.patch
|
|
||||||
# CVE-2014-1912 [bnc#863741] buffer overflow in recvfrom_into
|
|
||||||
Patch31: CVE-2014-1912-recvfrom_into.patch
|
|
||||||
Patch32: python-2.7.6-sqlite-3.8.4-tests.patch
|
|
||||||
# COMMON-PATCH-END
|
# COMMON-PATCH-END
|
||||||
%define python_version %(echo %{tarversion} | head -c 3)
|
%define python_version %(echo %{tarversion} | head -c 3)
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
@@ -149,16 +144,11 @@ other applications.
|
|||||||
%patch18 -p1
|
%patch18 -p1
|
||||||
%patch20 -p1
|
%patch20 -p1
|
||||||
%patch22 -p1
|
%patch22 -p1
|
||||||
%patch23 -p1
|
|
||||||
%patch24 -p1
|
%patch24 -p1
|
||||||
%patch25 -p0
|
%patch25 -p0
|
||||||
%patch26 -p1
|
%patch26 -p1
|
||||||
%patch27 -p1
|
|
||||||
%patch28 -p1
|
%patch28 -p1
|
||||||
%patch29 -p1
|
%patch29 -p1
|
||||||
%patch30 -p1
|
|
||||||
%patch31 -p1
|
|
||||||
%patch32 -p1
|
|
||||||
|
|
||||||
# drop Autoconf version requirement
|
# drop Autoconf version requirement
|
||||||
sed -i 's/^version_required/dnl version_required/' configure.ac
|
sed -i 's/^version_required/dnl version_required/' configure.ac
|
||||||
|
@@ -1,3 +1,8 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jun 20 13:46:40 UTC 2014 - jmatejek@suse.com
|
||||||
|
|
||||||
|
- update to 2.7.7
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Mar 14 20:26:03 UTC 2014 - andreas.stieger@gmx.de
|
Fri Mar 14 20:26:03 UTC 2014 - andreas.stieger@gmx.de
|
||||||
|
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
Name: python-doc
|
Name: python-doc
|
||||||
Version: 2.7.6
|
Version: 2.7.7
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Additional Package Documentation for Python
|
Summary: Additional Package Documentation for Python
|
||||||
License: Python-2.0
|
License: Python-2.0
|
||||||
@@ -52,21 +52,14 @@ Patch18: python-2.7.3-ssl_ca_path.patch
|
|||||||
Patch20: python-bundle-lang.patch
|
Patch20: python-bundle-lang.patch
|
||||||
# PATCH-FIX-OPENSUSE Properly support aarch64 in _ctypes module
|
# PATCH-FIX-OPENSUSE Properly support aarch64 in _ctypes module
|
||||||
Patch22: python-2.7.4-aarch64.patch
|
Patch22: python-2.7.4-aarch64.patch
|
||||||
Patch23: python-2.7.4-no-REUSEPORT.patch
|
|
||||||
Patch24: python-bsddb6.diff
|
Patch24: python-bsddb6.diff
|
||||||
# PATCH-FIX-OPENSUSE Properly support ppc64le in _ctypes module
|
# PATCH-FIX-OPENSUSE Properly support ppc64le in _ctypes module
|
||||||
Patch25: libffi-ppc64le.diff
|
Patch25: libffi-ppc64le.diff
|
||||||
# CVE-2013-1753 [bnc#856835] unbounded gzip decompression in xmlrpc client
|
# CVE-2013-1753 [bnc#856835] unbounded gzip decompression in xmlrpc client
|
||||||
Patch26: xmlrpc_gzip_27.patch
|
Patch26: xmlrpc_gzip_27.patch
|
||||||
# CVE-2013-1752 patches missing in 2.7.6: imaplib, poplib, smtplib
|
# CVE-2013-1752 patches missing in 2.7.6: imaplib, poplib, smtplib
|
||||||
Patch27: python-2.7.6-imaplib.patch
|
|
||||||
Patch28: smtplib_maxline-2.7.patch
|
Patch28: smtplib_maxline-2.7.patch
|
||||||
Patch29: python-2.7.6-poplib.patch
|
Patch29: python-2.7.6-poplib.patch
|
||||||
# [bnc#857470] add missing import to bdist_rpm command
|
|
||||||
Patch30: python-2.7.6-bdist-rpm.patch
|
|
||||||
# CVE-2014-1912 [bnc#863741] buffer overflow in recvfrom_into
|
|
||||||
Patch31: CVE-2014-1912-recvfrom_into.patch
|
|
||||||
Patch32: python-2.7.6-sqlite-3.8.4-tests.patch
|
|
||||||
# COMMON-PATCH-END
|
# COMMON-PATCH-END
|
||||||
Provides: pyth_doc
|
Provides: pyth_doc
|
||||||
Provides: pyth_ps
|
Provides: pyth_ps
|
||||||
@@ -108,16 +101,11 @@ Python, and Macintosh Module Reference in PDF format.
|
|||||||
%patch18 -p1
|
%patch18 -p1
|
||||||
%patch20 -p1
|
%patch20 -p1
|
||||||
%patch22 -p1
|
%patch22 -p1
|
||||||
%patch23 -p1
|
|
||||||
%patch24 -p1
|
%patch24 -p1
|
||||||
%patch25 -p0
|
%patch25 -p0
|
||||||
%patch26 -p1
|
%patch26 -p1
|
||||||
%patch27 -p1
|
|
||||||
%patch28 -p1
|
%patch28 -p1
|
||||||
%patch29 -p1
|
%patch29 -p1
|
||||||
%patch30 -p1
|
|
||||||
%patch31 -p1
|
|
||||||
%patch32 -p1
|
|
||||||
|
|
||||||
# drop Autoconf version requirement
|
# drop Autoconf version requirement
|
||||||
sed -i 's/^version_required/dnl version_required/' configure.ac
|
sed -i 's/^version_required/dnl version_required/' configure.ac
|
||||||
|
@@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jun 20 13:46:22 UTC 2014 - jmatejek@suse.com
|
||||||
|
|
||||||
|
- update to 2.7.7
|
||||||
|
* bugfix-only release, over a hundred bugs fixed
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Mar 14 20:26:03 UTC 2014 - andreas.stieger@gmx.de
|
Fri Mar 14 20:26:03 UTC 2014 - andreas.stieger@gmx.de
|
||||||
|
|
||||||
|
BIN
python.keyring
Normal file
BIN
python.keyring
Normal file
Binary file not shown.
14
python.spec
14
python.spec
@@ -16,7 +16,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
Name: python
|
Name: python
|
||||||
Version: 2.7.6
|
Version: 2.7.7
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Python Interpreter
|
Summary: Python Interpreter
|
||||||
License: Python-2.0
|
License: Python-2.0
|
||||||
@@ -53,21 +53,14 @@ Patch18: python-2.7.3-ssl_ca_path.patch
|
|||||||
Patch20: python-bundle-lang.patch
|
Patch20: python-bundle-lang.patch
|
||||||
# PATCH-FIX-OPENSUSE Properly support aarch64 in _ctypes module
|
# PATCH-FIX-OPENSUSE Properly support aarch64 in _ctypes module
|
||||||
Patch22: python-2.7.4-aarch64.patch
|
Patch22: python-2.7.4-aarch64.patch
|
||||||
Patch23: python-2.7.4-no-REUSEPORT.patch
|
|
||||||
Patch24: python-bsddb6.diff
|
Patch24: python-bsddb6.diff
|
||||||
# PATCH-FIX-OPENSUSE Properly support ppc64le in _ctypes module
|
# PATCH-FIX-OPENSUSE Properly support ppc64le in _ctypes module
|
||||||
Patch25: libffi-ppc64le.diff
|
Patch25: libffi-ppc64le.diff
|
||||||
# CVE-2013-1753 [bnc#856835] unbounded gzip decompression in xmlrpc client
|
# CVE-2013-1753 [bnc#856835] unbounded gzip decompression in xmlrpc client
|
||||||
Patch26: xmlrpc_gzip_27.patch
|
Patch26: xmlrpc_gzip_27.patch
|
||||||
# CVE-2013-1752 patches missing in 2.7.6: imaplib, poplib, smtplib
|
# CVE-2013-1752 patches missing in 2.7.6: imaplib, poplib, smtplib
|
||||||
Patch27: python-2.7.6-imaplib.patch
|
|
||||||
Patch28: smtplib_maxline-2.7.patch
|
Patch28: smtplib_maxline-2.7.patch
|
||||||
Patch29: python-2.7.6-poplib.patch
|
Patch29: python-2.7.6-poplib.patch
|
||||||
# [bnc#857470] add missing import to bdist_rpm command
|
|
||||||
Patch30: python-2.7.6-bdist-rpm.patch
|
|
||||||
# CVE-2014-1912 [bnc#863741] buffer overflow in recvfrom_into
|
|
||||||
Patch31: CVE-2014-1912-recvfrom_into.patch
|
|
||||||
Patch32: python-2.7.6-sqlite-3.8.4-tests.patch
|
|
||||||
# COMMON-PATCH-END
|
# COMMON-PATCH-END
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: db-devel
|
BuildRequires: db-devel
|
||||||
@@ -185,16 +178,11 @@ implementation of the standard Unix DBM databases.
|
|||||||
%patch18 -p1
|
%patch18 -p1
|
||||||
%patch20 -p1
|
%patch20 -p1
|
||||||
%patch22 -p1
|
%patch22 -p1
|
||||||
%patch23 -p1
|
|
||||||
%patch24 -p1
|
%patch24 -p1
|
||||||
%patch25 -p0
|
%patch25 -p0
|
||||||
%patch26 -p1
|
%patch26 -p1
|
||||||
%patch27 -p1
|
|
||||||
%patch28 -p1
|
%patch28 -p1
|
||||||
%patch29 -p1
|
%patch29 -p1
|
||||||
%patch30 -p1
|
|
||||||
%patch31 -p1
|
|
||||||
%patch32 -p1
|
|
||||||
|
|
||||||
# drop Autoconf version requirement
|
# drop Autoconf version requirement
|
||||||
sed -i 's/^version_required/dnl version_required/' configure.ac
|
sed -i 's/^version_required/dnl version_required/' configure.ac
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
diff --git a/Doc/library/xmlrpclib.rst b/Doc/library/xmlrpclib.rst
|
Index: Python-2.7.7/Doc/library/xmlrpclib.rst
|
||||||
--- a/Doc/library/xmlrpclib.rst
|
===================================================================
|
||||||
+++ b/Doc/library/xmlrpclib.rst
|
--- Python-2.7.7.orig/Doc/library/xmlrpclib.rst 2014-05-31 20:58:38.000000000 +0200
|
||||||
@@ -120,6 +120,15 @@
|
+++ Python-2.7.7/Doc/library/xmlrpclib.rst 2014-06-20 14:51:40.282081132 +0200
|
||||||
|
@@ -127,6 +127,15 @@
|
||||||
*__dict__* attribute and don't have a base class that is marshalled in a
|
*__dict__* attribute and don't have a base class that is marshalled in a
|
||||||
special way.
|
special way.
|
||||||
|
|
||||||
@@ -17,74 +18,10 @@ diff --git a/Doc/library/xmlrpclib.rst b/Doc/library/xmlrpclib.rst
|
|||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
|
Index: Python-2.7.7/Lib/xmlrpclib.py
|
||||||
--- a/Lib/test/test_xmlrpc.py
|
===================================================================
|
||||||
+++ b/Lib/test/test_xmlrpc.py
|
--- Python-2.7.7.orig/Lib/xmlrpclib.py 2014-05-31 20:58:39.000000000 +0200
|
||||||
@@ -19,6 +19,11 @@
|
+++ Python-2.7.7/Lib/xmlrpclib.py 2014-06-20 14:51:40.282081132 +0200
|
||||||
threading = None
|
|
||||||
|
|
||||||
try:
|
|
||||||
+ import gzip
|
|
||||||
+except ImportError:
|
|
||||||
+ gzip = None
|
|
||||||
+
|
|
||||||
+try:
|
|
||||||
unicode
|
|
||||||
except NameError:
|
|
||||||
have_unicode = False
|
|
||||||
@@ -731,7 +736,7 @@
|
|
||||||
with cm:
|
|
||||||
p.pow(6, 8)
|
|
||||||
|
|
||||||
- def test_gsip_response(self):
|
|
||||||
+ def test_gzip_response(self):
|
|
||||||
t = self.Transport()
|
|
||||||
p = xmlrpclib.ServerProxy(URL, transport=t)
|
|
||||||
old = self.requestHandler.encode_threshold
|
|
||||||
@@ -744,6 +749,27 @@
|
|
||||||
self.requestHandler.encode_threshold = old
|
|
||||||
self.assertTrue(a>b)
|
|
||||||
|
|
||||||
+ def test_gzip_decode_limit(self):
|
|
||||||
+ data = '\0' * xmlrpclib.MAX_GZIP_DECODE
|
|
||||||
+ encoded = xmlrpclib.gzip_encode(data)
|
|
||||||
+ decoded = xmlrpclib.gzip_decode(encoded)
|
|
||||||
+ self.assertEqual(len(decoded), xmlrpclib.MAX_GZIP_DECODE)
|
|
||||||
+
|
|
||||||
+ data = '\0' * (xmlrpclib.MAX_GZIP_DECODE + 1)
|
|
||||||
+ encoded = xmlrpclib.gzip_encode(data)
|
|
||||||
+
|
|
||||||
+ with self.assertRaisesRegexp(ValueError,
|
|
||||||
+ "max gzipped payload length exceeded"):
|
|
||||||
+ xmlrpclib.gzip_decode(encoded)
|
|
||||||
+
|
|
||||||
+ oldmax = xmlrpclib.MAX_GZIP_DECODE
|
|
||||||
+ try:
|
|
||||||
+ xmlrpclib.MAX_GZIP_DECODE = -1
|
|
||||||
+ xmlrpclib.gzip_decode(encoded)
|
|
||||||
+ finally:
|
|
||||||
+ xmlrpclib.MAX_GZIP_DECODE = oldmax
|
|
||||||
+
|
|
||||||
+
|
|
||||||
#Test special attributes of the ServerProxy object
|
|
||||||
class ServerProxyTestCase(unittest.TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
@@ -1011,11 +1037,8 @@
|
|
||||||
xmlrpc_tests.append(SimpleServerTestCase)
|
|
||||||
xmlrpc_tests.append(KeepaliveServerTestCase1)
|
|
||||||
xmlrpc_tests.append(KeepaliveServerTestCase2)
|
|
||||||
- try:
|
|
||||||
- import gzip
|
|
||||||
+ if gzip is not None:
|
|
||||||
xmlrpc_tests.append(GzipServerTestCase)
|
|
||||||
- except ImportError:
|
|
||||||
- pass #gzip not supported in this build
|
|
||||||
xmlrpc_tests.append(MultiPathServerTestCase)
|
|
||||||
xmlrpc_tests.append(ServerProxyTestCase)
|
|
||||||
xmlrpc_tests.append(FailingServerTestCase)
|
|
||||||
diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
|
|
||||||
--- a/Lib/xmlrpclib.py
|
|
||||||
+++ b/Lib/xmlrpclib.py
|
|
||||||
@@ -49,6 +49,7 @@
|
@@ -49,6 +49,7 @@
|
||||||
# 2003-07-12 gp Correct marshalling of Faults
|
# 2003-07-12 gp Correct marshalling of Faults
|
||||||
# 2003-10-31 mvl Add multicall support
|
# 2003-10-31 mvl Add multicall support
|
||||||
@@ -122,3 +59,56 @@ diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
|
|||||||
return decoded
|
return decoded
|
||||||
|
|
||||||
##
|
##
|
||||||
|
Index: Python-2.7.7/Lib/test/test_xmlrpc.py
|
||||||
|
===================================================================
|
||||||
|
--- Python-2.7.7.orig/Lib/test/test_xmlrpc.py 2014-05-31 20:58:39.000000000 +0200
|
||||||
|
+++ Python-2.7.7/Lib/test/test_xmlrpc.py 2014-06-20 14:51:59.993184645 +0200
|
||||||
|
@@ -24,6 +24,11 @@
|
||||||
|
gzip = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
+ import gzip
|
||||||
|
+except ImportError:
|
||||||
|
+ gzip = None
|
||||||
|
+
|
||||||
|
+try:
|
||||||
|
unicode
|
||||||
|
except NameError:
|
||||||
|
have_unicode = False
|
||||||
|
@@ -737,7 +742,7 @@
|
||||||
|
with cm:
|
||||||
|
p.pow(6, 8)
|
||||||
|
|
||||||
|
- def test_gsip_response(self):
|
||||||
|
+ def test_gzip_response(self):
|
||||||
|
t = self.Transport()
|
||||||
|
p = xmlrpclib.ServerProxy(URL, transport=t)
|
||||||
|
old = self.requestHandler.encode_threshold
|
||||||
|
@@ -750,6 +755,27 @@
|
||||||
|
self.requestHandler.encode_threshold = old
|
||||||
|
self.assertTrue(a>b)
|
||||||
|
|
||||||
|
+ def test_gzip_decode_limit(self):
|
||||||
|
+ data = '\0' * xmlrpclib.MAX_GZIP_DECODE
|
||||||
|
+ encoded = xmlrpclib.gzip_encode(data)
|
||||||
|
+ decoded = xmlrpclib.gzip_decode(encoded)
|
||||||
|
+ self.assertEqual(len(decoded), xmlrpclib.MAX_GZIP_DECODE)
|
||||||
|
+
|
||||||
|
+ data = '\0' * (xmlrpclib.MAX_GZIP_DECODE + 1)
|
||||||
|
+ encoded = xmlrpclib.gzip_encode(data)
|
||||||
|
+
|
||||||
|
+ with self.assertRaisesRegexp(ValueError,
|
||||||
|
+ "max gzipped payload length exceeded"):
|
||||||
|
+ xmlrpclib.gzip_decode(encoded)
|
||||||
|
+
|
||||||
|
+ oldmax = xmlrpclib.MAX_GZIP_DECODE
|
||||||
|
+ try:
|
||||||
|
+ xmlrpclib.MAX_GZIP_DECODE = -1
|
||||||
|
+ xmlrpclib.gzip_decode(encoded)
|
||||||
|
+ finally:
|
||||||
|
+ xmlrpclib.MAX_GZIP_DECODE = oldmax
|
||||||
|
+
|
||||||
|
+
|
||||||
|
#Test special attributes of the ServerProxy object
|
||||||
|
class ServerProxyTestCase(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
Reference in New Issue
Block a user