pypy3.7 was retired in Fedora 37.
pypy3.9-7.3.9-4.3.9.fc37 is available in Fedora 37
pypy3.7-7.3.9-4.3.7.fc35/36 was the latest available in Fedora 35/36.
Fedora 35/36 users attempting to update to Fedora 37+ are getting
the not-up-to-date pypy3.9-7.3.9-3.3.9.fc37 as that is a version
does not explicitly conflict with their pypy3.7 version.
However, such update has a file conflict and will fail later:
$ rpm -q pypy3.7
pypy3.7-7.3.9-4.3.7.fc35.x86_64
$ rpm -q pypy3.9
pypy3.9-7.3.9-4.3.9.fc35.x86_64
$ sudo dnf --releasever=37 --assumeno distro-sync
...
Downgrading:
pypy3.9 x86_64 7.3.9-3.3.9.fc37 fedora 14 k
pypy3.9-libs x86_64 7.3.9-3.3.9.fc37 fedora 17 M
...
Error: Transaction test error:
file /usr/bin/pypy3 from install of pypy3.9-7.3.9-3.3.9.fc37.x86_64 conflicts with file from package pypy3.7-7.3.9-4.3.7.fc35.x86_64
$ sudo dnf --releasever=37 upgrade
...
Problem 1: package pypy3.9-7.3.9-4.3.9.fc37.x86_64 conflicts with pypy3 < 7.3.9-4.3.9.fc37 provided by pypy3.7-7.3.9-4.3.7.fc35.x86_64
- cannot install the best update candidate for package pypy3.9-7.3.9-4.3.9.fc35.x86_64
- problem with installed package pypy3.7-7.3.9-4.3.7.fc35.x86_64
Problem 2: problem with installed package pypy3.9-7.3.9-4.3.9.fc35.x86_64
- package pypy3.9-7.3.9-4.3.9.fc35.x86_64 requires pypy3.9-libs(x86-64) = 7.3.9-4.3.9.fc35, but none of the providers can be installed
- package pypy3.9-7.3.9-4.3.9.fc37.x86_64 conflicts with pypy3 < 7.3.9-4.3.9.fc37 provided by pypy3.7-7.3.9-4.3.7.fc35.x86_64
- cannot install both pypy3.9-libs-7.3.9-4.3.9.fc37.x86_64 and pypy3.9-libs-7.3.9-4.3.9.fc35.x86_64
- package pypy3.7-libs-7.3.9-4.3.7.fc35.x86_64 requires /usr/bin/pypy3.7, but none of the providers can be installed
- cannot install the best update candidate for package pypy3.9-libs-7.3.9-4.3.9.fc35.x86_64
- problem with installed package pypy3.7-libs-7.3.9-4.3.7.fc35.x86_64
By obsoleting pypy3.7 < 7.3.9-20 we allow some security backports in Fedora 35 and 36.
PyPy 7.3.10+ no longer exists for Python 3.7.
Eventually, the version of pypy3.7 in Fedora 35 might be updated.
This way, when users attempt a partial update to Fedora 36+,
the upgrade path will always be preserved.
(Considering we will not bump the base release of 3.7 to be higher than the one here.
This also means we should always update pypy3.9 first over all lower Python versions.)
and make pypy versions with otherwise the same version-release always sorted
by Python version as well.
This potentially allows tags like Obsoletes: pypy3 < %{version}-%{release}.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2053880