Update to Python 3.6.6
Removed patches due to being upstreamed: 301, 302 Rebased patches: 189, 292, 294
This commit is contained in:
parent
4eb44f11ab
commit
f35966cd37
|
@ -1,5 +1,5 @@
|
|||
diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
|
||||
index d69e09f..5cb12df 100644
|
||||
index 4748ba4..986d5e9 100644
|
||||
--- a/Lib/ensurepip/__init__.py
|
||||
+++ b/Lib/ensurepip/__init__.py
|
||||
@@ -1,8 +1,10 @@
|
||||
|
@ -13,16 +13,25 @@ index d69e09f..5cb12df 100644
|
|||
|
||||
|
||||
__all__ = ["version", "bootstrap"]
|
||||
@@ -25,6 +27,8 @@ def _run_pip(args, additional_paths=None):
|
||||
@@ -24,8 +26,15 @@ def _run_pip(args, additional_paths=None):
|
||||
sys.path = additional_paths + sys.path
|
||||
|
||||
# Install the bundled software
|
||||
import pip
|
||||
- import pip._internal
|
||||
- return pip._internal.main(args)
|
||||
+ try:
|
||||
+ # pip 10
|
||||
+ from pip._internal import main
|
||||
+ except ImportError:
|
||||
+ # pip 9
|
||||
+ from pip import main
|
||||
+ if args[0] in ["install", "list", "wheel"]:
|
||||
+ args.append('--pre')
|
||||
return pip.main(args)
|
||||
+ return main(args)
|
||||
|
||||
|
||||
@@ -88,20 +92,39 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
|
||||
def version():
|
||||
@@ -88,20 +97,39 @@ def _bootstrap(*, root=None, upgrade=False, user=False,
|
||||
# omit pip and easy_install
|
||||
os.environ["ENSUREPIP_OPTIONS"] = "install"
|
||||
|
||||
|
@ -72,9 +81,11 @@ index d69e09f..5cb12df 100644
|
|||
|
||||
# Construct the arguments to be passed to the pip command
|
||||
args = ["install", "--no-index", "--find-links", tmpdir]
|
||||
diff -Nur Python-3.4.1/Lib/ensurepip/rewheel/__init__.py Python-3.4.1-rewheel/Lib/ensurepip/rewheel/__init__.py
|
||||
--- Python-3.4.1/Lib/ensurepip/rewheel/__init__.py 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ Python-3.4.1-rewheel/Lib/ensurepip/rewheel/__init__.py 2014-08-21 10:11:22.560320121 +0200
|
||||
diff --git a/Lib/ensurepip/rewheel/__init__.py b/Lib/ensurepip/rewheel/__init__.py
|
||||
new file mode 100644
|
||||
index 0000000..753c764
|
||||
--- /dev/null
|
||||
+++ b/Lib/ensurepip/rewheel/__init__.py
|
||||
@@ -0,0 +1,143 @@
|
||||
+import argparse
|
||||
+import codecs
|
||||
|
@ -219,10 +230,11 @@ diff -Nur Python-3.4.1/Lib/ensurepip/rewheel/__init__.py Python-3.4.1-rewheel/Li
|
|||
+ else:
|
||||
+ pass # bad RECORD or empty line
|
||||
+ return to_write, to_omit
|
||||
diff -Nur Python-3.4.1/Makefile.pre.in Python-3.4.1-rewheel/Makefile.pre.in
|
||||
--- Python-3.4.1/Makefile.pre.in 2014-08-21 10:49:31.512695040 +0200
|
||||
+++ Python-3.4.1-rewheel/Makefile.pre.in 2014-08-21 10:10:41.961341722 +0200
|
||||
@@ -1145,7 +1145,7 @@
|
||||
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
||||
index 85e2ee3..4d34130 100644
|
||||
--- a/Makefile.pre.in
|
||||
+++ b/Makefile.pre.in
|
||||
@@ -1256,7 +1256,7 @@ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
|
||||
test/test_asyncio \
|
||||
collections concurrent concurrent/futures encodings \
|
||||
email email/mime test/test_email test/test_email/data \
|
||||
|
|
|
@ -1,22 +1,3 @@
|
|||
diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst
|
||||
index 847b50140a6..570dc3ed6fe 100644
|
||||
--- a/Doc/whatsnew/3.6.rst
|
||||
+++ b/Doc/whatsnew/3.6.rst
|
||||
@@ -1852,10 +1852,10 @@ Build and C API Changes
|
||||
* The :c:func:`PyUnicode_FSConverter` and :c:func:`PyUnicode_FSDecoder`
|
||||
functions will now accept :term:`path-like objects <path-like object>`.
|
||||
|
||||
-* The ``PyExc_RecursionErrorInst`` singleton that was part of the public API
|
||||
- has been removed as its members being never cleared may cause a segfault
|
||||
- during finalization of the interpreter. Contributed by Xavier de Gaye in
|
||||
- :issue:`22898` and :issue:`30697`.
|
||||
+* The ``PyExc_RecursionErrorInst`` singleton is not used anymore as its members
|
||||
+ being never cleared may cause a segfault during finalization of the
|
||||
+ interpreter. Contributed by Xavier de Gaye in :issue:`22898` and
|
||||
+ :issue:`30697`.
|
||||
|
||||
|
||||
Other Improvements
|
||||
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
|
||||
index c28c1373f82..8c1dbc5047b 100644
|
||||
--- a/Include/pyerrors.h
|
||||
|
|
|
@ -79,7 +79,7 @@ index 1f3a31a..b54a684 100644
|
|||
if cafile or capath or cadata:
|
||||
context.load_verify_locations(cafile, capath, cadata)
|
||||
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
|
||||
index 54644e1..799100c 100644
|
||||
index 9785a59..34a7ec2 100644
|
||||
--- a/Lib/test/test_ssl.py
|
||||
+++ b/Lib/test/test_ssl.py
|
||||
@@ -18,6 +18,7 @@ import asyncore
|
||||
|
@ -120,12 +120,12 @@ index 54644e1..799100c 100644
|
|||
def test_get_ciphers(self):
|
||||
ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
|
||||
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
|
||||
index df8c6a7..e23a569 100644
|
||||
index 5e007da..130f006 100644
|
||||
--- a/Modules/_ssl.c
|
||||
+++ b/Modules/_ssl.c
|
||||
@@ -206,6 +206,31 @@ SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s)
|
||||
@@ -237,6 +237,31 @@ SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s)
|
||||
|
||||
#endif /* OpenSSL < 1.1.0 or LibreSSL */
|
||||
#endif /* OpenSSL < 1.1.0 or LibreSSL < 2.7.0 */
|
||||
|
||||
+/* Default cipher suites */
|
||||
+#ifndef PY_SSL_DEFAULT_CIPHERS
|
||||
|
@ -155,7 +155,7 @@ index df8c6a7..e23a569 100644
|
|||
|
||||
enum py_ssl_error {
|
||||
/* these mirror ssl.h */
|
||||
@@ -2739,7 +2764,12 @@ _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)
|
||||
@@ -2803,7 +2828,12 @@ _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)
|
||||
/* A bare minimum cipher list without completely broken cipher suites.
|
||||
* It's far from perfect but gives users a better head start. */
|
||||
if (proto_version != PY_SSL_VERSION_SSL2) {
|
||||
|
@ -169,7 +169,7 @@ index df8c6a7..e23a569 100644
|
|||
} else {
|
||||
/* SSLv2 needs MD5 */
|
||||
result = SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!eNULL");
|
||||
@@ -5279,6 +5309,9 @@ PyInit__ssl(void)
|
||||
@@ -5343,6 +5373,9 @@ PyInit__ssl(void)
|
||||
(PyObject *)&PySSLSession_Type) != 0)
|
||||
return NULL;
|
||||
|
||||
|
@ -180,10 +180,10 @@ index df8c6a7..e23a569 100644
|
|||
PY_SSL_ERROR_ZERO_RETURN);
|
||||
PyModule_AddIntConstant(m, "SSL_ERROR_WANT_READ",
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 7ea62f8..4b42393 100644
|
||||
index 3703701..2eff514 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -5555,6 +5555,42 @@ if test "$have_getrandom" = yes; then
|
||||
@@ -5598,6 +5598,42 @@ if test "$have_getrandom" = yes; then
|
||||
[Define to 1 if the getrandom() function is available])
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,104 +0,0 @@
|
|||
From 5affd5c29eb1493cb31ef3cfdde15538ac134689 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
||||
Date: Tue, 13 Mar 2018 10:56:43 +0100
|
||||
Subject: [PATCH] bpo-32885: Tools/scripts/pathfix.py: Add -n option for no
|
||||
backup~ (#5772)
|
||||
|
||||
Creating backup files with ~ suffix can be undesirable in some environment,
|
||||
such as when building RPM packages. Instead of requiring the user to remove
|
||||
those files manually, option -n was added, that simply disables this feature.
|
||||
|
||||
-n was selected because 2to3 has the same option with this behavior.
|
||||
---
|
||||
Misc/ACKS | 1 +
|
||||
.../2018-02-20-12-16-47.bpo-32885.dL5x7C.rst | 2 ++
|
||||
Tools/scripts/pathfix.py | 28 +++++++++++++++-------
|
||||
3 files changed, 23 insertions(+), 8 deletions(-)
|
||||
create mode 100644 Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst
|
||||
|
||||
diff --git a/Misc/ACKS b/Misc/ACKS
|
||||
index d8179c8b03ab..d752d8a35434 100644
|
||||
--- a/Misc/ACKS
|
||||
+++ b/Misc/ACKS
|
||||
@@ -687,6 +687,7 @@ Ken Howard
|
||||
Brad Howes
|
||||
Mike Hoy
|
||||
Ben Hoyt
|
||||
+Miro Hrončok
|
||||
Chiu-Hsiang Hsu
|
||||
Chih-Hao Huang
|
||||
Christian Hudon
|
||||
diff --git a/Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst b/Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst
|
||||
new file mode 100644
|
||||
index 000000000000..e003e1d84fd0
|
||||
--- /dev/null
|
||||
+++ b/Misc/NEWS.d/next/Tools-Demos/2018-02-20-12-16-47.bpo-32885.dL5x7C.rst
|
||||
@@ -0,0 +1,2 @@
|
||||
+Add an ``-n`` flag for ``Tools/scripts/pathfix.py`` to disbale automatic
|
||||
+backup creation (files with ``~`` suffix).
|
||||
diff --git a/Tools/scripts/pathfix.py b/Tools/scripts/pathfix.py
|
||||
index 562bbc737812..c5bf984306a3 100755
|
||||
--- a/Tools/scripts/pathfix.py
|
||||
+++ b/Tools/scripts/pathfix.py
|
||||
@@ -7,8 +7,9 @@
|
||||
# Directories are searched recursively for files whose name looks
|
||||
# like a python module.
|
||||
# Symbolic links are always ignored (except as explicit directory
|
||||
-# arguments). Of course, the original file is kept as a back-up
|
||||
-# (with a "~" attached to its name).
|
||||
+# arguments).
|
||||
+# The original file is kept as a back-up (with a "~" attached to its name),
|
||||
+# -n flag can be used to disable this.
|
||||
#
|
||||
# Undoubtedly you can do this using find and sed or perl, but this is
|
||||
# a nice example of Python code that recurses down a directory tree
|
||||
@@ -31,14 +32,17 @@
|
||||
|
||||
new_interpreter = None
|
||||
preserve_timestamps = False
|
||||
+create_backup = True
|
||||
+
|
||||
|
||||
def main():
|
||||
global new_interpreter
|
||||
global preserve_timestamps
|
||||
- usage = ('usage: %s -i /interpreter -p file-or-directory ...\n' %
|
||||
+ global create_backup
|
||||
+ usage = ('usage: %s -i /interpreter -p -n file-or-directory ...\n' %
|
||||
sys.argv[0])
|
||||
try:
|
||||
- opts, args = getopt.getopt(sys.argv[1:], 'i:p')
|
||||
+ opts, args = getopt.getopt(sys.argv[1:], 'i:pn')
|
||||
except getopt.error as msg:
|
||||
err(str(msg) + '\n')
|
||||
err(usage)
|
||||
@@ -48,6 +52,8 @@ def main():
|
||||
new_interpreter = a.encode()
|
||||
if o == '-p':
|
||||
preserve_timestamps = True
|
||||
+ if o == '-n':
|
||||
+ create_backup = False
|
||||
if not new_interpreter or not new_interpreter.startswith(b'/') or \
|
||||
not args:
|
||||
err('-i option or file-or-directory missing\n')
|
||||
@@ -134,10 +140,16 @@ def fix(filename):
|
||||
except OSError as msg:
|
||||
err('%s: warning: chmod failed (%r)\n' % (tempname, msg))
|
||||
# Then make a backup of the original file as filename~
|
||||
- try:
|
||||
- os.rename(filename, filename + '~')
|
||||
- except OSError as msg:
|
||||
- err('%s: warning: backup failed (%r)\n' % (filename, msg))
|
||||
+ if create_backup:
|
||||
+ try:
|
||||
+ os.rename(filename, filename + '~')
|
||||
+ except OSError as msg:
|
||||
+ err('%s: warning: backup failed (%r)\n' % (filename, msg))
|
||||
+ else:
|
||||
+ try:
|
||||
+ os.remove(filename)
|
||||
+ except OSError as msg:
|
||||
+ err('%s: warning: removing failed (%r)\n' % (filename, msg))
|
||||
# Now move the temp file to the original file
|
||||
try:
|
||||
os.rename(tempname, filename)
|
|
@ -1,55 +0,0 @@
|
|||
From a3febe3cba14b89885f42ca2f0224096a52885f6 Mon Sep 17 00:00:00 2001
|
||||
From: Antoine Pitrou <antoine@python.org>
|
||||
Date: Mon, 23 Apr 2018 13:19:42 +0200
|
||||
Subject: [PATCH] bpo-33329: Fix multiprocessing regression on newer glibcs
|
||||
|
||||
Starting with glibc 2.27.9000-xxx, sigaddset() can return EINVAL for some
|
||||
reserved signal numbers between 1 and NSIG. The `range(1, NSIG)` idiom
|
||||
is commonly used to select all signals for blocking with `pthread_sigmask`.
|
||||
So we ignore the sigaddset() return value until we expose sigfillset()
|
||||
to provide a better idiom.
|
||||
---
|
||||
.../next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst | 1 +
|
||||
Modules/signalmodule.c | 14 ++++++++------
|
||||
2 files changed, 9 insertions(+), 6 deletions(-)
|
||||
create mode 100644 Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
|
||||
|
||||
diff --git a/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst b/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
|
||||
new file mode 100644
|
||||
index 000000000000..d1a4e56d04b9
|
||||
--- /dev/null
|
||||
+++ b/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
|
||||
@@ -0,0 +1 @@
|
||||
+Fix multiprocessing regression on newer glibcs
|
||||
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
|
||||
index 791616014384..35fd87e2d1e7 100644
|
||||
--- a/Modules/signalmodule.c
|
||||
+++ b/Modules/signalmodule.c
|
||||
@@ -819,7 +819,6 @@ iterable_to_sigset(PyObject *iterable, sigset_t *mask)
|
||||
int result = -1;
|
||||
PyObject *iterator, *item;
|
||||
long signum;
|
||||
- int err;
|
||||
|
||||
sigemptyset(mask);
|
||||
|
||||
@@ -841,11 +840,14 @@ iterable_to_sigset(PyObject *iterable, sigset_t *mask)
|
||||
Py_DECREF(item);
|
||||
if (signum == -1 && PyErr_Occurred())
|
||||
goto error;
|
||||
- if (0 < signum && signum < NSIG)
|
||||
- err = sigaddset(mask, (int)signum);
|
||||
- else
|
||||
- err = 1;
|
||||
- if (err) {
|
||||
+ if (0 < signum && signum < NSIG) {
|
||||
+ /* bpo-33329: ignore sigaddset() return value as it can fail
|
||||
+ * for some reserved signals, but we want the `range(1, NSIG)`
|
||||
+ * idiom to allow selecting all valid signals.
|
||||
+ */
|
||||
+ (void) sigaddset(mask, (int)signum);
|
||||
+ }
|
||||
+ else {
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
"signal number %ld out of range", signum);
|
||||
goto error;
|
|
@ -13,8 +13,8 @@ URL: https://www.python.org/
|
|||
|
||||
# WARNING When rebasing to a new Python version,
|
||||
# remember to update the python3-docs package as well
|
||||
Version: %{pybasever}.5
|
||||
Release: 5%{?dist}
|
||||
Version: %{pybasever}.6
|
||||
Release: 1%{?dist}
|
||||
License: Python
|
||||
|
||||
|
||||
|
@ -356,18 +356,6 @@ Patch292: 00292-restore-PyExc_RecursionErrorInst-symbol.patch
|
|||
# See also: https://bugzilla.redhat.com/show_bug.cgi?id=1489816
|
||||
Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch
|
||||
|
||||
# 00301 #
|
||||
# Tools/scripts/pathfix.py: Add -n option for no backup~
|
||||
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1546990
|
||||
# Fixed upstream: https://bugs.python.org/issue32885
|
||||
Patch301: 00301-pathfix-add-n-option-for-no-backup.patch
|
||||
|
||||
# 00302 #
|
||||
# Fix multiprocessing regression on newer glibcs
|
||||
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1569933
|
||||
# and: https://bugs.python.org/issue33329
|
||||
Patch302: 00302-fix-multiprocessing-regression-on-newer-glibcs.patch
|
||||
|
||||
# (New patches go here ^^^)
|
||||
#
|
||||
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
|
||||
|
@ -627,7 +615,7 @@ Requires: redhat-rpm-config
|
|||
%global __provides_exclude ^python\\(abi\\) = 3\\..$
|
||||
|
||||
# We keep those inside on purpose
|
||||
Provides: bundled(python3-pip) = 9.0.3
|
||||
Provides: bundled(python3-pip) = 10.0.1
|
||||
Provides: bundled(python3-setuptools) = 39.0.1
|
||||
|
||||
# The description for the flat package
|
||||
|
@ -684,8 +672,6 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
|
|||
%patch274 -p1
|
||||
%patch292 -p1
|
||||
%patch294 -p1
|
||||
%patch301 -p1
|
||||
%patch302 -p1
|
||||
|
||||
|
||||
# Remove files that should be generated by the build
|
||||
|
@ -1558,5 +1544,8 @@ CheckPython optimized
|
|||
# ======================================================
|
||||
|
||||
%changelog
|
||||
* Tue Jul 10 2018 Charalampos Stratakis <cstratak@redhat.com> - 3.6.6-1
|
||||
- Update to Python 3.6.6
|
||||
|
||||
* Mon Jun 18 2018 Miro Hrončok <mhroncok@redhat.com> - 3.6.5-5
|
||||
- Introduce python36 package
|
||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
|||
SHA512 (Python-3.6.5.tar.xz) = 6b26fcd296b9bd8e67861eff10d14db7507711ddba947288d16d6def53135c39326b7f969c04bb2b2993f924d9e7ad3f5c5282a3915760bc0885cf0a8ea5eb51
|
||||
SHA512 (Python-3.6.6.tar.xz) = c71f87c5906e770322a14cacad228655659f782207db826320449d12bf86091c3662f317e1773158dec52f8b052eaedfb4c03b561cc2a6cfcd381597fd2d2b04
|
||||
|
|
Loading…
Reference in New Issue