There were three problems:
- sys.version was not imported
- sys.version[:3] is not reliable on Python 3.10+
- distutils is deprecated on Python 3.10+
We were not hit by the missing import in Fedora because we only run the script
on .dist-info/.egg-info/.egg and not on .py files, so this if-branch never runs.
But when the script was fed with a .py path, it errored:
Traceback (most recent call last):
File "/usr/lib/rpm/pythondistdeps.py", line 344, in <module>
purelib = get_python_lib(standard_lib=0, plat_specific=0).split(version[:3])[0]
NameError: name 'version' is not defined
The sys.version[:3] thing kinda works for Python 3.10+ because *in this
particular case* splitting on '3.1' and taking the prefix yields the same
results as splitting on '3.10', but I consider that mere coincidence.
Finally, since the distutils import happened at module-level,
we got the Deprecation warning in all Fedora's Python packages:
/usr/lib/rpm/pythondistdeps.py:16: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12
Backported from https://github.com/rpm-software-management/python-rpm-packaging/commit/d12e039037
Related: rhbz#1950291