Bug 1320479

Summary: [debuginfo-install] Don't upgrade debuginfo packages to versions higher than base package
Product: [Fedora] Fedora Reporter: Christian Stadelmann <fedora>
Component: dnf-plugins-coreAssignee: rpm-software-management
Status: CLOSED CANTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: jmracek, jsilhan, mluscon, mmraka, packaging-team-maint, pnemade, RadekHolyPublic, vmukhame
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-22 12:42:54 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:

Description Christian Stadelmann 2016-03-23 10:21:16 UTC
Description of problem:
Sometimes packages can't be updated due to missing dependencies. In this case dnf-plugins-extra-debug will update the debuginfo packages anyway (since they don't have strict dependencies). This leads to debuginfo not matching base packages.

Version-Release number of selected component (if applicable):
dnf-plugins-core-0.1.19-1.fc23.noarch (python3)

How reproducible:
always

Steps to Reproduce:
0. have debuginfo packages installed for some packages
1. have a package update with broken dependencies (e.g. they are not yet in repositories) with debuginfo packages installed
2. run `dnf upgrade` with debuginfo-install options "enable=1" and "autoupdate=1" in /etc/dnf/plugins/debuginfo-install.conf
3. watch output

Actual results:
dnf tries to update debuginfo packages to a version newer than the base package

Expected results:
version(%{package}) == version(%{package}-debuginfo)

Additional info:

Comment 1 Fedora Admin XMLRPC Client 2016-07-08 09:25:36 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 2 Michael Mráka 2016-11-22 12:42:54 UTC
Unfortunately this can't be easily fixed.

Say we have package-x.y.z and package-debuginfo-z.y.z installed.
There's an update package-x.y.z+1 and package-debuginfo-z.y.z+1 available.
Both packages goes into transaction but because package-debuginfo does not require base package it will be marked for install even if package fails to satisfy its dependencies. And as all this happens inside a single transaction dnf has no way to drop package-debuginfo from it (once transaction started).

It could be possible if libsolv had an API "inject" external dependency (i.e. package-debuginfo-z.y.z+1 requires package-x.y.z+1) into transaction.

For now we can't do much about it.