On Mon, Jun 3, 2019 at 10:51 AM Sérgio Basto <sergio(a)serjux.com> wrote:
Hi,
These removed python2 packages are breaking upgrade path
1- when you remove python2-foo , you should add to main package
Obsoletes: python2-foo
If I may suggest, *absolutely not*. "Obsoletes: python2-foo"
specifically means that it includes and provides "python2-foo"
functionality, and "python3-foo" packages *do not* provide this. There
are a very few tools that put things in "/usr/bin" for typical use,
such as the "rpm" package itself which might benefit from such
options. But I think it's quite dangerous to replace them willy-nilly
due to compatibility for old packages which would have their
requirements replaced with something quite incompatible without
notification.
2- IMHO you should just remove python2-foo only on latest branches,
please don't forget epel7 case, so please add something like :
%if 0%{?fedora} >= 30
%endif
Much too late for this release, I think. And dangerous for third party
python modules that have not been upgraded to python3 to break them
without notice. I think it would be much safer, if desired to force
migration, to use this:
%global pypi_name foo
%if 0%{?fedora} >= 30 || 0%{?rhel} >= 8
Conflicts: python2-%{pypi_name} >= %{verson}-%{release}
%endif
This would avoid touching older versions of the python2-foo modules
for compatibility with old packages, and block ongoing updates until
the older modules can be replaced. There are a potential few conflicts
that drop binaries in "/usr/bin/foo", tools such as "awscli". Those
might need review on a case by case basis, but they often have a
package without "python2-" in the name, and don't face the same
"python2/python3-" package split issue.
Does this make sense to you