I wasn't able to find much recent discussion on this, but I'm a bit
frustrated that there is so much manual work being done creating
symlinks when a system already exists for that.
It seem many
projects which support both python2 and python3 are depending on a
hardcoded shebang, install order, or symlink creation in the spec file
to set which version of python to use. It also seems the py*_build
macros are hardcoded to use a versioned python interpreter for shebang
lines.
Frankly I feel like I should be able to use
/usr/bin/python or /usr/bin/env python and that should point to a non
version-specifc python interpreter. If I have definite dependencies on a
specific interpreter, then it is my responsibility to set my shebang
appropriately. Otherwise, if my project has an unversioned executable, I
have to change it based on my will and the Fedora version, rather than
the will of the end user. Maybe they prefer python2, python3, or some
other distribution of python becomes popular later (pypy?). If I don't
have hard dependencies, why should I force a version? And why should I
need to have conditionals on the Fedora version or maintain two spec
files?
Assuming an end user never touches the default
configuration, dependencies should already be taken care of with
python_provides since unversioned dependencies should default to the
release default.
Whether /usr/bin/python is
symlinked using alternatives or another method, the py*_build macros
should have a mechanism to overwrite the executable value.