Bug 1775113 - Cannot upgrade from rpm-libs-4.15.0-1.fc32
Summary: Cannot upgrade from rpm-libs-4.15.0-1.fc32
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: rpm
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Packaging Maintenance Team
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-11-21 12:18 UTC by Lukas Slebodnik
Modified: 2020-01-13 07:42 UTC (History)
8 users (show)

Fixed In Version: rpm-4.15.1-2.fc32
Clone Of:
Environment:
Last Closed: 2020-01-09 11:17:34 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Lukas Slebodnik 2019-11-21 12:18:55 UTC
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.

Comment 1 Panu Matilainen 2019-11-21 12:31:30 UTC
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)

Comment 2 Miro Hrončok 2019-11-21 12:34:36 UTC
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)?

Comment 3 Panu Matilainen 2019-11-21 12:39:27 UTC
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.

Comment 4 Miro Hrončok 2019-11-21 12:44:09 UTC
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.)

Comment 5 Panu Matilainen 2019-11-21 13:25:22 UTC
Okay, lets do this in rpm instead then, probably easier for everybody that way. Thanks for the feedback.

Comment 6 Panu Matilainen 2020-01-08 06:38:08 UTC
*** Bug 1788089 has been marked as a duplicate of this bug. ***

Comment 7 Panu Matilainen 2020-01-09 11:17:34 UTC
Should be fixed in rpm-4.15.1-2.fc32.

Comment 8 Panu Matilainen 2020-01-13 07:42:31 UTC
Clearing leftover needinfo.


Note You need to log in before you can comment on or make changes to this bug.