Bug 1437230 - Dependency resolution in "remove new, install old" using "yum shell" is not ordered per expectation
Summary: Dependency resolution in "remove new, install old" using "yum shell" is not o...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: yum
Version: 7.4
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Packaging Maintenance Team
QA Contact: BaseOS QE Security Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-03-29 20:14 UTC by Jan Pokorný [poki]
Modified: 2018-09-24 12:50 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-09-24 12:50:55 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Jan Pokorný [poki] 2017-03-29 20:14:56 UTC
# yum install clufter
> [...]
# rpm -q clufter-cli
> clufter-cli-0.70.0-1.el7.noarch
# yum shell
> > remove clufter-* *-clufter
> > downgrade python-clufter
> > run
> --> Running transaction check
> ---> Package clufter-bin.x86_64 0:0.70.0-1.el7 will be erased
> ---> Package clufter-cli.noarch 0:0.59.5-2.el7 will be installed
> --> Processing Dependency: python-clufter = 0.59.5-2.el7 for package: clufter-cli-0.59.5-2.el7.noarch
> Package python-clufter-0.59.5-2.el7.x86_64 is obsoleted by python2-clufter-0.70.0-1.el7.noarch which is already installed
> ---> Package clufter-cli.noarch 0:0.70.0-1.el7 will be erased
> ---> Package clufter-common.noarch 0:0.70.0-1.el7 will be erased
> ---> Package python2-clufter.noarch 0:0.70.0-1.el7 will be erased
> --> Finished Dependency Resolution
> Error: Package: clufter-cli-0.59.5-2.el7.noarch (beaker-Server-HighAvailability2)
>     Requires: python-clufter = 0.59.5-2.el7
>     Removing: python2-clufter-0.70.0-1.el7.noarch (@beaker-Server-HighAvailability)
>         python-clufter = 0.70.0-1.el7
>     Available: python-clufter-0.59.5-2.el7.x86_64 (beaker-Server-HighAvailability2)
>         python-clufter = 0.59.5-2.el7

I guess, if only it would not try to evaluate installation of
clufter-cli-0.59.5-2 before all packages to be erased (at version
0.70.0-1) are evaluated, it would not choke on:

> Package python-clufter-0.59.5-2.el7.x86_64 is obsoleted by python2-clufter-0.70.0-1.el7.noarch which is already installed

that is, python2-clufter-0.70.0-1.el7.noarch would not be considered
"installed" by the time python-clufter-0.59.5-2.el7.x86_64 would be
evaluated for installation.


Reason I got to "yum shell" is that I am looking for a solution to
"downgrade-through-inverse-obsoletes", which currently seems only
solvable using "rpm -e --nodeps" dirty trick, which is a shame.

Comment 2 Jan Pokorný [poki] 2017-03-29 20:18:42 UTC
Sorry, copy-pasted wrong commands entered at yum shell (the outputs
are well-copied, though).  It should have been:

# yum shell
> > remove clufter-* python*-clufter
> > install clufter-cli-0.59.5
> > run

Comment 3 Jan Pokorný [poki] 2017-03-29 20:37:43 UTC
Note that this actually works correctly in "dnf shell" in Fedora
that's in almost identical situation with clufter + Obsoletes.
(the only difference is dnf requires %{release} in full, incl. ".fc26",
for instance)

Comment 5 Red Hat Bugzilla Rules Engine 2018-09-24 12:50:55 UTC
Development Management has reviewed and declined this request. You may appeal this decision by reopening this request.


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