Bug 1776783

Summary: Cannot upgrade from libxml2-2.9.9-6.fc32.x86_64
Product: [Fedora] Fedora Reporter: Lukas Slebodnik <lslebodn>
Component: libxml2Assignee: Igor Raits <igor.raits>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 32CC: c.david86, grgoffe, igor.raits, jpokorny, veillard
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-02-28 12:13:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Lukas Slebodnik 2019-11-26 11:46:00 UTC
Description of problem:
It is not possible to upgrade libxml2 without any additional flags to dnf
--best --allowerasing. But using --allowerasing in automated scripts is dangerous.


Version-Release number of selected component (if applicable):
python2-libxml2-2.9.9-6.fc32.x86_64

How reproducible:
Deterministic

Steps to Reproduce:
  // install package python2-libxml2 (we will use f31 container image but you can do that on rawhide from koji)
1. docker run -ti --rm docker.io/fedora:31 bash
   //run rest of commands in container
2. dnf install -y python2-libxml2 fedora-repos-rawhide
3. dnf --disablerepo=* --enablerepo=rawhide update -y libxml2

Actual results:
[root@5ce4d1240279 /]# dnf --disablerepo=* --enablerepo=rawhide update -y libxml2
Last metadata expiration check: 0:00:41 ago on Tue Nov 26 11:44:23 2019.
Dependencies resolved.

 Problem: cannot install both libxml2-2.9.10-1.fc32.x86_64 and libxml2-2.9.10-1.fc31.x86_64
  - package python2-libxml2-2.9.10-1.fc31.x86_64 requires libxml2(x86-64) = 2.9.10-1.fc31, but none of the providers can be installed
  - cannot install the best update candidate for package libxml2-2.9.10-1.fc31.x86_64
  - problem with installed package python2-libxml2-2.9.10-1.fc31.x86_64
================================================================================
 Package          Architecture    Version                Repository        Size
================================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 libxml2          x86_64          2.9.10-1.fc32          rawhide          693 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-libxml2
But it does not scale if you have to maintain updates on many machines.

Comment 1 Lukas Slebodnik 2019-11-26 11:48:00 UTC
Usually, it is in the fedora-obsolete-packages for pure python packages.
But it is simpler to do that in the libxml2 because python2-libxml2 and python3-libxml2 require it.

Comment 2 Jan Pokorný [poki] 2020-01-03 21:10:41 UTC
Something like

> Obsoletes: python2-libxml2 < %{version}

in the spec of Fedora Rawhide/32?

(you seem to be oriented in the matter, PR would work best,
now that I gained the admin perms)

Comment 3 Jan Pokorný [poki] 2020-01-03 21:15:02 UTC
*** Bug 1769566 has been marked as a duplicate of this bug. ***

Comment 4 Lukas Slebodnik 2020-02-05 12:51:57 UTC
(In reply to Jan Pokorný [poki] from comment #2)
> Something like
> 
> > Obsoletes: python2-libxml2 < %{version}
> 
> in the spec of Fedora Rawhide/32?
> 
> (you seem to be oriented in the matter, PR would work best,
> now that I gained the admin perms)

Here you are:
https://src.fedoraproject.org/rpms/libxml2/pull-request/8

Comment 5 Ben Cotton 2020-02-11 17:18:55 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 6 Lukas Slebodnik 2020-02-28 12:10:25 UTC
$ repoquery --repo=fedora --releasever 32 --whatobsoletes python2-libxml2
fedora-obsolete-packages-0:32-36.noarch

$ repoquery --repo=fedora --releasever 32 --obsoletes fedora-obsolete-packages | grep python2-libxml2
python2-libxml2 < 2.9.10-4

Comment 7 George R. Goffe 2020-02-29 20:35:37 UTC
Lukas,

Thanks for your hard work!

Best regards,

George...