diff --git a/00189-add-rewheel-module.patch b/00189-add-rewheel-module.patch index 36b2611..419d7e4 100644 --- a/00189-add-rewheel-module.patch +++ b/00189-add-rewheel-module.patch @@ -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 \ diff --git a/00292-restore-PyExc_RecursionErrorInst-symbol.patch b/00292-restore-PyExc_RecursionErrorInst-symbol.patch index 89671f8..d2910ff 100644 --- a/00292-restore-PyExc_RecursionErrorInst-symbol.patch +++ b/00292-restore-PyExc_RecursionErrorInst-symbol.patch @@ -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 `. - --* 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 diff --git a/00294-define-TLS-cipher-suite-on-build-time.patch b/00294-define-TLS-cipher-suite-on-build-time.patch index 1aa348c..aed4032 100644 --- a/00294-define-TLS-cipher-suite-on-build-time.patch +++ b/00294-define-TLS-cipher-suite-on-build-time.patch @@ -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 diff --git a/00301-pathfix-add-n-option-for-no-backup.patch b/00301-pathfix-add-n-option-for-no-backup.patch deleted file mode 100644 index 350fe97..0000000 --- a/00301-pathfix-add-n-option-for-no-backup.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 5affd5c29eb1493cb31ef3cfdde15538ac134689 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= -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) diff --git a/python3.spec b/python3.spec index 959cfbf..f094a8e 100644 --- a/python3.spec +++ b/python3.spec @@ -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: 2%{?dist} +Version: %{pybasever}.6 +Release: 1%{?dist} License: Python @@ -352,12 +352,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 - # (New patches go here ^^^) # # When adding new patches to "python" and "python3" in Fedora, EL, etc., @@ -648,7 +642,6 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en %patch274 -p1 %patch292 -p1 %patch294 -p1 -%patch301 -p1 # Remove files that should be generated by the build @@ -1462,6 +1455,9 @@ CheckPython optimized # ====================================================== %changelog +* Tue Jul 10 2018 Charalampos Stratakis - 3.6.6-1 +- Update to Python 3.6.6 + * Tue Jul 10 2018 Tomas Orsava - 3.6.5-2 - Fix %%py_byte_compile macro: when invoked with a Python 2 binary it also mistakenly ran py3_byte_compile diff --git a/sources b/sources index 9d32274..505ea75 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Python-3.6.5.tar.xz) = 6b26fcd296b9bd8e67861eff10d14db7507711ddba947288d16d6def53135c39326b7f969c04bb2b2993f924d9e7ad3f5c5282a3915760bc0885cf0a8ea5eb51 +SHA512 (Python-3.6.6.tar.xz) = c71f87c5906e770322a14cacad228655659f782207db826320449d12bf86091c3662f317e1773158dec52f8b052eaedfb4c03b561cc2a6cfcd381597fd2d2b04