diff options
author | Miro Hron\v{c}ok <miro@hroncok.cz> | 2020-10-27 14:33:46 -0700 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-10-27 14:33:46 -0700 |
commit | e21d46fddd0753e66a4acda88317670fee07f3e6 (patch) | |
tree | b9182fc9804eac7a89708defed3a5190cacb9667 | |
parent | 310edf02fb3f6da76500c813900d4cea7d9f36d8 (diff) | |
download | automake-e21d46fddd0753e66a4acda88317670fee07f3e6.tar.gz |
python: determine Python (3.10) version number correctly.
This change fixes https://bugs.gnu.org/44239
(and https://bugzilla.redhat.com/show_bug.cgi?id=1889732).
* m4/python.m4: use print('%u.%u' % sys.version_info[:2]) for
the version number instead of merely sys.version[:3], so the
numbers are treated as numbers.
* t/python-vars.sh (PYTHON_VERSION): Likewise.
* doc/automake.texi: Document it.
* NEWS: mention it. (Minor tweaks from Karl Berry.)
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | doc/automake.texi | 2 | ||||
-rw-r--r-- | m4/python.m4 | 12 | ||||
-rw-r--r-- | t/python-vars.sh | 4 |
4 files changed, 13 insertions, 7 deletions
@@ -71,6 +71,8 @@ New in ?.?.?: * Bugs fixed + - Python 3.10 version number no longer considered to be 3.1. + - Broken links in manual fixed or removed, and new script contrib/checklinkx (a small modification of W3C checklink) added, with accompany target checklinkx to recheck urls. diff --git a/doc/automake.texi b/doc/automake.texi index ed7e2e242..17bc2dae6 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -7861,7 +7861,7 @@ AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :]) @item PYTHON_VERSION The Python version number, in the form @var{major}.@var{minor} (e.g., @samp{2.5}). This is currently the value of -@samp{sys.version[:3]}. +@samp{'%u.%u' % sys.version_info[:2]}. @item PYTHON_PREFIX The string @samp{$@{prefix@}}. This term may be used in future work diff --git a/m4/python.m4 b/m4/python.m4 index 16c2f4f1a..b2302baa3 100644 --- a/m4/python.m4 +++ b/m4/python.m4 @@ -1,7 +1,7 @@ ## ------------------------ -*- Autoconf -*- ## Python file handling ## From Andrew Dalke -## Updated by James Henstridge +## Updated by James Henstridge and other contributors. ## ------------------------ # Copyright (C) 1999-2020 Free Software Foundation, Inc. # @@ -86,12 +86,14 @@ AC_DEFUN([AM_PATH_PYTHON], m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) else - dnl Query Python for its version number. Getting [:3] seems to be - dnl the best way to do this; it's what "site.py" does in the standard - dnl library. + dnl Query Python for its version number. Although site.py simply uses + dnl sys.version[:3], printing that failed with Python 3.10, since the + dnl trailing zero was eliminated. So now we output just the major + dnl and minor version numbers, as numbers. Apparently the tertiary + dnl version is not of interest. AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], - [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) + [am_cv_python_version=`$PYTHON -c "import sys; print('%u.%u' % sys.version_info[[:2]])"`]) AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) dnl Use the values of $prefix and $exec_prefix for the corresponding diff --git a/t/python-vars.sh b/t/python-vars.sh index 5c748bcf1..b53018b37 100644 --- a/t/python-vars.sh +++ b/t/python-vars.sh @@ -28,7 +28,9 @@ CONFIG_SITE=/dev/null; export CONFIG_SITE # vary among different python installations, so we need more relaxed # and ad-hoc checks for them. Also, more proper "functional" checks # on them should be done in the 'python-virtualenv.sh' test. -PYTHON_VERSION=$($PYTHON -c 'import sys; print(sys.version[:3])') || exit 1 +# +# This version identification is duplicated in python.m4 (and the manual). +PYTHON_VERSION=$($PYTHON -c 'import sys; print("%u.%u" % sys.version_info[:2])') || exit 1 PYTHON_PLATFORM=$($PYTHON -c 'import sys; print(sys.platform)') || exit 1 PYTHON_EXEC_PREFIX='${exec_prefix}' PYTHON_PREFIX='${prefix}' |