Bug 998859 - "dnf upgrade --best" will always install 64bits package when 32bit package is installed
"dnf upgrade --best" will always install 64bits package when 32bit package is...
Product: Fedora
Classification: Fedora
Component: hawkey (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Ales Kozumplik
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2013-08-20 05:00 EDT by Miroslav Suchý
Modified: 2014-09-30 19:41 EDT (History)
5 users (show)

See Also:
Fixed In Version: hawkey-0.3.17
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2013-10-25 03:13:37 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
debug data of "dnf upgrade --best --debugsolver tslib" (5.83 MB, application/gzip)
2013-08-20 06:36 EDT, Miroslav Suchý
no flags Details

  None (edit)
Description Miroslav Suchý 2013-08-20 05:00:52 EDT
Description of problem:
On x86_64 machine when I install i686 variant of package and will run "dnf upgrade" yum will install x86_64 version of that package as well.
I encountered this when I installed Steam, which requires 32 bits packages and I really do not need some 64 bits variants.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. install: tslib-1.0-6.fc19.i686 (or simply latest 32 variant of this package)
2. yum upgrade (nothing to upgrade)
3. dnf upgrade (nothing to upgrade)
4. dnf upgrade --best

Actual results:
Will install tslib-1.0-6.fc19.x86_64

Expected results:
Nothing to upgrade.
Comment 1 Miroslav Suchý 2013-08-20 06:36:44 EDT
Created attachment 788410 [details]
debug data of "dnf upgrade --best --debugsolver tslib"
Comment 2 Ales Kozumplik 2013-08-20 07:17:49 EDT

this boils down to the following:

repo system 0 testtags <inline>
#>=Ver: 2.0
#>=Pkg: c 25 1 i686
repo available 0 testtags <inline>
#>=Ver: 2.0
#>=Pkg: c 25 1 x86_64

poolflags implicitobsoleteusescolors
system x86_64 rpm system

job update name c [forcebest]

result transaction,problems <inline>
#>install c-25-1.x86_64@available

I even think it's the expected behavior. The question is what can libsolv do here: if not much then I'll just document this as the expected behavior of --best.
Comment 3 Michael Schröder 2013-08-20 07:48:22 EDT
Well, c-25-1.x86_64 *is* the best package. It's a bit unfortunate that c-25-1.i686 does not get erased with the "update", though.

As to what libsolv can do, you can set the "SOLVER_FLAG_BEST_OBEY_POLICY"
flag to make the "best" selection obey update policy rules, i.e. to make the
architecture "stick". I didn't make that the default, because then people complain that the "best" package does not get chosen. The idea was to provide a "--best" and a "--really-best" or something ;)
Comment 4 Ales Kozumplik 2013-08-20 09:23:33 EDT
Thanks Michael, the flag to distinguish best/really-best was exactly what I was looking for (yet afraid to ask for it to be added).
Comment 5 Ales Kozumplik 2013-08-20 09:25:56 EDT
Fixed by eb0d437, will be available in hawkey-0.3.17.

Thanks for reporting this Miroslav.
Comment 6 Fedora Update System 2013-09-16 09:40:34 EDT
dnf-0.4.1-1.git55e6369.fc20 has been submitted as an update for Fedora 20.
Comment 7 Fedora Update System 2013-09-16 12:14:54 EDT
Package dnf-0.4.1-1.git55e6369.fc20, librepo-1.1.0-1.fc20, hawkey-0.4.1-1.git6f35513.fc20, libcomps-0.1.3-5.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing dnf-0.4.1-1.git55e6369.fc20 librepo-1.1.0-1.fc20 hawkey-0.4.1-1.git6f35513.fc20 libcomps-0.1.3-5.fc20'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).
Comment 8 Ales Kozumplik 2013-10-25 03:13:37 EDT
dnf-0.4.1 has been pushed and superseded. Closing this.

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