diff options
author | Christian Heimes <christian@python.org> | 2021-11-23 20:36:40 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-23 20:36:40 (GMT) |
commit | f840398a5fd8741653c26eb8641c48656c9800d4 (patch) | |
tree | 60e0df1663a23a1f4519eaa2d05d46d74ec74cc8 | |
parent | 4ae26b9c1d0c33e3db92c6f305293f9240dea358 (diff) | |
download | cpython-f840398a5fd8741653c26eb8641c48656c9800d4.zip cpython-f840398a5fd8741653c26eb8641c48656c9800d4.tar.gz cpython-f840398a5fd8741653c26eb8641c48656c9800d4.tar.bz2 |
bpo-45873: Restore Python 3.6 compatibility (GH-29730)
Co-authored-by: Guido van Rossum <gvanrossum@gmail.com>
-rw-r--r-- | Tools/scripts/deepfreeze.py | 8 | ||||
-rwxr-xr-x | configure | 12 | ||||
-rw-r--r-- | configure.ac | 11 |
3 files changed, 28 insertions, 3 deletions
diff --git a/Tools/scripts/deepfreeze.py b/Tools/scripts/deepfreeze.py index b840c4b..e51a408 100644 --- a/Tools/scripts/deepfreeze.py +++ b/Tools/scripts/deepfreeze.py @@ -5,8 +5,10 @@ import collections import contextlib import os import re +import sys import time import types +import unicodedata from typing import Dict, FrozenSet, Tuple, TextIO import umarshal @@ -14,9 +16,13 @@ import umarshal verbose = False +def isprintable(b: bytes) -> bool: + return all(0x20 <= c < 0x7f for c in b) + + def make_string_literal(b: bytes) -> str: res = ['"'] - if b.isascii() and b.decode("ascii").isprintable(): + if isprintable(b): res.append(b.decode("ascii").replace("\\", "\\\\").replace("\"", "\\\"")) else: for i in b: @@ -3142,7 +3142,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # pybuilddir.txt will be created by --generate-posix-vars in the Makefile rm -f pybuilddir.txt -for ac_prog in python$PACKAGE_VERSION python3 python +for ac_prog in python$PACKAGE_VERSION python3.10 python3.9 python3.8 python3.7 python3.6 python3 python do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -3187,6 +3187,16 @@ test -n "$PYTHON_FOR_REGEN" || PYTHON_FOR_REGEN="python3" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Python for regen version" >&5 +$as_echo_n "checking Python for regen version... " >&6; } +if command -v $PYTHON_FOR_REGEN >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $($PYTHON_FOR_REGEN -V 2>/dev/null)" >&5 +$as_echo "$($PYTHON_FOR_REGEN -V 2>/dev/null)" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5 +$as_echo "missing" >&6; } +fi + if test "$cross_compiling" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for python interpreter for cross build" >&5 $as_echo_n "checking for python interpreter for cross build... " >&6; } diff --git a/configure.ac b/configure.ac index ba22418..e539d3b 100644 --- a/configure.ac +++ b/configure.ac @@ -96,9 +96,18 @@ AC_SUBST(host) # pybuilddir.txt will be created by --generate-posix-vars in the Makefile rm -f pybuilddir.txt -AC_CHECK_PROGS(PYTHON_FOR_REGEN, python$PACKAGE_VERSION python3 python, python3) +AC_CHECK_PROGS([PYTHON_FOR_REGEN], + [python$PACKAGE_VERSION python3.10 python3.9 python3.8 python3.7 python3.6 python3 python], + [python3]) AC_SUBST(PYTHON_FOR_REGEN) +AC_MSG_CHECKING([Python for regen version]) +if command -v $PYTHON_FOR_REGEN >/dev/null 2>&1; then + AC_MSG_RESULT([$($PYTHON_FOR_REGEN -V 2>/dev/null)]) +else + AC_MSG_RESULT([missing]) +fi + if test "$cross_compiling" = yes; then AC_MSG_CHECKING([for python interpreter for cross build]) if test -z "$PYTHON_FOR_BUILD"; then |