On Fedora 37+, obsolete the pypy3.7 package which is no longer available

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.
This commit is contained in:
Miro Hrončok 2022-12-02 18:03:32 +01:00
parent f429fecdd7
commit 6414747578

View File

@ -10,7 +10,7 @@ Version: %{basever}.%{micro}%{?pre:~%{pre}}
# by Python version as well.
# This potentially allows tags like Obsoletes: pypy3 < %%{version}-%%{release}.
# https://bugzilla.redhat.com/2053880
%global baserelease 4
%global baserelease 5
Release: %{baserelease}.%{pyversion}%{?dist}
Summary: Python %{pyversion} implementation with a Just-In-Time compiler
@ -215,6 +215,9 @@ Provides: pypy3%{?_isa} = %{version}-%{release}
Obsoletes: pypy3 < 7.3.4-4
# This is when pypy3 was provided by pypy3.8:
Conflicts: pypy3 < %{version}-%{release}
%if 0%{?fedora} >= 37
Obsoletes: pypy3.7 < 7.3.9-20
%endif
%endif
# This prevents ALL subpackages built from this spec to require
@ -251,6 +254,9 @@ Requires: emacs-filesystem >= %{_emacs_version}
Provides: pypy3-libs = %{version}-%{release}
Provides: pypy3-libs%{?_isa} = %{version}-%{release}
Obsoletes: pypy3-libs < 7.3.4-4
%if 0%{?fedora} >= 37
Obsoletes: pypy3.7-libs < 7.3.9-20
%endif
%endif
%if %{with rpmwheels}
@ -294,6 +300,9 @@ Requires: pypy%{pyversion}-libs%{?_isa} = %{version}-%{release}
%if %{with main_pypy3}
Provides: pypy3-test = %{version}-%{release}
Provides: pypy3-test%{?_isa} = %{version}-%{release}
%if 0%{?fedora} >= 37
Obsoletes: pypy3.7-test < 7.3.9-20
%endif
%endif
%description test
@ -310,6 +319,9 @@ Requires: pypy%{pyversion}-libs%{?_isa} = %{version}-%{release}
Provides: pypy3-devel = %{version}-%{release}
Provides: pypy3-devel%{?_isa} = %{version}-%{release}
Obsoletes: pypy3-devel < 7.3.4-4
%if 0%{?fedora} >= 37
Obsoletes: pypy3.7-devel < 7.3.9-20
%endif
%endif
Supplements: tox
@ -842,6 +854,9 @@ CheckPyPy pypy%{pyversion}-c
%changelog
* Fri Dec 02 2022 Miro Hrončok <mhroncok@redhat.com> - 7.3.9-5.3.9
- On Fedora 37+, obsolete the pypy3.7 package which is no longer available
* Mon Oct 10 2022 Lumír Balhar <lbalhar@redhat.com> - 7.3.9-4.3.9
- Backport fix for CVE-2021-28861
Resolves: rhbz#2120789