| do not "adjust" python files before copying |
| |
| -Khem |
| |
| Upstream-Status: Inappropriate [Embedded-Specific] |
| |
| --- |
| Lib/distutils/command/build_scripts.py | 43 +++------------------------------ |
| 1 file changed, 4 insertions(+), 39 deletions(-) |
| |
| --- a/Lib/distutils/command/build_scripts.py |
| +++ b/Lib/distutils/command/build_scripts.py |
| @@ -51,10 +51,7 @@ class build_scripts(Command): |
| |
| |
| def copy_scripts(self): |
| - """Copy each script listed in 'self.scripts'; if it's marked as a |
| - Python script in the Unix way (first line matches 'first_line_re', |
| - ie. starts with "\#!" and contains "python"), then adjust the first |
| - line to refer to the current Python interpreter as we copy. |
| + """Copy each script listed in 'self.scripts' |
| """ |
| self.mkpath(self.build_dir) |
| outfiles = [] |
| @@ -78,64 +75,10 @@ class build_scripts(Command): |
| if not self.dry_run: |
| raise |
| f = None |
| - else: |
| - encoding, lines = tokenize.detect_encoding(f.readline) |
| - f.seek(0) |
| - first_line = f.readline() |
| - if not first_line: |
| - self.warn("%s is an empty file (skipping)" % script) |
| - continue |
| - |
| - match = first_line_re.match(first_line) |
| - if match: |
| - adjust = True |
| - post_interp = match.group(1) or b'' |
| - |
| - if adjust: |
| - log.info("copying and adjusting %s -> %s", script, |
| - self.build_dir) |
| - updated_files.append(outfile) |
| - if not self.dry_run: |
| - if not sysconfig.python_build: |
| - executable = self.executable |
| - else: |
| - executable = os.path.join( |
| - sysconfig.get_config_var("BINDIR"), |
| - "python%s%s" % (sysconfig.get_config_var("VERSION"), |
| - sysconfig.get_config_var("EXE"))) |
| - executable = os.fsencode(executable) |
| - shebang = b"#!" + executable + post_interp + b"\n" |
| - # Python parser starts to read a script using UTF-8 until |
| - # it gets a #coding:xxx cookie. The shebang has to be the |
| - # first line of a file, the #coding:xxx cookie cannot be |
| - # written before. So the shebang has to be decodable from |
| - # UTF-8. |
| - try: |
| - shebang.decode('utf-8') |
| - except UnicodeDecodeError: |
| - raise ValueError( |
| - "The shebang ({!r}) is not decodable " |
| - "from utf-8".format(shebang)) |
| - # If the script is encoded to a custom encoding (use a |
| - # #coding:xxx cookie), the shebang has to be decodable from |
| - # the script encoding too. |
| - try: |
| - shebang.decode(encoding) |
| - except UnicodeDecodeError: |
| - raise ValueError( |
| - "The shebang ({!r}) is not decodable " |
| - "from the script encoding ({})" |
| - .format(shebang, encoding)) |
| - with open(outfile, "wb") as outf: |
| - outf.write(shebang) |
| - outf.writelines(f.readlines()) |
| - if f: |
| - f.close() |
| - else: |
| - if f: |
| + if f: |
| f.close() |
| - updated_files.append(outfile) |
| - self.copy_file(script, outfile) |
| + updated_files.append(outfile) |
| + self.copy_file(script, outfile) |
| |
| if os.name == 'posix': |
| for file in outfiles: |