Support multiple digits in Python version, e.g. Python 3.10

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1889732
This commit is contained in:
Miro Hrončok 2020-10-22 22:08:37 +02:00
parent 7640c90871
commit 3327906e94
2 changed files with 94 additions and 1 deletions

View File

@ -0,0 +1,84 @@
From e21d46fddd0753e66a4acda88317670fee07f3e6 Mon Sep 17 00:00:00 2001
From: "Miro Hron\\v{c}ok" <miro@hroncok.cz>
Date: Tue, 27 Oct 2020 14:33:46 -0700
Subject: [PATCH] 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.)
---
NEWS | 2 ++
doc/automake.texi | 2 +-
m4/python.m4 | 12 +++++++-----
t/python-vars.sh | 4 +++-
4 files changed, 13 insertions(+), 7 deletions(-)
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}'
--
2.29.0

View File

@ -15,7 +15,7 @@ Summary: A GNU tool for automatically creating Makefiles
Name: automake
# Any bump here requires libtool rebuild, rhbz#1813010
Version: %{api_version}.2
Release: 2%{?dist}
Release: 3%{?dist}
# docs ~> GFDL, sources ~> GPLv2+, mkinstalldirs ~> PD and install-sh ~> MIT
License: GPLv2+ and GFDL and Public Domain and MIT
@ -29,6 +29,11 @@ Source3: http://git.savannah.gnu.org/cgit/config.git/plain/config.guess
Patch0: automake-1.15-disable-vala-tests.patch
%endif
# Support multiple digits in Python version, e.g. Python 3.10
# Taken from upstream commit (NEWS hunks removed due to conflicts)
# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44239
Patch1: automake-1.16.2-python-version-multiple-digits.patch
URL: http://www.gnu.org/software/automake/
Requires: autoconf >= 2.65
@ -137,6 +142,10 @@ make -k %{?_smp_mflags} check %{?TESTS_FLAGS: TESTS="%{TESTS_FLAGS}"} \
%changelog
* Thu Oct 22 2020 Miro Hrončok <mhroncok@redhat.com> - 1.16.2-3
- Support multiple digits in Python version, e.g. Python 3.10
- Fixes: rhbz#1889732
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild