Current implementation of %python3_version and %python3_version_nodots will break with Python 3.10: %python3_version %(%{__python3} -Ic "import sys; sys.stdout.write(sys.version[:3])") %python3_version_nodots %(%{__python3} -Ic "import sys; sys.stdout.write(sys.version[:3].replace('.',''))") sys.version[:3] will be '3.1' on Python 3.10. Interestingly, %python2_version and %python_version are defined correctly in this regard: macros.python2 %python2_version %(%{__python2} -Esc "import sys; sys.stdout.write('{0.major}.{0.minor}'.format(sys.version_info))") %python2_version_nodots %(%{__python2} -Esc "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))") macros.python %python_version %(%{__python} -Esc "import sys; sys.stdout.write('{0.major}.{0.minor}'.format(sys.version_info))") %python_version_nodots %(%{__python} -Esc "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))")
There are other packages where this will break: $ rg -F 'sys.version[' rpm-specs/ rpm-specs/python-fedmsg-meta-fedora-infrastructure.spec 8:%{!?py2ver: %global py2ver %(%{?__python2} -c 'import sys; print(sys.version[0:3])' 2>/dev/null)} 10:%{!?py3ver: %global py3ver %(%{?__python3} -c 'import sys; print(sys.version[0:3])' 2>/dev/null)} rpm-specs/python-logging-tree.spec 2:%{!?py3ver: %global py3ver %(%{__python3} -c "import sys ; print(sys.version[:3])")} rpm-specs/lcgdm.spec 527: '/config -lpython' + sys.version[:3] \ rpm-specs/cherrytree.spec 2:%global py_ver %(if [ -f "%{__python}" ]; then %{__python} -c "import sys; sys.stdout.write(sys.version[:3])"; else echo 0; fi;) rpm-specs/moksha.spec 2:%{!?pyver: %define pyver %(%{__python} -c "import sys ; print sys.version[:3]")} rpm-specs/odcs.spec 6:%{!?pyver: %global pyver %(%{__python} -c "import sys ; print sys.version[:3]")} rpm-specs/python-dockerfile-parse.spec 4:%{!?python2_version: %global python2_version %(%{__python2} -c "import sys; sys.stdout.write(sys.version[:3])")} rpm-specs/python-zc-buildout.spec 9:%{!?py3ver: %global py3ver %(%{__python3} -c "import sys ; print(sys.version[:3])")} 11:%{!?py2ver: %global py2ver %(%{__python2} -c "import sys ; print sys.version[:3]")} rpm-specs/python-webob.spec 3:%{!?py3ver: %global py3ver %(%{__python3} -c "import sys ; print(sys.version[:3])")} 6:%{!?py2ver: %global py2ver %(%{__python} -c "import sys ; print sys.version[:3]")} rpm-specs/python-easygui.spec 3:%{!?python_version: %global python_version %(%{__python} -c "import sys ; print sys.version[:3]")} 6:%{!?python3_version: %global python3_version %(%{__python3} -c "import sys; sys.stdout.write(sys.version[:3])")} rpm-specs/openvdb.spec 1:%global python_version %(%{__python3} -c "import sys ; print(sys.version[:3])") rpm-specs/blender.spec 178: -DPYTHON_VERSION=$(%{__python3} -c "import sys ; print(sys.version[:3])") \
https://src.fedoraproject.org/rpms/python-rpm-macros/pull-request/30
Leaving open to fix all the packages above.
$ rg -F 'sys.version[' rpm-specs/ rpm-specs/odcs.spec 6:%{!?pyver: %global pyver %(%{__python} -c "import sys ; print sys.version[:3]")} rpm-specs/python-dockerfile-parse.spec 4:%{!?python2_version: %global python2_version %(%{__python2} -c "import sys; sys.stdout.write(sys.version[:3])")} rpm-specs/python-zc-buildout.spec 9:%{!?py3ver: %global py3ver %(%{__python3} -c "import sys ; print(sys.version[:3])")} 11:%{!?py2ver: %global py2ver %(%{__python2} -c "import sys ; print sys.version[:3]")} rpm-specs/python-easygui.spec 3:%{!?python_version: %global python_version %(%{__python} -c "import sys ; print sys.version[:3]")} 6:%{!?python3_version: %global python3_version %(%{__python3} -c "import sys; sys.stdout.write(sys.version[:3])")} rpm-specs/openvdb.spec 1:%global python_version %(%{__python3} -c "import sys ; print(sys.version[:3])") rpm-specs/blender.spec 178: -DPYTHON_VERSION=$(%{__python3} -c "import sys ; print(sys.version[:3])") \
https://src.fedoraproject.org/rpms/odcs/pull-request/4 python-dockerfile-parse only has it with RHEL <= 6 and python2 python-zc-buildout is orphaned for 6 weeks and will be retired soon https://src.fedoraproject.org/rpms/python-easygui/pull-request/2 https://src.fedoraproject.org/rpms/openvdb/pull-request/1 https://src.fedoraproject.org/rpms/blender/pull-request/7
FEDORA-2019-f7d435cd16 has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2019-f7d435cd16
python-rpm-macros-3-49.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-f7d435cd16
python-rpm-macros-3-49.fc31 has been pushed to the Fedora 31 stable repository. If problems still persist, please make note of it in this bug report.