Add -n option for pathfix.py (#1546990)
This commit is contained in:
parent
e5f4159f8f
commit
545e680253
104
00301-pathfix-add-n-option-for-no-backup.patch
Normal file
104
00301-pathfix-add-n-option-for-no-backup.patch
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
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)
|
13
python3.spec
13
python3.spec
@ -14,7 +14,7 @@ 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}.4
|
Version: %{pybasever}.4
|
||||||
Release: 18%{?dist}
|
Release: 19%{?dist}
|
||||||
License: Python
|
License: Python
|
||||||
|
|
||||||
|
|
||||||
@ -393,6 +393,12 @@ Patch294: 00294-define-TLS-cipher-suite-on-build-time.patch
|
|||||||
# Fixed upstream: https://bugs.python.org/issue32185
|
# Fixed upstream: https://bugs.python.org/issue32185
|
||||||
Patch298: 00298-do-not-send-IP-in-SNI-TLS-extension.patch
|
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 ^^^)
|
# (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.,
|
||||||
@ -693,6 +699,7 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
|
|||||||
%patch292 -p1
|
%patch292 -p1
|
||||||
%patch294 -p1
|
%patch294 -p1
|
||||||
%patch298 -p1
|
%patch298 -p1
|
||||||
|
%patch301 -p1
|
||||||
|
|
||||||
|
|
||||||
# Remove files that should be generated by the build
|
# Remove files that should be generated by the build
|
||||||
@ -1513,6 +1520,10 @@ CheckPython optimized
|
|||||||
# ======================================================
|
# ======================================================
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Mar 16 2018 Miro Hrončok <mhroncok@redhat.com> - 3.6.4-19
|
||||||
|
- Add -n option for pathfix.py
|
||||||
|
Resolves: rhbz#1546990
|
||||||
|
|
||||||
* Thu Mar 15 2018 Miro Hrončok <mhroncok@redhat.com> - 3.6.4-18
|
* Thu Mar 15 2018 Miro Hrončok <mhroncok@redhat.com> - 3.6.4-18
|
||||||
- Fix the py_byte_compile macro to work on Python 2
|
- Fix the py_byte_compile macro to work on Python 2
|
||||||
- Remove the pybytecompile macro file from the flat package
|
- Remove the pybytecompile macro file from the flat package
|
||||||
|
Loading…
Reference in New Issue
Block a user