Bug 208896 - Yum allows installation of old debuginfo with new packages
Summary: Yum allows installation of old debuginfo with new packages
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: yum
Version: 5
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jeremy Katz
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 173278
TreeView+ depends on / blocked
 
Reported: 2006-10-02 15:25 UTC by Mike Cvet
Modified: 2014-01-21 22:55 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-10-02 17:56:00 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Mike Cvet 2006-10-02 15:25:26 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20060913 Fedora/1.5.0.7-1.fc5 Firefox/1.5.0.7 pango-text

Description of problem:
With the updates and core-debuginfo repositories enabled, I can install glibc-2.4-11 AND glibc-debuginfo-2.4-4 at the same time.

Version-Release number of selected component (if applicable):
yum-2.6.1-0.fc5

How reproducible:
Always


Steps to Reproduce:
1. Enable core-debuginfo respository
2. Enable updates repository
3. Install glibc and glibc-debuginfo

Actual Results:
Both were installed.

Expected Results:
glibc-debuginfo should not have been installed.

Additional info:

Comment 1 Jeremy Katz 2006-10-02 15:33:33 UTC
There isn't a package dep between the -debuginfo and the main package to do any
sort of forcing like this.

And that dep is _intentionally_ not present to avoid breaking things for the
(very common) case where people just enable -debuginfo when they want to install
a specific -debuginfo package.

Comment 2 Andrew Cagney 2006-10-02 17:22:51 UTC
There's two needs here:

- if a newer glibc is installed, the old clashing debuginfo is either upgraded
or removed (I believe the latter is done)

- if a user attempts to install the wrong debuginfo a clash is detecthed

Ensuring the correct debuginfo for a library is critically important for many
utilities as often problems, such as what prompted this bug report, are traced
back to wrong info installed.

The questions here, I think, are:

- what should this be against?  yum, rpm, glibc, ...

- is there something like: Conflicts glibc > version?


Comment 3 Stepan Kasal 2006-10-02 17:31:20 UTC
(In reply to comment #1)
> And that dep is _intentionally_ not present to avoid breaking things for the
> (very common) case where people just enable -debuginfo when they want to install
> a specific -debuginfo package.

I'm afraid I really do not understand this.  As debug info absolutely must match
the binaries, I believe the generated -debuginfo package shoud "Require:
base-pkg = the-version", like what is customary for -devel packages.

To adapt to the above scenario, yum might treat the *-debuginfo rpms specially.
For example, if no updated *-debuginfo rpm is available, yum could remove all
conflicting *-debuginfo packages (should be controllable by a config file option).

Comment 4 Jeremy Katz 2006-10-02 17:34:05 UTC
Actually, if you have an old -debuginfo installed and update a package, the old
-debuginfo package stays.  Doing anything else requires that -debuginfo access
*ALWAYS* be enabled.  Which isn't the case due to the (sizable) increase in the
amount of metadata that then has to be downloaded.  Adding conflicts or requires
to the debuginfo packages is just going to make things more fragile for people
and thus less useful.

Realistically, we need for the tools that _use_ debuginfo to be doing the
request of the install -- then an explicit version can be requested based on
what owns the file in question.  And that could be implemented as a pretty
simple yum-util if you wanted -- basically, 'yum-get-debuginfo
/path/to/sharedobject'.  The utility would need to
  * Map /path/to/sharedobject to a binary package
  * Do the transform of foo-libs -> foo-debuginfo  (use src.rpm name + -debuginfo)
  * Get version of foo-libs.  
  * Install foo-debuginfo-version-release

Comment 5 Jeremy Katz 2006-10-02 17:36:10 UTC
(In reply to comment #3)
> (In reply to comment #1)
> > And that dep is _intentionally_ not present to avoid breaking things for the
> > (very common) case where people just enable -debuginfo when they want to install
> > a specific -debuginfo package.
> 
> I'm afraid I really do not understand this.  As debug info absolutely must match
> the binaries, I believe the generated -debuginfo package shoud "Require:
> base-pkg = the-version", like what is customary for -devel packages.

Doing this breaks things for every user and is _not_ acceptable.  Not having the
requires was the only way that we could reliably handle -debuginfo with the
caveat of the packages not always being available.

> To adapt to the above scenario, yum might treat the *-debuginfo rpms specially.
> For example, if no updated *-debuginfo rpm is available, yum could remove all
> conflicting *-debuginfo packages (should be controllable by a config file option).

No.  Special casing debuginfo packages across the entire body of tools which
deal with package management is insanity.

Comment 6 Stepan Kasal 2006-10-02 17:48:01 UTC
In other words, because of the limitation of the current Fedora package
management tools, it cannot be ensured that *-debuginfo and base package
versions match.

Comment 7 Jeremy Katz 2006-10-02 17:56:00 UTC
This is exactly what the design of the debuginfo packages was.  And the
fundamental bits around that (not requiring everyone to install them, not
requiring everyone to have access to them) haven't changed.  And even if it did,
it wouldn't be something that would change in yum.

Comment 8 Stepan Kasal 2006-10-02 18:08:06 UTC
(In reply to comment #7)
> This is exactly what the design of the debuginfo packages was.  And the
> fundamental bits around that (not requiring everyone to install them, not
> requiring everyone to have access to them) haven't changed.

The above bits sound right.

But I think that one bit should be added:
- a *-debuginfo package cannot be installed without the corresponding base package

I do not think this bit conflicts with the above.

> it wouldn't be something that would change in yum.

What is the right component?  redhat-rpm-config?

Comment 9 Jeremy Katz 2006-10-02 18:13:07 UTC
(In reply to comment #8)
> (In reply to comment #7)
> > This is exactly what the design of the debuginfo packages was.  And the
> > fundamental bits around that (not requiring everyone to install them, not
> > requiring everyone to have access to them) haven't changed.
> 
> The above bits sound right.
> 
> But I think that one bit should be added:
> - a *-debuginfo package cannot be installed without the corresponding base package

This isn't the case, though -- think about a package with a lot of subpackages.
 The -debuginfo corresponds to _all_ of those bits.  There may not even be a
"base" package (yes, such packages exist).  Why should I have to install, eg,
all of the OOo subcomponents just to debug writer?

> I do not think this bit conflicts with the above.

Having the requires would lead to people being in a situation where they can't
do an update due to a "stale" debuginfo package.  And that's pretty clearly not
acceptable.

Comment 10 Jan Kratochvil 2007-01-07 02:33:26 UTC
This is a duplicate of redhat-rpm-config's Bug 151598.



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