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.
Avram