Update to 3.6.7

Removed patches due to being upstreamed: 310

Rebased patches: 170, 262
This commit is contained in:
Miro Hrončok 2018-10-02 22:58:11 +02:00
parent 4aa52bbbf8
commit 7d128984a0
5 changed files with 45 additions and 172 deletions

View File

@ -1,8 +1,8 @@
diff --git a/Include/object.h b/Include/object.h diff --git a/Include/object.h b/Include/object.h
index 0c88603..e3413e8 100644 index 63e37b8..613b26c 100644
--- a/Include/object.h --- a/Include/object.h
+++ b/Include/object.h +++ b/Include/object.h
@@ -1059,6 +1059,49 @@ PyAPI_FUNC(void) @@ -1071,6 +1071,49 @@ PyAPI_FUNC(void)
_PyObject_DebugTypeStats(FILE *out); _PyObject_DebugTypeStats(FILE *out);
#endif /* ifndef Py_LIMITED_API */ #endif /* ifndef Py_LIMITED_API */
@ -53,15 +53,16 @@ index 0c88603..e3413e8 100644
} }
#endif #endif
diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
index e727499..6efcafb 100644 index 7e82b24..4497b8f 100644
--- a/Lib/test/test_gc.py --- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py +++ b/Lib/test/test_gc.py
@@ -1,10 +1,11 @@ @@ -1,10 +1,12 @@
import unittest import unittest
from test.support import (verbose, refcount_test, run_unittest, from test.support import (verbose, refcount_test, run_unittest,
strip_python_stderr, cpython_only, start_threads, strip_python_stderr, cpython_only, start_threads,
- temp_dir, requires_type_collecting) - temp_dir, requires_type_collecting, TESTFN, unlink)
+ temp_dir, import_module, requires_type_collecting) + temp_dir, requires_type_collecting, TESTFN, unlink,
+ import_module)
from test.support.script_helper import assert_python_ok, make_script from test.support.script_helper import assert_python_ok, make_script
import sys import sys
@ -69,7 +70,7 @@ index e727499..6efcafb 100644
import time import time
import gc import gc
import weakref import weakref
@@ -50,6 +51,8 @@ class GC_Detector(object): @@ -50,6 +52,8 @@ class GC_Detector(object):
# gc collects it. # gc collects it.
self.wr = weakref.ref(C1055820(666), it_happened) self.wr = weakref.ref(C1055820(666), it_happened)
@ -78,7 +79,7 @@ index e727499..6efcafb 100644
@with_tp_del @with_tp_del
class Uncollectable(object): class Uncollectable(object):
"""Create a reference cycle with multiple __del__ methods. """Create a reference cycle with multiple __del__ methods.
@@ -862,6 +865,50 @@ class GCCallbackTests(unittest.TestCase): @@ -877,6 +881,50 @@ class GCCallbackTests(unittest.TestCase):
self.assertEqual(len(gc.garbage), 0) self.assertEqual(len(gc.garbage), 0)
@ -130,10 +131,10 @@ index e727499..6efcafb 100644
def setUp(self): def setUp(self):
gc.enable() gc.enable()
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
index 0c6f444..87edd5a 100644 index 3bddc40..0cc24f7 100644
--- a/Modules/gcmodule.c --- a/Modules/gcmodule.c
+++ b/Modules/gcmodule.c +++ b/Modules/gcmodule.c
@@ -341,7 +341,8 @@ update_refs(PyGC_Head *containers) @@ -342,7 +342,8 @@ update_refs(PyGC_Head *containers)
{ {
PyGC_Head *gc = containers->gc.gc_next; PyGC_Head *gc = containers->gc.gc_next;
for (; gc != containers; gc = gc->gc.gc_next) { for (; gc != containers; gc = gc->gc.gc_next) {
@ -143,7 +144,7 @@ index 0c6f444..87edd5a 100644
_PyGCHead_SET_REFS(gc, Py_REFCNT(FROM_GC(gc))); _PyGCHead_SET_REFS(gc, Py_REFCNT(FROM_GC(gc)));
/* Python's cyclic gc should never see an incoming refcount /* Python's cyclic gc should never see an incoming refcount
* of 0: if something decref'ed to 0, it should have been * of 0: if something decref'ed to 0, it should have been
@@ -361,7 +362,8 @@ update_refs(PyGC_Head *containers) @@ -362,7 +363,8 @@ update_refs(PyGC_Head *containers)
* so serious that maybe this should be a release-build * so serious that maybe this should be a release-build
* check instead of an assert? * check instead of an assert?
*/ */
@ -153,7 +154,7 @@ index 0c6f444..87edd5a 100644
} }
} }
@@ -376,7 +378,9 @@ visit_decref(PyObject *op, void *data) @@ -377,7 +379,9 @@ visit_decref(PyObject *op, void *data)
* generation being collected, which can be recognized * generation being collected, which can be recognized
* because only they have positive gc_refs. * because only they have positive gc_refs.
*/ */
@ -164,7 +165,7 @@ index 0c6f444..87edd5a 100644
if (_PyGCHead_REFS(gc) > 0) if (_PyGCHead_REFS(gc) > 0)
_PyGCHead_DECREF(gc); _PyGCHead_DECREF(gc);
} }
@@ -436,9 +440,10 @@ visit_reachable(PyObject *op, PyGC_Head *reachable) @@ -437,9 +441,10 @@ visit_reachable(PyObject *op, PyGC_Head *reachable)
* If gc_refs == GC_UNTRACKED, it must be ignored. * If gc_refs == GC_UNTRACKED, it must be ignored.
*/ */
else { else {
@ -178,7 +179,7 @@ index 0c6f444..87edd5a 100644
} }
} }
return 0; return 0;
@@ -480,7 +485,7 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable) @@ -481,7 +486,7 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
*/ */
PyObject *op = FROM_GC(gc); PyObject *op = FROM_GC(gc);
traverseproc traverse = Py_TYPE(op)->tp_traverse; traverseproc traverse = Py_TYPE(op)->tp_traverse;
@ -187,7 +188,7 @@ index 0c6f444..87edd5a 100644
_PyGCHead_SET_REFS(gc, GC_REACHABLE); _PyGCHead_SET_REFS(gc, GC_REACHABLE);
(void) traverse(op, (void) traverse(op,
(visitproc)visit_reachable, (visitproc)visit_reachable,
@@ -543,7 +548,7 @@ move_legacy_finalizers(PyGC_Head *unreachable, PyGC_Head *finalizers) @@ -544,7 +549,7 @@ move_legacy_finalizers(PyGC_Head *unreachable, PyGC_Head *finalizers)
for (gc = unreachable->gc.gc_next; gc != unreachable; gc = next) { for (gc = unreachable->gc.gc_next; gc != unreachable; gc = next) {
PyObject *op = FROM_GC(gc); PyObject *op = FROM_GC(gc);
@ -196,7 +197,7 @@ index 0c6f444..87edd5a 100644
next = gc->gc.gc_next; next = gc->gc.gc_next;
if (has_legacy_finalizer(op)) { if (has_legacy_finalizer(op)) {
@@ -619,7 +624,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) @@ -620,7 +625,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
PyWeakReference **wrlist; PyWeakReference **wrlist;
op = FROM_GC(gc); op = FROM_GC(gc);
@ -205,7 +206,7 @@ index 0c6f444..87edd5a 100644
next = gc->gc.gc_next; next = gc->gc.gc_next;
if (! PyType_SUPPORTS_WEAKREFS(Py_TYPE(op))) if (! PyType_SUPPORTS_WEAKREFS(Py_TYPE(op)))
@@ -640,9 +645,9 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) @@ -641,9 +646,9 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
* the callback pointer intact. Obscure: it also * the callback pointer intact. Obscure: it also
* changes *wrlist. * changes *wrlist.
*/ */
@ -217,7 +218,7 @@ index 0c6f444..87edd5a 100644
if (wr->wr_callback == NULL) if (wr->wr_callback == NULL)
continue; /* no callback */ continue; /* no callback */
@@ -676,7 +681,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) @@ -677,7 +682,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
*/ */
if (IS_TENTATIVELY_UNREACHABLE(wr)) if (IS_TENTATIVELY_UNREACHABLE(wr))
continue; continue;
@ -226,7 +227,7 @@ index 0c6f444..87edd5a 100644
/* Create a new reference so that wr can't go away /* Create a new reference so that wr can't go away
* before we can process it again. * before we can process it again.
@@ -685,7 +690,8 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) @@ -686,7 +691,8 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
/* Move wr to wrcb_to_call, for the next pass. */ /* Move wr to wrcb_to_call, for the next pass. */
wrasgc = AS_GC(wr); wrasgc = AS_GC(wr);
@ -236,7 +237,7 @@ index 0c6f444..87edd5a 100644
next isn't, so they can't next isn't, so they can't
be the same */ be the same */
gc_list_move(wrasgc, &wrcb_to_call); gc_list_move(wrasgc, &wrcb_to_call);
@@ -701,11 +707,11 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) @@ -702,11 +708,11 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
gc = wrcb_to_call.gc.gc_next; gc = wrcb_to_call.gc.gc_next;
op = FROM_GC(gc); op = FROM_GC(gc);
@ -251,7 +252,7 @@ index 0c6f444..87edd5a 100644
/* copy-paste of weakrefobject.c's handle_callback() */ /* copy-paste of weakrefobject.c's handle_callback() */
temp = PyObject_CallFunctionObjArgs(callback, wr, NULL); temp = PyObject_CallFunctionObjArgs(callback, wr, NULL);
@@ -822,12 +828,14 @@ check_garbage(PyGC_Head *collectable) @@ -820,12 +826,14 @@ check_garbage(PyGC_Head *collectable)
for (gc = collectable->gc.gc_next; gc != collectable; for (gc = collectable->gc.gc_next; gc != collectable;
gc = gc->gc.gc_next) { gc = gc->gc.gc_next) {
_PyGCHead_SET_REFS(gc, Py_REFCNT(FROM_GC(gc))); _PyGCHead_SET_REFS(gc, Py_REFCNT(FROM_GC(gc)));
@ -269,10 +270,10 @@ index 0c6f444..87edd5a 100644
return -1; return -1;
} }
diff --git a/Objects/object.c b/Objects/object.c diff --git a/Objects/object.c b/Objects/object.c
index 559794f..a47d47f 100644 index defff55..a50697d 100644
--- a/Objects/object.c --- a/Objects/object.c
+++ b/Objects/object.c +++ b/Objects/object.c
@@ -2022,6 +2022,35 @@ _PyTrash_thread_destroy_chain(void) @@ -2030,6 +2030,35 @@ _PyTrash_thread_destroy_chain(void)
} }
} }

View File

@ -1,8 +1,8 @@
diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst
index 9ffb714..3f7201a 100644 index d14793a..65aa3ad 100644
--- a/Doc/using/cmdline.rst --- a/Doc/using/cmdline.rst
+++ b/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst
@@ -711,6 +711,45 @@ conflict. @@ -728,6 +728,45 @@ conflict.
.. versionadded:: 3.6 .. versionadded:: 3.6
@ -49,10 +49,10 @@ index 9ffb714..3f7201a 100644
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
diff --git a/Lib/test/support/script_helper.py b/Lib/test/support/script_helper.py diff --git a/Lib/test/support/script_helper.py b/Lib/test/support/script_helper.py
index ca5f9c2..7aa460b 100644 index 507dc48..c3cb720 100644
--- a/Lib/test/support/script_helper.py --- a/Lib/test/support/script_helper.py
+++ b/Lib/test/support/script_helper.py +++ b/Lib/test/support/script_helper.py
@@ -51,8 +51,35 @@ def interpreter_requires_environment(): @@ -56,8 +56,35 @@ def interpreter_requires_environment():
return __cached_interp_requires_environment return __cached_interp_requires_environment
@ -90,7 +90,7 @@ index ca5f9c2..7aa460b 100644
# Executing the interpreter in a subprocess # Executing the interpreter in a subprocess
@@ -110,30 +137,7 @@ def run_python_until_end(*args, **env_vars): @@ -115,30 +142,7 @@ def run_python_until_end(*args, **env_vars):
def _assert_python(expected_success, *args, **env_vars): def _assert_python(expected_success, *args, **env_vars):
res, cmd_line = run_python_until_end(*args, **env_vars) res, cmd_line = run_python_until_end(*args, **env_vars)
if (res.rc and expected_success) or (not res.rc and not expected_success): if (res.rc and expected_success) or (not res.rc and not expected_success):
@ -499,50 +499,11 @@ index 0000000..635c98f
+ +
+if __name__ == "__main__": +if __name__ == "__main__":
+ test_main() + test_main()
diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py
index 6e4286e..594dfa9 100644
--- a/Lib/test/test_capi.py
+++ b/Lib/test/test_capi.py
@@ -425,32 +425,21 @@ class EmbeddingTests(unittest.TestCase):
def test_repeated_init_and_subinterpreters(self):
# This is just a "don't crash" test
out, err = self.run_embedded_interpreter('repeated_init_and_subinterpreters')
- if support.verbose:
+ if support.verbose > 1:
print()
print(out)
print(err)
- @staticmethod
- def _get_default_pipe_encoding():
- rp, wp = os.pipe()
- try:
- with os.fdopen(wp, 'w') as w:
- default_pipe_encoding = w.encoding
- finally:
- os.close(rp)
- return default_pipe_encoding
-
def test_forced_io_encoding(self):
# Checks forced configuration of embedded interpreter IO streams
env = dict(os.environ, PYTHONIOENCODING="utf-8:surrogateescape")
out, err = self.run_embedded_interpreter("forced_io_encoding", env=env)
- if support.verbose:
+ if support.verbose > 1:
print()
print(out)
print(err)
expected_stream_encoding = "utf-8"
expected_errors = "surrogateescape"
- expected_pipe_encoding = self._get_default_pipe_encoding()
expected_output = '\n'.join([
"--- Use defaults ---",
"Expected encoding: default",
diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py
index ae2bcd4..0a302ff 100644 index 38156b4..5922ed9 100644
--- a/Lib/test/test_cmd_line.py --- a/Lib/test/test_cmd_line.py
+++ b/Lib/test/test_cmd_line.py +++ b/Lib/test/test_cmd_line.py
@@ -151,6 +152,7 @@ class CmdLineTest(unittest.TestCase): @@ -153,6 +153,7 @@ class CmdLineTest(unittest.TestCase):
env = os.environ.copy() env = os.environ.copy()
# Use C locale to get ascii for the locale encoding # Use C locale to get ascii for the locale encoding
env['LC_ALL'] = 'C' env['LC_ALL'] = 'C'
@ -563,10 +524,10 @@ index 7866a5c..b41239a 100644
'import sys', 'import sys',
'def dump(name):', 'def dump(name):',
diff --git a/Modules/main.c b/Modules/main.c diff --git a/Modules/main.c b/Modules/main.c
index b0fb78f..0d8590a 100644 index 585d696..96d8be4 100644
--- a/Modules/main.c --- a/Modules/main.c
+++ b/Modules/main.c +++ b/Modules/main.c
@@ -105,7 +105,11 @@ static const char usage_6[] = @@ -107,7 +107,11 @@ static const char usage_6[] =
" predictable seed.\n" " predictable seed.\n"
"PYTHONMALLOC: set the Python memory allocators and/or install debug hooks\n" "PYTHONMALLOC: set the Python memory allocators and/or install debug hooks\n"
" on Python memory allocators. Use PYTHONMALLOC=debug to install debug\n" " on Python memory allocators. Use PYTHONMALLOC=debug to install debug\n"
@ -580,7 +541,7 @@ index b0fb78f..0d8590a 100644
static int static int
usage(int exitcode, const wchar_t* program) usage(int exitcode, const wchar_t* program)
diff --git a/Programs/_testembed.c b/Programs/_testembed.c diff --git a/Programs/_testembed.c b/Programs/_testembed.c
index b0f9087..da892bf 100644 index 813cf30..2a64092 100644
--- a/Programs/_testembed.c --- a/Programs/_testembed.c
+++ b/Programs/_testembed.c +++ b/Programs/_testembed.c
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
@ -662,7 +623,7 @@ index a7afbc7..03f8295 100644
for (i = 0; i < argc; i++) { for (i = 0; i < argc; i++) {
PyMem_RawFree(argv_copy2[i]); PyMem_RawFree(argv_copy2[i]);
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 640271f..2a22b24 100644 index ecfdfee..4fee178 100644
--- a/Python/pylifecycle.c --- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c +++ b/Python/pylifecycle.c
@@ -167,6 +167,7 @@ Py_SetStandardStreamEncoding(const char *encoding, const char *errors) @@ -167,6 +167,7 @@ Py_SetStandardStreamEncoding(const char *encoding, const char *errors)
@ -878,7 +839,7 @@ index 640271f..2a22b24 100644
#endif #endif
if ((p = Py_GETENV("PYTHONDEBUG")) && *p != '\0') if ((p = Py_GETENV("PYTHONDEBUG")) && *p != '\0')
@@ -1251,12 +1437,8 @@ initstdio(void) @@ -1247,12 +1433,8 @@ initstdio(void)
} }
} }
if (!errors && !(pythonioencoding && *pythonioencoding)) { if (!errors && !(pythonioencoding && *pythonioencoding)) {
@ -894,10 +855,10 @@ index 640271f..2a22b24 100644
} }
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index 601cc84..5cdc021 100644 index 3f2459a..7444486 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -3310,6 +3310,40 @@ then @@ -3360,6 +3360,40 @@ then
fi fi
AC_MSG_RESULT($with_pymalloc) AC_MSG_RESULT($with_pymalloc)

View File

@ -1,84 +0,0 @@
From 5f610ec2043aa6b52cb6a6b5e436df091a4f2d91 Mon Sep 17 00:00:00 2001
From: Christian Heimes <christian@python.org>
Date: Tue, 18 Sep 2018 14:38:58 +0200
Subject: [PATCH] bpo-34623: Use XML_SetHashSalt in _elementtree (GH-9146)
The C accelerated _elementtree module now initializes hash randomization
salt from _Py_HashSecret instead of libexpat's default CPRNG.
Signed-off-by: Christian Heimes <christian@python.org>
https://bugs.python.org/issue34623
(cherry picked from commit cb5778f00ce48631c7140f33ba242496aaf7102b)
Co-authored-by: Christian Heimes <christian@python.org>
---
Include/pyexpat.h | 4 +++-
.../next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst | 2 ++
Modules/_elementtree.c | 5 +++++
Modules/pyexpat.c | 5 +++++
4 files changed, 15 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
diff --git a/Include/pyexpat.h b/Include/pyexpat.h
index 44259bf6d716..07020b5dc964 100644
--- a/Include/pyexpat.h
+++ b/Include/pyexpat.h
@@ -3,7 +3,7 @@
/* note: you must import expat.h before importing this module! */
-#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.0"
+#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1"
#define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI"
struct PyExpat_CAPI
@@ -48,6 +48,8 @@ struct PyExpat_CAPI
enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding);
int (*DefaultUnknownEncodingHandler)(
void *encodingHandlerData, const XML_Char *name, XML_Encoding *info);
+ /* might be none for expat < 2.1.0 */
+ int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt);
/* always add new stuff to the end! */
};
diff --git a/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst b/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
new file mode 100644
index 000000000000..31ad92ef8582
--- /dev/null
+++ b/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
@@ -0,0 +1,2 @@
+The C accelerated _elementtree module now initializes hash randomization
+salt from _Py_HashSecret instead of libexpat's default CSPRNG.
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index 1dfdb3ce34f3..4b86f96a70d3 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -3305,6 +3305,11 @@ _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *html,
PyErr_NoMemory();
return -1;
}
+ /* expat < 2.1.0 has no XML_SetHashSalt() */
+ if (EXPAT(SetHashSalt) != NULL) {
+ EXPAT(SetHashSalt)(self->parser,
+ (unsigned long)_Py_HashSecret.expat.hashsalt);
+ }
if (target) {
Py_INCREF(target);
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index c8a01d4e088e..c52079e518f2 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -1877,6 +1877,11 @@ MODULE_INITFUNC(void)
capi.SetStartDoctypeDeclHandler = XML_SetStartDoctypeDeclHandler;
capi.SetEncoding = XML_SetEncoding;
capi.DefaultUnknownEncodingHandler = PyUnknownEncodingHandler;
+#if XML_COMBINED_VERSION >= 20100
+ capi.SetHashSalt = XML_SetHashSalt;
+#else
+ capi.SetHashSalt = NULL;
+#endif
/* export using capsule */
capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL);

View File

@ -13,8 +13,8 @@ URL: https://www.python.org/
# WARNING When rebasing to a new Python version, # WARNING When rebasing to a new Python version,
# remember to update the python3-docs package as well # remember to update the python3-docs package as well
Version: %{pybasever}.6 Version: %{pybasever}.7
Release: 6%{?dist} Release: 1%{?dist}
License: Python License: Python
@ -228,7 +228,7 @@ BuildRequires: python-pip-wheel
# Source code and patches # Source code and patches
# ======================= # =======================
Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz Source: https://www.python.org/ftp/python/%{version}/Python-%{version}%{?prerel}.tar.xz
# A simple script to check timestamps of bytecode files # A simple script to check timestamps of bytecode files
# Run in check section with Python that is currently being built # Run in check section with Python that is currently being built
@ -352,13 +352,6 @@ Patch292: 00292-restore-PyExc_RecursionErrorInst-symbol.patch
# See also: https://bugzilla.redhat.com/show_bug.cgi?id=1489816 # See also: https://bugzilla.redhat.com/show_bug.cgi?id=1489816
Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch
# 00310 #
# CVE-2018-14647
# Use XML_SetHashSalt in _elementtree
# rhbz#1631822
# Fixed upstream https://bugs.python.org/issue34623
Patch310: 00310-use-xml-sethashsalt-in-elementtree.patch
# (New patches go here ^^^) # (New patches go here ^^^)
# #
# When adding new patches to "python" and "python3" in Fedora, EL, etc., # When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@ -684,7 +677,6 @@ rm Lib/ensurepip/_bundled/*.whl
%patch274 -p1 %patch274 -p1
%patch292 -p1 %patch292 -p1
%patch294 -p1 %patch294 -p1
%patch310 -p1
# Remove files that should be generated by the build # Remove files that should be generated by the build
@ -1566,6 +1558,9 @@ CheckPython optimized
# ====================================================== # ======================================================
%changelog %changelog
* Mon Oct 22 2018 Miro Hrončok <mhroncok@redhat.com> - 3.6.7-1
- Update to 3.6.7
* Mon Sep 24 2018 Miro Hrončok <mhroncok@redhat.com> - 3.6.6-6 * Mon Sep 24 2018 Miro Hrončok <mhroncok@redhat.com> - 3.6.6-6
- Security fix for CVE-2018-14647 (#1631822) - Security fix for CVE-2018-14647 (#1631822)

View File

@ -1 +1 @@
SHA512 (Python-3.6.6.tar.xz) = c71f87c5906e770322a14cacad228655659f782207db826320449d12bf86091c3662f317e1773158dec52f8b052eaedfb4c03b561cc2a6cfcd381597fd2d2b04 SHA512 (Python-3.6.7.tar.xz) = 7be753046db8d12fc00f90d9c1b2edcc5ae80ac39e9d0d8d07553081a26f59a60c0d0cf6986006f0729f425d5751273110db3aa2d413d9405fafa9bd6c052fdf