RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1072258 - yum doesn't handle/resolve symlinks to files for provides
Summary: yum doesn't handle/resolve symlinks to files for provides
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: yum
Version: 7.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Packaging Maintenance Team
QA Contact: BaseOS QE Security Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-03-04 08:50 UTC by Karel Srot
Modified: 2019-01-03 12:27 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-01-03 12:27:11 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Karel Srot 2014-03-04 08:50:01 UTC
While testing (bug 1062959) the 'fs' subcommands 'du' and 'status' I found out that it doesn't handle symlinks properly.

E.g. on RHEL-7 /bin is a symlink to /usr/bin so a lot of files are reported as Not packaged? although they actually belong to a package and vice versa.

Example:

# yum fs status /bin
Loaded plugins: auto-update-debuginfo, kabi, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Loading support for Red Hat kernel ABI
Not packaged?: /bin/catchsegv
Not packaged?: /bin/gzexe
Not packaged?: /bin/gencat
Not packaged?: /bin/mesg
Not packaged?: /bin/gzip
..
..

# rpm -qf /bin/gzip
gzip-1.5-6.el7.x86_64
# rpm -ql gzip | grep gzip\$
/usr/bin/gzip


Similarly, 

# yum fs du /usr/bin
Loaded plugins: auto-update-debuginfo, kabi, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Loading support for Red Hat kernel ABI
Files            : 2,036
Total size       : 139 M
       Pkgs size : 137 M ( 98%)
       Data size : 2.2 M (  2%)

Top 4 packages:
1.                     1:virtuoso-opensource-6.1.6-5.el7.x86_64 10 M 
2.                           binutils-2.23.52.0.1-14.el7.x86_64 9.4 M
3.                                 1:doxygen-1.8.5-2.el7.x86_64 8.4 M
4.                         postgresql-server-9.2.6-3.el7.x86_64 5.6 M

Top 4 non-package files:
1.                                         /usr/bin/dbus-daemon 431 k
2.                                                /usr/bin/tcsh 395 k
3.                                               /usr/bin/mailx 384 k
4.                                             /usr/bin/netstat 151 k

but 

# rpm -qf /usr/bin/tcsh
tcsh-6.18.01-7.el7.x86_64
# rpm -ql tcsh | grep bin
/bin/csh
/bin/tcsh

Comment 2 James Antill 2014-03-05 21:43:41 UTC
 This is a generic yum vs. rpm thing ... rpm knows about fs remapping to resolve files to paths, yum doesn't (and can't easily).

 Eg. yum provides /bin/zsh

Comment 3 Karel Srot 2014-03-06 08:41:24 UTC
So why yum can't ask rpm? Why to have the 'df' command then if it produce useless results?

Comment 4 Karel Srot 2014-03-17 07:15:22 UTC
(In reply to James Antill from comment #2)
>  This is a generic yum vs. rpm thing ... rpm knows about fs remapping to
> resolve files to paths, yum doesn't (and can't easily).
> 
>  Eg. yum provides /bin/zsh

Btw, yum provides works for me.


# which zsh
/usr/bin/zsh
# rpm -ql zsh | grep 'bin/zsh'
/bin/zsh
# 
# yum provides --disablerepo=\* /usr/bin/zsh
Loaded plugins: auto-update-debuginfo, kabi, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Loading support for Red Hat kernel ABI
zsh-5.0.2-7.el7.x86_64 : Powerful interactive shell
Repo        : @rhel-7
Matched from:
Filename    : /usr/bin/zsh


# yum provides --disablerepo=\* /bin/zsh
Loaded plugins: auto-update-debuginfo, kabi, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Loading support for Red Hat kernel ABI
zsh-5.0.2-7.el7.x86_64 : Powerful interactive shell
Repo        : @rhel-7
Matched from:
Filename    : /bin/zsh

Comment 5 Karel Srot 2014-03-19 06:48:32 UTC
I am reopening this bug because current implementation makes the 'du' and 'status' subcommands pretty useless due to large amount of false positives.

Proposing the bug for 7.1.

Comment 6 James Antill 2014-04-07 21:02:46 UTC
 Again, I'm not sure what we can do here.

(In reply to Karel Srot from comment #3)
> So why yum can't ask rpm?

 It does ... in certain cases. Think of it like the difference between "rpm -ql tcsh | fgrep bin/tcsh" and "rpm -qf /usr/bin/tcsh". In the later rpm can do the magic mapping for you, in the former rpm will give you the data it has and that won't match reality.
 As far as I know there isn't an rpm API for "tell me the rpm filename for this filename" ... we could maybe hack it using basename guesses.

> Why to have the 'df' command then if it produce
> useless results?

 I would object to useless results, like a bunch of other yum APIs it can't follow symlinks/bind-mounts where something is installed to X but shows up as Y ... yes, this is probably more noticable due to "UsrMove" and all the continuing fallout from it.

(In reply to Karel Srot from comment #4)
> (In reply to James Antill from comment #2)
> >  This is a generic yum vs. rpm thing ... rpm knows about fs remapping to
> > resolve files to paths, yum doesn't (and can't easily).
> > 
> >  Eg. yum provides /bin/zsh
> 
> Btw, yum provides works for me.

 Not sure what I tested, but for instance:

yum provides '/usr/bin/tcsh' (try this before and after installing)

...and this never works, even when installed:

yum provides '/usr/bin/tcs*'

...whereas this one works all the time (assuming current tcsh package as above):

yum provides '/bin/tcs*'


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