On 05/24/18 01:01, Miro HronĨok wrote:
On 24.5.2018 00:56, Adam Williamson wrote:
> The thing you're missing - which the Change doesn't explicitly state,
> so it's understandable - is the effect of having the python2 package
> Recommend the package with /usr/bin/python in it.
>
> For *user* systems that will mean that package always gets installed
> alongside python2, including that it should get installed on
> update/upgrade. They could then manually remove it, but this is the
> only way they could get into trouble - by default, both existing and
> new installs should have /usr/bin/python. This is because dnf's default
> behaviour is to install Recommends/Supplements.
>
> However, for *package builds*, Recommends/Supplements are not
> installed. So *package builds* which only BuildRequire python2 or
> whatever would not get /usr/bin/python , and would thus fail. The
> packager could always just add BuildRequires python-unversioned-command
> to "fix" the problem, which is probably the fix we don't want them to
> do, but at least then we have a handy way to identify recalcitrant
> packages, and their maintainers can't pretend they weren't aware of the
> problem and didn't actively decide to take the lazy way out.
I guess this needs to be added to the change proposal. I won't have time
to do this now, so cc'ing Petr.
I'm not sure where to add this information. I see the Change as full of
clear explanations of the above, but since I helped write it and know
the technical details, it's hard for me to communicate this to people
(especially those biased towards the view that we're breaking things
without cause).
Could you help me out with a more concrete proposal on what to change in
the text?
For reference:
# Abstract:
In Fedora's build system, only packages explicitly buildrequiring
/usr/bin/python will get it.
# Detailed description:
Packages that need /usr/bin/python to build will need to BuildRequire
it. Packages that need /usr/bin/python to be used by users will need to Require it. In
both cases, the packager should avoid the need and only fallback to (Build)Requiring
/usr/bin/python as a temporary workaround.
The new package will virtually provide python, ensuring that dnf
install python will make the python command available.
# Don't (Build)Require python-unversioned-command, but /usr/bin/python
If this change ever gets obsoleted, or for older Fedoras support, we
ask the maintainers who fallback to (Build)Requiring /usr/bin/python, not to use the
package name for the dependency, but the executable path instead.
# Scope:
Maintainers of packages that use /usr/bin/python need to switch to
using /usr/bin/python3 or /usr/bin/python2 explicitly (with help from Proposal owners if
needed). [further instructions/recommendations follow]
# Upgrade/compatibility impact:
All packages that rely on /usr/bin/python need to change to
/usr/bin/python2, or add explicit (Build)Requires.
Advanced users that don't install recommended packages by default will either have to
install /usr/bin/python manually or live without it. Generally, the users should not be
affected by this change.
User Experience
Advanced users might uninstall the /usr/bin/python link if they want
to. Others don't need to deal with this change.