Description of problem: It is not possible to upgrade repm without any additional flags to dnf --best --allowerasing. But using --allowerasing in automated scripts is dangerous. Version-Release number of selected component (if applicable): rpm-4.15.1-1.fc32.x86_64 How reproducible: Deterministic Steps to Reproduce: // install package python2-rpm () we will use f31 contianer image but you can do that on rahide from koji 1. docker run -ti --rm docker.io/fedora:31 bash //run rest of commands in container 2. dnf install -y python2-rpm fedora-repos-rawhide 3. dnf --disablerepo=* --enablerepo=rawhide update -y rpm Actual results: [root@74fe8459ea5f /]# dnf --disablerepo=* --enablerepo=rawhide update -y rpm Fedora - Rawhide - Developmental packages for t 29 MB/s | 70 MB 00:02 Last metadata expiration check: 0:00:15 ago on Thu Nov 21 12:16:58 2019. Dependencies resolved. Problem: package rpm-libs-4.15.0-6.fc31.x86_64 requires rpm = 4.15.0-6.fc31, but none of the providers can be installed - cannot install both rpm-4.15.1-1.fc32.x86_64 and rpm-4.15.0-6.fc31.x86_64 - package python2-rpm-4.15.0-6.fc31.x86_64 requires rpm-libs(x86-64) = 4.15.0-6.fc31, but none of the providers can be installed - cannot install the best update candidate for package rpm-4.15.0-6.fc31.x86_64 - problem with installed package python2-rpm-4.15.0-6.fc31.x86_64 ================================================================================ Package Architecture Version Repository Size ================================================================================ Skipping packages with conflicts: (add '--best --allowerasing' to command line to force their upgrade): rpm x86_64 4.15.1-1.fc32 rawhide 499 k Transaction Summary ================================================================================ Skip 1 Package Nothing to do. Complete! Expected results: The package is upgraded without any problem Additional info: temporary workaround: dnf remove -y python2-rpm But it does not scale if you have to maintain updates on many machines.
AIUI from https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal, these are supposed to be handled centrally via fedora-obsolete-packages. Reassigning, but feel free to bounce back if you'd rather have this handled by python3-rpm obsoleting python2-rpm (that doesn't seem unreasonable either)
Panu, do you except to update rpm in Fedora 31 or lower beyond the current Fedora 32 (epoch:)version-release? i.e. if I put this into fedora-obsolete-packages: Obsoletes: python2-rpm < 4.15.1-2 Is it expected that the line would need to be updated in the future (I mean regularly, not just in exceptional cases)?
Oh, obsolete ranges, totally forgot (I really should do more packaging)... I do expect further updates to the 4.15 line. I'd actually suggest using < 4.16.0 as the range, 4.15 will be the last upstream major version to supports python2 anyway.
I can do that, but in the unlikely need to reintroduce python2-rpm 4.15.666 in rawhide, this will generate problems. May I suggest to handle this from the base rpm package instead? It allows to use: Obsoletes: python2-rpm < %{version}-%{release} Later, once 4.16 is out, we can hardcode it (either there or in fedora-obsolete-packages). I also suggest to do it in "rpm" over "python3-rpm" - it's not like former users of python2-rpm actually need python3-rpm, but I guess they still need rpm itself. (However, this is all suggestions. If you prefer to obsolete python2-rpm < 4.16.0 from fedora-obsolete-packages, I can do that.)
Okay, lets do this in rpm instead then, probably easier for everybody that way. Thanks for the feedback.
*** Bug 1788089 has been marked as a duplicate of this bug. ***
Should be fixed in rpm-4.15.1-2.fc32.
Clearing leftover needinfo.