diff --git a/0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch b/0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch deleted file mode 100644 index d4c69f3..0000000 --- a/0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 05b7d9c6675b71d17f5fcf379b3888fba431f14e Mon Sep 17 00:00:00 2001 -From: Christian Heimes -Date: Tue, 15 Aug 2017 10:55:03 +0200 -Subject: [PATCH] [2.7] bpo-30714: ALPN changes for OpenSSL 1.1.0f (#3094) - -OpenSSL 1.1.0 to 1.1.0e aborted the handshake when server and client -could not agree on a protocol using ALPN. OpenSSL 1.1.0f changed that. -The most recent version now behaves like OpenSSL 1.0.2 again. The ALPN -callback can pretend to not been set. - -See https://github.com/openssl/openssl/pull/3158 for more details - -Signed-off-by: Christian Heimes -(cherry picked from commit a5c1bab352671e043645163ca50c5211aa657acd) ---- - Doc/library/ssl.rst | 5 +++-- - Lib/test/test_ssl.py | 5 +++-- - Misc/NEWS.d/next/Tests/2017-07-25-15-27-44.bpo-30715.Sp7bTF.rst | 2 ++ - 3 files changed, 8 insertions(+), 4 deletions(-) - create mode 100644 Misc/NEWS.d/next/Tests/2017-07-25-15-27-44.bpo-30715.Sp7bTF.rst - -Index: Python-2.7.13/Doc/library/ssl.rst -=================================================================== ---- Python-2.7.13.orig/Doc/library/ssl.rst 2016-12-17 21:05:05.000000000 +0100 -+++ Python-2.7.13/Doc/library/ssl.rst 2017-09-14 16:14:26.733996348 +0200 -@@ -1158,8 +1158,9 @@ to speed up repeated connections from th - This method will raise :exc:`NotImplementedError` if :data:`HAS_ALPN` is - False. - -- OpenSSL 1.1.0+ will abort the handshake and raise :exc:`SSLError` when -- both sides support ALPN but cannot agree on a protocol. -+ OpenSSL 1.1.0 to 1.1.0e will abort the handshake and raise :exc:`SSLError` -+ when both sides support ALPN but cannot agree on a protocol. 1.1.0f+ -+ behaves like 1.0.2, :meth:`SSLSocket.selected_alpn_protocol` returns None. - - .. versionadded:: 2.7.10 - -Index: Python-2.7.13/Lib/test/test_ssl.py -=================================================================== ---- Python-2.7.13.orig/Lib/test/test_ssl.py 2016-12-17 21:05:06.000000000 +0100 -+++ Python-2.7.13/Lib/test/test_ssl.py 2017-09-14 16:14:26.733996348 +0200 -@@ -2963,8 +2963,9 @@ else: - except ssl.SSLError as e: - stats = e - -- if expected is None and IS_OPENSSL_1_1: -- # OpenSSL 1.1.0 raises handshake error -+ if (expected is None and IS_OPENSSL_1_1 -+ and ssl.OPENSSL_VERSION_INFO < (1, 1, 0, 6)): -+ # OpenSSL 1.1.0 to 1.1.0e raises handshake error - self.assertIsInstance(stats, ssl.SSLError) - else: - msg = "failed trying %s (s) and %s (c).\n" \ -Index: Python-2.7.13/Misc/NEWS.d/next/Tests/2017-07-25-15-27-44.bpo-30715.Sp7bTF.rst -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ Python-2.7.13/Misc/NEWS.d/next/Tests/2017-07-25-15-27-44.bpo-30715.Sp7bTF.rst 2017-09-14 16:14:26.733996348 +0200 -@@ -0,0 +1,2 @@ -+Address ALPN callback changes for OpenSSL 1.1.0f. The latest version behaves -+like OpenSSL 1.0.2 and no longer aborts handshake. diff --git a/Python-2.7.13.tar.xz b/Python-2.7.13.tar.xz deleted file mode 100644 index 186d7fe..0000000 --- a/Python-2.7.13.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:35d543986882f78261f97787fd3e06274bfa6df29fac9b4a94f73930ff98f731 -size 12495628 diff --git a/Python-2.7.13.tar.xz.asc b/Python-2.7.13.tar.xz.asc deleted file mode 100644 index b0a93d6..0000000 --- a/Python-2.7.13.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIcBAABCAAGBQJYVZxZAAoJEATDZ8IYrdT/YCoP/103Idy0ETFqOE+Vt7vLI2cU -Ct0cyPy5ZBRIjZmcav8R2rKPKC1EjE9BfsJDdPevm2drBu18IjP59fqL47unCQ37 -luoUb4vOCjuSu0NesTsVPW+Bw0Imr2Qs3UJeuIaHP/KFjg/1kjOIxOhzk0AAZa/n -mWBGzOcCJ8jRAhdWH9YHT93QwmKG4zaqxlmF6c7CrbgRVUJeh6kUlCJOiFXCkkNW -Nu2fCOvh1+bMtmMsZsbb6IZeccyJOn4l+EqbzasX1egerbw2spC6ECMkhiZT6RRI -mQQ2fmdYDAwn+CUIrYra2rxMqlAo9rRIp43A8kWyVfOAnUlljHhjyS02zmavrs8I -9zyM1Fofu20q0Fk9ktX9vPZU6fqum2zbYFzBZkt/qYrAEiV9iCfztyws3+65qgYv -dzw4jWM9oALzW2kCPD4GZOO7QpfPXjUec63bara+orO82Ifeq2qT7Zob+bBjd943 -A1skaO7X5Qhcfem1bdS3ZvgNMgwCqggNvXwbhDTY7Fk4zxCemjFI5JTe531wUKGt -Kh1aAFQblAea6CmVC2GhhQ6Lmrnp1S+OyJaUIrT3ALW1sF1Iqy+wLVc6ltKH1fje -57m2z/qmn9X28VF3de7Tg8mvDwgQthJWG/X9TYeLa7cHzJ3od3w+7I7jI3dMigdM -RV2cSjUPE9UD9P1y+CYo -=dR4B ------END PGP SIGNATURE----- diff --git a/Python-2.7.14.tar.xz b/Python-2.7.14.tar.xz new file mode 100644 index 0000000..d8523b7 --- /dev/null +++ b/Python-2.7.14.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71ffb26e09e78650e424929b2b457b9c912ac216576e6bd9e7d204ed03296a66 +size 12576112 diff --git a/Python-2.7.14.tar.xz.asc b/Python-2.7.14.tar.xz.asc new file mode 100644 index 0000000..caea0bb --- /dev/null +++ b/Python-2.7.14.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIcBAABCAAGBQJZvWXWAAoJEATDZ8IYrdT/8IgQAJwkDGd3oUY2WWhlh7kUnOIs +X0hEqSvMM2itL/DpNVTTcCyviqPXPxH4XkCn6E4g9cPiMKYID5KL8V5CK+rSHaZY +ckJ9FKZ5Hv6bF0hEF2gUN0vtd9w2qh7lnvjGLtMcXwfe3cN1qg6X07+a5dZvxYWw +EhPtdEHi2u+2UBlhEjCGb2njZ9SDbNqx0KjcuO0hTxEfzpqWCTzIwNJwQS8RYX1r +LBdqID+xQqLaX19tAkyxa3F8F1bF1esvEWJyyLy1LVvAfL8QYzAObOYOb+dlohUU +/BCCP2J8Nn+O49vF4VSo35xU2ngHajDKL2xMMes5JLd5oVHEWfdATADv3gXNINy9 +9zQowUNwV/bsQFHncHl1i6O1jAZbiSeYw8+ZVo6H2jxWwTAbEgMmx5oldzqB8FiQ +kDGEr0130686GrkOFVYI2Ttj4bIhminwCJk3/w22Pe6sxh5ZbFKj0gnQ1vLhzXPy +EH52KcOi+9kn3w6yYQmOZHkwheY1Gkgl23VifkZVCkz7iZZxlbD2WyuzvDPh9U6o +aVzbnOaBniNeAYcXcb8GGVCz5L4um75BpTtky2eufZhf377HfmCZ9Xo38nuWqN4T +qZj+bto4UtWcbQXVi+dz//v1jVPIOWbhS/TTDI/Ht45m2gktfZegB/m6NwBnvtuC +SgD09Q4KFLCWJKp62vNI +=FnWM +-----END PGP SIGNATURE----- diff --git a/python-2.7.12-makeopcode.patch b/python-2.7.12-makeopcode.patch deleted file mode 100644 index dace14b..0000000 --- a/python-2.7.12-makeopcode.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: Python-2.7.12/Makefile.pre.in -=================================================================== ---- Python-2.7.12.orig/Makefile.pre.in -+++ Python-2.7.12/Makefile.pre.in -@@ -319,7 +319,7 @@ OPCODETARGETS_H= \ - $(srcdir)/Python/opcode_targets.h - - OPCODETARGETGEN= \ -- $(srcdir)/Python/makeopcodetargets.py -+ ./python $(srcdir)/Python/makeopcodetargets.py - - OPCODETARGETGEN_FILES= \ - $(OPCODETARGETGEN) $(srcdir)/Lib/opcode.py diff --git a/python-2.7.13-docs-pdf-a4.tar.bz2 b/python-2.7.13-docs-pdf-a4.tar.bz2 deleted file mode 100644 index 8f619ec..0000000 --- a/python-2.7.13-docs-pdf-a4.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cba0fce8f70444fe87405efcf005a0ea408935cbb859862eda3bd2df1177b0ce -size 10712181 diff --git a/python-2.7.13-docs-pdf-letter.tar.bz2 b/python-2.7.13-docs-pdf-letter.tar.bz2 deleted file mode 100644 index e43bd4f..0000000 --- a/python-2.7.13-docs-pdf-letter.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65832a14df4aa8dc2887e294de4d8abefbc4c9466af12a0b8315acf6faec7d8a -size 10768393 diff --git a/python-2.7.13-overflow_check.patch b/python-2.7.13-overflow_check.patch deleted file mode 100644 index 8a70afb..0000000 --- a/python-2.7.13-overflow_check.patch +++ /dev/null @@ -1,300 +0,0 @@ -Index: Python-2.7.13/Objects/unicodeobject.c -=================================================================== ---- Python-2.7.13.orig/Objects/unicodeobject.c -+++ Python-2.7.13/Objects/unicodeobject.c -@@ -5732,20 +5732,20 @@ PyUnicode_Join(PyObject *separator, PyOb - - /* Make sure we have enough space for the separator and the item. */ - itemlen = PyUnicode_GET_SIZE(item); -- new_res_used = res_used + itemlen; -- if (new_res_used < 0) -+ if (res_used > PY_SSIZE_T_MAX - itemlen) - goto Overflow; -+ new_res_used = res_used + itemlen; - if (i < seqlen - 1) { -- new_res_used += seplen; -- if (new_res_used < 0) -+ if (new_res_used > PY_SSIZE_T_MAX - seplen) - goto Overflow; -+ new_res_used += seplen; - } - if (new_res_used > res_alloc) { - /* double allocated size until it's big enough */ - do { -- res_alloc += res_alloc; -- if (res_alloc <= 0) -+ if (res_alloc >= PY_SSIZE_T_MAX - res_alloc) - goto Overflow; -+ res_alloc += res_alloc; - } while (new_res_used > res_alloc); - if (_PyUnicode_Resize(&res, res_alloc) < 0) { - Py_DECREF(item); -@@ -5943,7 +5943,7 @@ PyObject *replace(PyUnicodeObject *self, - } else { - - Py_ssize_t n, i, j; -- Py_ssize_t product, new_size, delta; -+ Py_ssize_t new_size, delta; - Py_UNICODE *p; - - /* replace strings */ -@@ -5956,18 +5956,12 @@ PyObject *replace(PyUnicodeObject *self, - if (delta == 0) { - new_size = self->length; - } else { -- product = n * (str2->length - str1->length); -- if ((product / (str2->length - str1->length)) != n) { -- PyErr_SetString(PyExc_OverflowError, -- "replace string is too long"); -- return NULL; -- } -- new_size = self->length + product; -- if (new_size < 0) { -+ if (str2->length - str1->length > (PY_SSIZE_T_MAX - self->length) / n) { - PyErr_SetString(PyExc_OverflowError, - "replace string is too long"); - return NULL; - } -+ new_size = self->length + n * (str2->length - str1->length); - } - u = _PyUnicode_New(new_size); - if (!u) -Index: Python-2.7.13/Objects/tupleobject.c -=================================================================== ---- Python-2.7.13.orig/Objects/tupleobject.c -+++ Python-2.7.13/Objects/tupleobject.c -@@ -446,9 +446,9 @@ tupleconcat(register PyTupleObject *a, r - return NULL; - } - #define b ((PyTupleObject *)bb) -- size = Py_SIZE(a) + Py_SIZE(b); -- if (size < 0) -+ if (Py_SIZE(a) > PY_SSIZE_T_MAX - Py_SIZE(b)) - return PyErr_NoMemory(); -+ size = Py_SIZE(a) + Py_SIZE(b); - np = (PyTupleObject *) PyTuple_New(size); - if (np == NULL) { - return NULL; -@@ -490,9 +490,9 @@ tuplerepeat(PyTupleObject *a, Py_ssize_t - if (Py_SIZE(a) == 0) - return PyTuple_New(0); - } -- size = Py_SIZE(a) * n; -- if (size/Py_SIZE(a) != n) -+ if (n > PY_SSIZE_T_MAX / Py_SIZE(a)) - return PyErr_NoMemory(); -+ size = Py_SIZE(a) * n; - np = (PyTupleObject *) PyTuple_New(size); - if (np == NULL) - return NULL; -diff -r 5ea0fef6ec53 Objects/bytearrayobject.c ---- a/Objects/bytearrayobject.c Wed Dec 28 15:41:09 2016 -0800 -+++ b/Objects/bytearrayobject.c Thu Jan 05 14:05:29 2017 +0800 -@@ -1571,31 +1571,30 @@ - { - char *self_s, *result_s; - Py_ssize_t self_len, result_len; -- Py_ssize_t count, i, product; -+ Py_ssize_t count, i; - PyByteArrayObject *result; - - self_len = PyByteArray_GET_SIZE(self); - -- /* 1 at the end plus 1 after every character */ -- count = self_len+1; -- if (maxcount < count) -+ /* 1 at the end plus 1 after every character; -+ count = min(maxcount, self_len + 1) */ -+ if (maxcount <= self_len) { - count = maxcount; -+ } -+ else { -+ /* Can't overflow: self_len + 1 <= maxcount <= PY_SSIZE_T_MAX. */ -+ count = self_len + 1; -+ } - - /* Check for overflow */ - /* result_len = count * to_len + self_len; */ -- product = count * to_len; -- if (product / to_len != count) { -+ assert(count > 0); -+ if (to_len > (PY_SSIZE_T_MAX - self_len) / count) { - PyErr_SetString(PyExc_OverflowError, -- "replace string is too long"); -+ "replace bytes is too long"); - return NULL; - } -- result_len = product + self_len; -- if (result_len < 0) { -- PyErr_SetString(PyExc_OverflowError, -- "replace string is too long"); -- return NULL; -- } -- -+ result_len = count * to_len + self_len; - if (! (result = (PyByteArrayObject *) - PyByteArray_FromStringAndSize(NULL, result_len)) ) - return NULL; -@@ -1824,7 +1823,7 @@ - char *self_s, *result_s; - char *start, *next, *end; - Py_ssize_t self_len, result_len; -- Py_ssize_t count, product; -+ Py_ssize_t count; - PyByteArrayObject *result; - - self_s = PyByteArray_AS_STRING(self); -@@ -1838,16 +1837,12 @@ - - /* use the difference between current and new, hence the "-1" */ - /* result_len = self_len + count * (to_len-1) */ -- product = count * (to_len-1); -- if (product / (to_len-1) != count) { -+ assert(count > 0); -+ if (to_len - 1 > (PY_SSIZE_T_MAX - self_len) / count) { - PyErr_SetString(PyExc_OverflowError, "replace bytes is too long"); - return NULL; - } -- result_len = self_len + product; -- if (result_len < 0) { -- PyErr_SetString(PyExc_OverflowError, "replace bytes is too long"); -- return NULL; -- } -+ result_len = self_len + count * (to_len - 1); - - if ( (result = (PyByteArrayObject *) - PyByteArray_FromStringAndSize(NULL, result_len)) == NULL) -@@ -1891,7 +1886,7 @@ - char *self_s, *result_s; - char *start, *next, *end; - Py_ssize_t self_len, result_len; -- Py_ssize_t count, offset, product; -+ Py_ssize_t count, offset; - PyByteArrayObject *result; - - self_s = PyByteArray_AS_STRING(self); -@@ -1908,16 +1903,12 @@ - - /* Check for overflow */ - /* result_len = self_len + count * (to_len-from_len) */ -- product = count * (to_len-from_len); -- if (product / (to_len-from_len) != count) { -+ assert(count > 0); -+ if (to_len - from_len > (PY_SSIZE_T_MAX - self_len) / count) { - PyErr_SetString(PyExc_OverflowError, "replace bytes is too long"); - return NULL; - } -- result_len = self_len + product; -- if (result_len < 0) { -- PyErr_SetString(PyExc_OverflowError, "replace bytes is too long"); -- return NULL; -- } -+ result_len = self_len + count * (to_len - from_len); - - if ( (result = (PyByteArrayObject *) - PyByteArray_FromStringAndSize(NULL, result_len)) == NULL) -diff -r 5ea0fef6ec53 Objects/stringobject.c ---- a/Objects/stringobject.c Wed Dec 28 15:41:09 2016 -0800 -+++ b/Objects/stringobject.c Thu Jan 05 14:05:29 2017 +0800 -@@ -2358,31 +2358,30 @@ - { - char *self_s, *result_s; - Py_ssize_t self_len, result_len; -- Py_ssize_t count, i, product; -+ Py_ssize_t count, i; - PyStringObject *result; - - self_len = PyString_GET_SIZE(self); - -- /* 1 at the end plus 1 after every character */ -- count = self_len+1; -- if (maxcount < count) -+ /* 1 at the end plus 1 after every character; -+ count = min(maxcount, self_len + 1) */ -+ if (maxcount <= self_len) { - count = maxcount; -+ } -+ else { -+ /* Can't overflow: self_len + 1 <= maxcount <= PY_SSIZE_T_MAX. */ -+ count = self_len + 1; -+ } - - /* Check for overflow */ - /* result_len = count * to_len + self_len; */ -- product = count * to_len; -- if (product / to_len != count) { -+ assert(count > 0); -+ if (to_len > (PY_SSIZE_T_MAX - self_len) / count) { - PyErr_SetString(PyExc_OverflowError, - "replace string is too long"); - return NULL; - } -- result_len = product + self_len; -- if (result_len < 0) { -- PyErr_SetString(PyExc_OverflowError, -- "replace string is too long"); -- return NULL; -- } -- -+ result_len = count * to_len + self_len; - if (! (result = (PyStringObject *) - PyString_FromStringAndSize(NULL, result_len)) ) - return NULL; -@@ -2610,7 +2609,7 @@ - char *self_s, *result_s; - char *start, *next, *end; - Py_ssize_t self_len, result_len; -- Py_ssize_t count, product; -+ Py_ssize_t count; - PyStringObject *result; - - self_s = PyString_AS_STRING(self); -@@ -2624,16 +2623,12 @@ - - /* use the difference between current and new, hence the "-1" */ - /* result_len = self_len + count * (to_len-1) */ -- product = count * (to_len-1); -- if (product / (to_len-1) != count) { -+ assert(count > 0); -+ if (to_len - 1 > (PY_SSIZE_T_MAX - self_len) / count) { - PyErr_SetString(PyExc_OverflowError, "replace string is too long"); - return NULL; - } -- result_len = self_len + product; -- if (result_len < 0) { -- PyErr_SetString(PyExc_OverflowError, "replace string is too long"); -- return NULL; -- } -+ result_len = self_len + count * (to_len - 1); - - if ( (result = (PyStringObject *) - PyString_FromStringAndSize(NULL, result_len)) == NULL) -@@ -2676,7 +2671,7 @@ - char *self_s, *result_s; - char *start, *next, *end; - Py_ssize_t self_len, result_len; -- Py_ssize_t count, offset, product; -+ Py_ssize_t count, offset; - PyStringObject *result; - - self_s = PyString_AS_STRING(self); -@@ -2693,16 +2688,12 @@ - - /* Check for overflow */ - /* result_len = self_len + count * (to_len-from_len) */ -- product = count * (to_len-from_len); -- if (product / (to_len-from_len) != count) { -+ assert(count > 0); -+ if (to_len - from_len > (PY_SSIZE_T_MAX - self_len) / count) { - PyErr_SetString(PyExc_OverflowError, "replace string is too long"); - return NULL; - } -- result_len = self_len + product; -- if (result_len < 0) { -- PyErr_SetString(PyExc_OverflowError, "replace string is too long"); -- return NULL; -- } -+ result_len = self_len + count * (to_len - from_len); - - if ( (result = (PyStringObject *) - PyString_FromStringAndSize(NULL, result_len)) == NULL) diff --git a/python-2.7.14-docs-html.tar.bz2 b/python-2.7.14-docs-html.tar.bz2 new file mode 100644 index 0000000..5e10bb9 --- /dev/null +++ b/python-2.7.14-docs-html.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54d97a289ad24f419f195440945056db1f1ba1c3d12e5824cf25837c2ccbfa59 +size 6874237 diff --git a/python-2.7.14-docs-pdf-a4.tar.bz2 b/python-2.7.14-docs-pdf-a4.tar.bz2 new file mode 100644 index 0000000..296feb6 --- /dev/null +++ b/python-2.7.14-docs-pdf-a4.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce4db77abd28c7067cc2de1aecea6d8939b735dd8451f310f4f4cf163fb78fa6 +size 9343063 diff --git a/python-2.7.14-docs-pdf-letter.tar.bz2 b/python-2.7.14-docs-pdf-letter.tar.bz2 new file mode 100644 index 0000000..125067c --- /dev/null +++ b/python-2.7.14-docs-pdf-letter.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb93a147705b771c91798aa512fa836e3ae38736b4df4fa10eb518e96fec8060 +size 9343109 diff --git a/python-2.7.2-fix_date_time_compiler.patch b/python-2.7.2-fix_date_time_compiler.patch index 1abded0..b514a83 100644 --- a/python-2.7.2-fix_date_time_compiler.patch +++ b/python-2.7.2-fix_date_time_compiler.patch @@ -1,9 +1,11 @@ ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -573,8 +573,15 @@ - -DHGVERSION="\"`LC_ALL=C $(HGVERSION)`\"" \ - -DHGTAG="\"`LC_ALL=C $(HGTAG)`\"" \ - -DHGBRANCH="\"`LC_ALL=C $(HGBRANCH)`\"" \ +Index: Python-2.7.14/Makefile.pre.in +=================================================================== +--- Python-2.7.14.orig/Makefile.pre.in ++++ Python-2.7.14/Makefile.pre.in +@@ -638,8 +638,15 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \ + -DGITVERSION="\"`LC_ALL=C $(GITVERSION)`\"" \ + -DGITTAG="\"`LC_ALL=C $(GITTAG)`\"" \ + -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \ + -DDATE="\"`LC_ALL=C date -u -r Makefile.pre.in +"%b %d %Y"`\"" \ + -DTIME="\"`LC_ALL=C date -u -r Makefile.pre.in +"%T"`\"" \ -o $@ $(srcdir)/Modules/getbuildinfo.c diff --git a/python-2.7.5-multilib.patch b/python-2.7.5-multilib.patch index a90898a..66d514a 100644 --- a/python-2.7.5-multilib.patch +++ b/python-2.7.5-multilib.patch @@ -1,8 +1,8 @@ -Index: Python-2.7.13/configure.ac +Index: Python-2.7.14/configure.ac =================================================================== ---- Python-2.7.13.orig/configure.ac -+++ Python-2.7.13/configure.ac -@@ -759,6 +759,41 @@ SunOS*) +--- Python-2.7.14.orig/configure.ac ++++ Python-2.7.14/configure.ac +@@ -758,6 +758,41 @@ SunOS*) ;; esac @@ -44,10 +44,10 @@ Index: Python-2.7.13/configure.ac AC_SUBST(LIBRARY) AC_MSG_CHECKING(LIBRARY) -Index: Python-2.7.13/Include/pythonrun.h +Index: Python-2.7.14/Include/pythonrun.h =================================================================== ---- Python-2.7.13.orig/Include/pythonrun.h -+++ Python-2.7.13/Include/pythonrun.h +--- Python-2.7.14.orig/Include/pythonrun.h ++++ Python-2.7.14/Include/pythonrun.h @@ -108,6 +108,8 @@ PyAPI_FUNC(char *) Py_GetPath(void); /* In their own files */ PyAPI_FUNC(const char *) Py_GetVersion(void); @@ -57,10 +57,10 @@ Index: Python-2.7.13/Include/pythonrun.h PyAPI_FUNC(const char *) Py_GetCopyright(void); PyAPI_FUNC(const char *) Py_GetCompiler(void); PyAPI_FUNC(const char *) Py_GetBuildInfo(void); -Index: Python-2.7.13/Lib/distutils/command/install.py +Index: Python-2.7.14/Lib/distutils/command/install.py =================================================================== ---- Python-2.7.13.orig/Lib/distutils/command/install.py -+++ Python-2.7.13/Lib/distutils/command/install.py +--- Python-2.7.14.orig/Lib/distutils/command/install.py ++++ Python-2.7.14/Lib/distutils/command/install.py @@ -22,6 +22,8 @@ from site import USER_BASE from site import USER_SITE @@ -79,10 +79,10 @@ Index: Python-2.7.13/Lib/distutils/command/install.py 'headers': '$base/include/python$py_version_short/$dist_name', 'scripts': '$base/bin', 'data' : '$base', -Index: Python-2.7.13/Lib/distutils/sysconfig.py +Index: Python-2.7.14/Lib/distutils/sysconfig.py =================================================================== ---- Python-2.7.13.orig/Lib/distutils/sysconfig.py -+++ Python-2.7.13/Lib/distutils/sysconfig.py +--- Python-2.7.14.orig/Lib/distutils/sysconfig.py ++++ Python-2.7.14/Lib/distutils/sysconfig.py @@ -119,8 +119,11 @@ def get_python_lib(plat_specific=0, stan prefix = plat_specific and EXEC_PREFIX or PREFIX @@ -97,10 +97,10 @@ Index: Python-2.7.13/Lib/distutils/sysconfig.py if standard_lib: return libpython else: -Index: Python-2.7.13/Lib/pydoc.py +Index: Python-2.7.14/Lib/pydoc.py =================================================================== ---- Python-2.7.13.orig/Lib/pydoc.py -+++ Python-2.7.13/Lib/pydoc.py +--- Python-2.7.14.orig/Lib/pydoc.py ++++ Python-2.7.14/Lib/pydoc.py @@ -375,7 +375,7 @@ class Doc: docmodule = docclass = docroutine = docother = docproperty = docdata = fail @@ -110,10 +110,10 @@ Index: Python-2.7.13/Lib/pydoc.py "python"+sys.version[0:3])): """Return the location of module docs or None""" -Index: Python-2.7.13/Lib/site.py +Index: Python-2.7.14/Lib/site.py =================================================================== ---- Python-2.7.13.orig/Lib/site.py -+++ Python-2.7.13/Lib/site.py +--- Python-2.7.14.orig/Lib/site.py ++++ Python-2.7.14/Lib/site.py @@ -231,29 +231,38 @@ def getuserbase(): USER_BASE = get_config_var('userbase') return USER_BASE @@ -197,10 +197,10 @@ Index: Python-2.7.13/Lib/site.py return sitepackages def addsitepackages(known_paths): -Index: Python-2.7.13/Lib/sysconfig.py +Index: Python-2.7.14/Lib/sysconfig.py =================================================================== ---- Python-2.7.13.orig/Lib/sysconfig.py -+++ Python-2.7.13/Lib/sysconfig.py +--- Python-2.7.14.orig/Lib/sysconfig.py ++++ Python-2.7.14/Lib/sysconfig.py @@ -7,10 +7,10 @@ from os.path import pardir, realpath _INSTALL_SCHEMES = { @@ -229,10 +229,10 @@ Index: Python-2.7.13/Lib/sysconfig.py 'include': '{userbase}/include/python{py_version_short}', 'scripts': '{userbase}/bin', 'data' : '{userbase}', -Index: Python-2.7.13/Lib/test/test_dl.py +Index: Python-2.7.14/Lib/test/test_dl.py =================================================================== ---- Python-2.7.13.orig/Lib/test/test_dl.py -+++ Python-2.7.13/Lib/test/test_dl.py +--- Python-2.7.14.orig/Lib/test/test_dl.py ++++ Python-2.7.14/Lib/test/test_dl.py @@ -4,10 +4,11 @@ import unittest from test.test_support import verbose, import_module @@ -247,11 +247,11 @@ Index: Python-2.7.13/Lib/test/test_dl.py ('/usr/bin/cygwin1.dll', 'getpid'), ('/usr/lib/libc.dylib', 'getpid'), ] -Index: Python-2.7.13/Lib/test/test_site.py +Index: Python-2.7.14/Lib/test/test_site.py =================================================================== ---- Python-2.7.13.orig/Lib/test/test_site.py -+++ Python-2.7.13/Lib/test/test_site.py -@@ -235,12 +235,16 @@ class HelperFunctionsTests(unittest.Test +--- Python-2.7.14.orig/Lib/test/test_site.py ++++ Python-2.7.14/Lib/test/test_site.py +@@ -252,12 +252,16 @@ class HelperFunctionsTests(unittest.Test self.assertEqual(dirs[0], wanted) elif os.sep == '/': # OS X, Linux, FreeBSD, etc @@ -271,10 +271,10 @@ Index: Python-2.7.13/Lib/test/test_site.py else: # other platforms self.assertEqual(len(dirs), 2) -Index: Python-2.7.13/Lib/trace.py +Index: Python-2.7.14/Lib/trace.py =================================================================== ---- Python-2.7.13.orig/Lib/trace.py -+++ Python-2.7.13/Lib/trace.py +--- Python-2.7.14.orig/Lib/trace.py ++++ Python-2.7.14/Lib/trace.py @@ -754,10 +754,10 @@ def main(argv=None): # should I also call expanduser? (after all, could use $HOME) @@ -288,11 +288,11 @@ Index: Python-2.7.13/Lib/trace.py "python" + sys.version[:3])) s = os.path.normpath(s) ignore_dirs.append(s) -Index: Python-2.7.13/Makefile.pre.in +Index: Python-2.7.14/Makefile.pre.in =================================================================== ---- Python-2.7.13.orig/Makefile.pre.in -+++ Python-2.7.13/Makefile.pre.in -@@ -92,6 +92,8 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG +--- Python-2.7.14.orig/Makefile.pre.in ++++ Python-2.7.14/Makefile.pre.in +@@ -91,6 +91,8 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG # Machine-dependent subdirectories MACHDEP= @MACHDEP@ @@ -301,7 +301,7 @@ Index: Python-2.7.13/Makefile.pre.in # Multiarch directory (may be empty) MULTIARCH= @MULTIARCH@ -@@ -668,6 +670,7 @@ Modules/getpath.o: $(srcdir)/Modules/get +@@ -644,6 +646,7 @@ Modules/getpath.o: $(srcdir)/Modules/get -DEXEC_PREFIX='"$(exec_prefix)"' \ -DVERSION='"$(VERSION)"' \ -DVPATH='"$(VPATH)"' \ @@ -309,8 +309,8 @@ Index: Python-2.7.13/Makefile.pre.in -o $@ $(srcdir)/Modules/getpath.c Modules/python.o: $(srcdir)/Modules/python.c -@@ -708,7 +711,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES) - Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H) +@@ -692,7 +695,7 @@ regen-ast: + Python/compile.o Python/symtable.o Python/ast.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h Python/getplatform.o: $(srcdir)/Python/getplatform.c - $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c @@ -318,10 +318,10 @@ Index: Python-2.7.13/Makefile.pre.in Python/importdl.o: $(srcdir)/Python/importdl.c $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c -Index: Python-2.7.13/Modules/getpath.c +Index: Python-2.7.14/Modules/getpath.c =================================================================== ---- Python-2.7.13.orig/Modules/getpath.c -+++ Python-2.7.13/Modules/getpath.c +--- Python-2.7.14.orig/Modules/getpath.c ++++ Python-2.7.14/Modules/getpath.c @@ -100,6 +100,8 @@ #error "PREFIX, EXEC_PREFIX, VERSION, and VPATH must be constant defined" #endif @@ -340,10 +340,10 @@ Index: Python-2.7.13/Modules/getpath.c static void reduce(char *dir) -Index: Python-2.7.13/Python/getplatform.c +Index: Python-2.7.14/Python/getplatform.c =================================================================== ---- Python-2.7.13.orig/Python/getplatform.c -+++ Python-2.7.13/Python/getplatform.c +--- Python-2.7.14.orig/Python/getplatform.c ++++ Python-2.7.14/Python/getplatform.c @@ -10,3 +10,23 @@ Py_GetPlatform(void) { return PLATFORM; @@ -368,10 +368,10 @@ Index: Python-2.7.13/Python/getplatform.c +{ + return LIB; +} -Index: Python-2.7.13/Python/sysmodule.c +Index: Python-2.7.14/Python/sysmodule.c =================================================================== ---- Python-2.7.13.orig/Python/sysmodule.c -+++ Python-2.7.13/Python/sysmodule.c +--- Python-2.7.14.orig/Python/sysmodule.c ++++ Python-2.7.14/Python/sysmodule.c @@ -1437,6 +1437,10 @@ _PySys_Init(void) PyString_FromString(Py_GetCopyright())); SET_SYS_FROM_STRING("platform", @@ -383,10 +383,10 @@ Index: Python-2.7.13/Python/sysmodule.c SET_SYS_FROM_STRING("executable", PyString_FromString(Py_GetProgramFullPath())); SET_SYS_FROM_STRING("prefix", -Index: Python-2.7.13/setup.py +Index: Python-2.7.14/setup.py =================================================================== ---- Python-2.7.13.orig/setup.py -+++ Python-2.7.13/setup.py +--- Python-2.7.14.orig/setup.py ++++ Python-2.7.14/setup.py @@ -456,7 +456,7 @@ class PyBuildExt(build_ext): def detect_modules(self): # Ensure that /usr/local is always used @@ -410,7 +410,7 @@ Index: Python-2.7.13/setup.py extra_link_args=readline_extra_link_args, libraries=readline_libs) ) else: -@@ -1938,18 +1938,17 @@ class PyBuildExt(build_ext): +@@ -1941,18 +1941,17 @@ class PyBuildExt(build_ext): # Check for various platform-specific directories if host_platform == 'sunos5': include_dirs.append('/usr/openwin/include') diff --git a/python-base.changes b/python-base.changes index 9ff967c..247b0e0 100644 --- a/python-base.changes +++ b/python-base.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Nov 20 16:11:48 UTC 2017 - jmatejek@suse.com + +- update to 2.7.14 + * dozens of bugfixes, see NEWS for details + * fixed possible integer overflow in PyString_DecodeEscape (CVE-2017-1000158, bsc#1068664) + * fixed segfaults with dict mutated during search + * fixed possible free-after-use problems with buffer objects with custom indexing + * fixed urllib.splithost to correctly parse fragments (bpo-30500) +- drop upstreamed python-2.7.13-overflow_check.patch +- drop unneeded python-2.7.12-makeopcode.patch +- drop upstreamed 0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch + ------------------------------------------------------------------- Thu Nov 2 16:53:42 UTC 2017 - mpluskal@suse.com diff --git a/python-base.spec b/python-base.spec index 821b178..9aa719e 100644 --- a/python-base.spec +++ b/python-base.spec @@ -17,7 +17,7 @@ Name: python-base -Version: 2.7.13 +Version: 2.7.14 Release: 0 Summary: Python Interpreter base package License: Python-2.0 @@ -54,11 +54,8 @@ Patch33: python-2.7.9-ssl_ca_path.patch Patch34: python-2.7.9-sles-disable-verification-by-default.patch # PATCH-FIX-UPSTREAM python-ncurses-6.0-accessors.patch dimstar@opensuse.org -- Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1 Patch35: python-ncurses-6.0-accessors.patch -Patch36: python-2.7.13-overflow_check.patch -Patch37: python-2.7.12-makeopcode.patch # PATCH-FIX-UPSTREAM bmwiedemann@suse.de -- allow python packages to build reproducibly Patch38: reproducible.patch -Patch39: 0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch # COMMON-PATCH-END %define python_version %(echo %{tarversion} | head -c 3) BuildRequires: automake @@ -161,10 +158,7 @@ other applications. %patch34 -p1 %endif %patch35 -p1 -%patch36 -p1 -%patch37 -p1 %patch38 -p1 -%patch39 -p1 # drop Autoconf version requirement sed -i 's/^version_required/dnl version_required/' configure.ac diff --git a/python-bsddb6.diff b/python-bsddb6.diff index 383c333..973aa56 100644 --- a/python-bsddb6.diff +++ b/python-bsddb6.diff @@ -16,10 +16,10 @@ This patch was partially autogenerated: setup.py | 6 +- 6 files changed, 120 insertions(+), 41 deletions(-) -Index: Python-2.7.5/Lib/bsddb/test/test_all.py +Index: Python-2.7.14/Lib/bsddb/test/test_all.py =================================================================== ---- Python-2.7.5.orig/Lib/bsddb/test/test_all.py -+++ Python-2.7.5/Lib/bsddb/test/test_all.py +--- Python-2.7.14.orig/Lib/bsddb/test/test_all.py ++++ Python-2.7.14/Lib/bsddb/test/test_all.py @@ -74,8 +74,9 @@ if sys.version_info[0] >= 3 : key = key.decode(charset) return (key, value.decode(charset)) @@ -43,7 +43,7 @@ Index: Python-2.7.5/Lib/bsddb/test/test_all.py return self._fix(v) def pget(self, key=None, data=None, flags=0) : -@@ -492,7 +493,11 @@ def print_versions(): +@@ -489,7 +490,11 @@ def print_versions(): print 'py module: %s' % getattr(bsddb, "__file"+suffix) print 'extension module: %s' % getattr(bsddb, "__file"+suffix) @@ -56,10 +56,10 @@ Index: Python-2.7.5/Lib/bsddb/test/test_all.py print 'My pid: %s' % os.getpid() print '-=' * 38 -Index: Python-2.7.5/Lib/bsddb/test/test_misc.py +Index: Python-2.7.14/Lib/bsddb/test/test_misc.py =================================================================== ---- Python-2.7.5.orig/Lib/bsddb/test/test_misc.py -+++ Python-2.7.5/Lib/bsddb/test/test_misc.py +--- Python-2.7.14.orig/Lib/bsddb/test/test_misc.py ++++ Python-2.7.14/Lib/bsddb/test/test_misc.py @@ -46,8 +46,9 @@ class MiscTestCase(unittest.TestCase): d[repr(i)] = repr(100*i) db.close() @@ -72,10 +72,10 @@ Index: Python-2.7.5/Lib/bsddb/test/test_misc.py db.close() # http://sourceforge.net/tracker/index.php?func=detail&aid=1708868&group_id=13900&atid=313900 -Index: Python-2.7.5/Lib/bsddb/test/test_replication.py +Index: Python-2.7.14/Lib/bsddb/test/test_replication.py =================================================================== ---- Python-2.7.5.orig/Lib/bsddb/test/test_replication.py -+++ Python-2.7.5/Lib/bsddb/test/test_replication.py +--- Python-2.7.14.orig/Lib/bsddb/test/test_replication.py ++++ Python-2.7.14/Lib/bsddb/test/test_replication.py @@ -165,21 +165,10 @@ class DBReplicationManager(DBReplication # is not generated if the master has no new transactions. # This is solved in BDB 4.6 (#15542). @@ -100,7 +100,7 @@ Index: Python-2.7.5/Lib/bsddb/test/test_replication.py d = self.dbenvMaster.repmgr_site_list() self.assertEqual(len(d), 1) -@@ -239,14 +228,6 @@ class DBReplicationManager(DBReplication +@@ -237,14 +226,6 @@ class DBReplicationManager(DBReplication txn.commit() if v is None : time.sleep(0.02) @@ -112,10 +112,10 @@ Index: Python-2.7.5/Lib/bsddb/test/test_replication.py - if time.time()>=timeout and startup_timeout: - self.skipTest("replication test skipped due to random failure, " - "see issue 3892") - self.assertTrue(time.time()btCompareCallback == NULL) { MYDB_BEGIN_BLOCK_THREADS; PyErr_SetString(PyExc_TypeError, -@@ -2776,13 +2800,21 @@ DB_set_bt_compare(DBObject* self, PyObje +@@ -2769,13 +2793,21 @@ DB_set_bt_compare(DBObject* self, PyObje static int _db_dupCompareCallback(DB* db, const DBT *leftKey, @@ -208,7 +208,7 @@ Index: Python-2.7.5/Modules/_bsddb.c if (self == NULL || self->dupCompareCallback == NULL) { MYDB_BEGIN_BLOCK_THREADS; PyErr_SetString(PyExc_TypeError, -@@ -3559,13 +3591,14 @@ Py_ssize_t DB_length(PyObject* _self) +@@ -3554,13 +3586,14 @@ Py_ssize_t DB_length(PyObject* _self) err = self->db->stat(self->db, /*txnid*/ NULL, &sp, 0); MYDB_END_ALLOW_THREADS; @@ -226,7 +226,7 @@ Index: Python-2.7.5/Modules/_bsddb.c free(sp); return size; } -@@ -8406,12 +8439,22 @@ static PyObject* +@@ -8398,12 +8431,22 @@ static PyObject* DBSequence_get(DBSequenceObject* self, PyObject* args, PyObject* kwargs) { int err, flags = 0; @@ -250,7 +250,7 @@ Index: Python-2.7.5/Modules/_bsddb.c return NULL; CHECK_SEQUENCE_NOT_CLOSED(self) -@@ -8541,8 +8584,19 @@ DBSequence_remove(DBSequenceObject* self +@@ -8533,8 +8576,19 @@ DBSequence_remove(DBSequenceObject* self static PyObject* DBSequence_set_cachesize(DBSequenceObject* self, PyObject* args) { @@ -272,7 +272,7 @@ Index: Python-2.7.5/Modules/_bsddb.c return NULL; CHECK_SEQUENCE_NOT_CLOSED(self) -@@ -8557,7 +8611,11 @@ DBSequence_set_cachesize(DBSequenceObjec +@@ -8549,7 +8603,11 @@ DBSequence_set_cachesize(DBSequenceObjec static PyObject* DBSequence_get_cachesize(DBSequenceObject* self) { @@ -285,7 +285,7 @@ Index: Python-2.7.5/Modules/_bsddb.c CHECK_SEQUENCE_NOT_CLOSED(self) -@@ -8686,6 +8744,9 @@ DBSequence_stat(DBSequenceObject* self, +@@ -8678,6 +8736,9 @@ DBSequence_stat(DBSequenceObject* self, #define MAKE_INT_ENTRY(name) _addIntToDict(dict_stat, #name, sp->st_##name) @@ -295,7 +295,7 @@ Index: Python-2.7.5/Modules/_bsddb.c #define MAKE_LONG_LONG_ENTRY(name) _addDb_seq_tToDict(dict_stat, #name, sp->st_##name) MAKE_INT_ENTRY(wait); -@@ -8695,10 +8756,15 @@ DBSequence_stat(DBSequenceObject* self, +@@ -8687,10 +8748,15 @@ DBSequence_stat(DBSequenceObject* self, MAKE_LONG_LONG_ENTRY(last_value); MAKE_LONG_LONG_ENTRY(min); MAKE_LONG_LONG_ENTRY(max); @@ -311,7 +311,7 @@ Index: Python-2.7.5/Modules/_bsddb.c #undef MAKE_LONG_LONG_ENTRY free(sp); -@@ -9000,7 +9066,7 @@ static PyMethodDef DBEnv_methods[] = { +@@ -8992,7 +9058,7 @@ static PyMethodDef DBEnv_methods[] = { {"txn_recover", (PyCFunction)DBEnv_txn_recover, METH_NOARGS}, #if (DBVER < 48) {"set_rpc_server", (PyCFunction)DBEnv_set_rpc_server, @@ -320,7 +320,7 @@ Index: Python-2.7.5/Modules/_bsddb.c #endif {"set_mp_max_openfd", (PyCFunction)DBEnv_set_mp_max_openfd, METH_VARARGS}, {"get_mp_max_openfd", (PyCFunction)DBEnv_get_mp_max_openfd, METH_NOARGS}, -@@ -9972,6 +10038,10 @@ PyMODINIT_FUNC PyInit__bsddb(void) / +@@ -9964,6 +10030,10 @@ PyMODINIT_FUNC PyInit__bsddb(void) / ADD_INT(d, DB_LOG_ZERO); #endif @@ -331,7 +331,7 @@ Index: Python-2.7.5/Modules/_bsddb.c #if (DBVER >= 44) ADD_INT(d, DB_DSYNC_DB); #endif -@@ -10032,6 +10102,10 @@ PyMODINIT_FUNC PyInit__bsddb(void) / +@@ -10024,6 +10094,10 @@ PyMODINIT_FUNC PyInit__bsddb(void) / ADD_INT(d, DB_EVENT_REG_PANIC); #endif @@ -342,7 +342,7 @@ Index: Python-2.7.5/Modules/_bsddb.c #if (DBVER >=52) ADD_INT(d, DB_EVENT_REP_SITE_ADDED); ADD_INT(d, DB_EVENT_REP_SITE_REMOVED); -@@ -10136,6 +10210,20 @@ PyMODINIT_FUNC PyInit__bsddb(void) / +@@ -10128,6 +10202,20 @@ PyMODINIT_FUNC PyInit__bsddb(void) / ADD_INT(d, DB_REP_CONF_INMEM); #endif @@ -363,10 +363,10 @@ Index: Python-2.7.5/Modules/_bsddb.c ADD_INT(d, DB_TIMEOUT); #if (DBVER >= 50) -Index: Python-2.7.5/Modules/bsddb.h +Index: Python-2.7.14/Modules/bsddb.h =================================================================== ---- Python-2.7.5.orig/Modules/bsddb.h -+++ Python-2.7.5/Modules/bsddb.h +--- Python-2.7.14.orig/Modules/bsddb.h ++++ Python-2.7.14/Modules/bsddb.h @@ -110,7 +110,7 @@ #error "eek! DBVER can't handle minor versions > 9" #endif @@ -376,11 +376,11 @@ Index: Python-2.7.5/Modules/bsddb.h /* Python object definitions */ -Index: Python-2.7.5/setup.py +Index: Python-2.7.14/setup.py =================================================================== ---- Python-2.7.5.orig/setup.py -+++ Python-2.7.5/setup.py -@@ -879,7 +879,7 @@ class PyBuildExt(build_ext): +--- Python-2.7.14.orig/setup.py ++++ Python-2.7.14/setup.py +@@ -905,7 +905,7 @@ class PyBuildExt(build_ext): # a release. Most open source OSes come with one or more # versions of BerkeleyDB already installed. @@ -389,7 +389,7 @@ Index: Python-2.7.5/setup.py min_db_ver = (4, 3) db_setup_debug = False # verbose debug prints from this script? -@@ -919,6 +919,7 @@ class PyBuildExt(build_ext): +@@ -945,6 +945,7 @@ class PyBuildExt(build_ext): # construct a list of paths to look for the header file in on # top of the normal inc_dirs. db_inc_paths = [ @@ -397,7 +397,7 @@ Index: Python-2.7.5/setup.py '/usr/include/db4', '/usr/local/include/db4', '/opt/sfw/include/db4', -@@ -958,6 +959,7 @@ class PyBuildExt(build_ext): +@@ -984,6 +985,7 @@ class PyBuildExt(build_ext): for dn in inc_dirs: std_variants.append(os.path.join(dn, 'db3')) std_variants.append(os.path.join(dn, 'db4')) diff --git a/python-doc.changes b/python-doc.changes index d4486b0..158ece7 100644 --- a/python-doc.changes +++ b/python-doc.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Nov 20 16:11:48 UTC 2017 - jmatejek@suse.com + +- update to 2.7.14 + * dozens of bugfixes, see NEWS for details + * fixed possible integer overflow in PyString_DecodeEscape (CVE-2017-1000158, bsc#1068664) + * fixed segfaults with dict mutated during search + * fixed possible free-after-use problems with buffer objects with custom indexing + * fixed urllib.splithost to correctly parse fragments (bpo-30500) +- drop upstreamed python-2.7.13-overflow_check.patch +- drop unneeded python-2.7.12-makeopcode.patch +- drop upstreamed 0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch + ------------------------------------------------------------------- Tue Jan 3 17:42:16 UTC 2017 - jmatejek@suse.com diff --git a/python-doc.spec b/python-doc.spec index cf933b1..c9901c5 100644 --- a/python-doc.spec +++ b/python-doc.spec @@ -17,7 +17,7 @@ Name: python-doc -Version: 2.7.13 +Version: 2.7.14 Release: 0 Summary: Additional Package Documentation for Python License: Python-2.0 @@ -55,11 +55,8 @@ Patch33: python-2.7.9-ssl_ca_path.patch Patch34: python-2.7.9-sles-disable-verification-by-default.patch # PATCH-FIX-UPSTREAM python-ncurses-6.0-accessors.patch dimstar@opensuse.org -- Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1 Patch35: python-ncurses-6.0-accessors.patch -Patch36: python-2.7.13-overflow_check.patch -Patch37: python-2.7.12-makeopcode.patch # PATCH-FIX-UPSTREAM bmwiedemann@suse.de -- allow python packages to build reproducibly Patch38: reproducible.patch -Patch39: 0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch # COMMON-PATCH-END Provides: pyth_doc Provides: pyth_ps @@ -108,10 +105,7 @@ Python, and Macintosh Module Reference in PDF format. %patch34 -p1 %endif %patch35 -p1 -%patch36 -p1 -%patch37 -p1 %patch38 -p1 -%patch39 -p1 # drop Autoconf version requirement sed -i 's/^version_required/dnl version_required/' configure.ac diff --git a/python.changes b/python.changes index 5dc2400..0c0733a 100644 --- a/python.changes +++ b/python.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Nov 20 16:11:48 UTC 2017 - jmatejek@suse.com + +- update to 2.7.14 + * dozens of bugfixes, see NEWS for details + * fixed possible integer overflow in PyString_DecodeEscape (CVE-2017-1000158, bsc#1068664) + * fixed segfaults with dict mutated during search + * fixed possible free-after-use problems with buffer objects with custom indexing + * fixed urllib.splithost to correctly parse fragments (bpo-30500) +- drop upstreamed python-2.7.13-overflow_check.patch +- drop unneeded python-2.7.12-makeopcode.patch +- drop upstreamed 0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch + ------------------------------------------------------------------- Thu Sep 14 14:12:38 UTC 2017 - vcizek@suse.com diff --git a/python.spec b/python.spec index 18fb022..8810dd6 100644 --- a/python.spec +++ b/python.spec @@ -17,7 +17,7 @@ Name: python -Version: 2.7.13 +Version: 2.7.14 Release: 0 Summary: Python Interpreter License: Python-2.0 @@ -60,11 +60,8 @@ Patch33: python-2.7.9-ssl_ca_path.patch Patch34: python-2.7.9-sles-disable-verification-by-default.patch # PATCH-FIX-UPSTREAM python-ncurses-6.0-accessors.patch dimstar@opensuse.org -- Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1 Patch35: python-ncurses-6.0-accessors.patch -Patch36: python-2.7.13-overflow_check.patch -Patch37: python-2.7.12-makeopcode.patch # PATCH-FIX-UPSTREAM bmwiedemann@suse.de -- allow python packages to build reproducibly Patch38: reproducible.patch -Patch39: 0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch # COMMON-PATCH-END BuildRequires: automake BuildRequires: db-devel @@ -214,10 +211,7 @@ that rely on earlier non-verification behavior. %patch34 -p1 %endif %patch35 -p1 -%patch36 -p1 -%patch37 -p1 %patch38 -p1 -%patch39 -p1 # drop Autoconf version requirement sed -i 's/^version_required/dnl version_required/' configure.ac