diff --git a/00301-pathfix-add-n-option-for-no-backup.patch b/00301-pathfix-add-n-option-for-no-backup.patch new file mode 100644 index 0000000..350fe97 --- /dev/null +++ b/00301-pathfix-add-n-option-for-no-backup.patch @@ -0,0 +1,104 @@ +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 a81494f..41594dd 100644 --- a/python3.spec +++ b/python3.spec @@ -14,7 +14,7 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well Version: %{pybasever}.4 -Release: 18%{?dist} +Release: 19%{?dist} License: Python @@ -393,6 +393,12 @@ Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch # Fixed upstream: https://bugs.python.org/issue32185 Patch298: 00298-do-not-send-IP-in-SNI-TLS-extension.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., @@ -693,6 +699,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en %patch292 -p1 %patch294 -p1 %patch298 -p1 +%patch301 -p1 # Remove files that should be generated by the build @@ -1513,6 +1520,10 @@ CheckPython optimized # ====================================================== %changelog +* Fri Mar 16 2018 Miro Hrončok - 3.6.4-19 +- Add -n option for pathfix.py +Resolves: rhbz#1546990 + * Thu Mar 15 2018 Miro Hrončok - 3.6.4-18 - Fix the py_byte_compile macro to work on Python 2 - Remove the pybytecompile macro file from the flat package