Bug 677780 - rpm -q --provides not displaying rpmlib() entries
Summary: rpm -q --provides not displaying rpmlib() entries
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: rpm
Version: 6.0
Hardware: All
OS: Linux
unspecified
low
Target Milestone: rc
: ---
Assignee: Panu Matilainen
QA Contact: BaseOS QE Security Team
URL:
Whiteboard:
Depends On:
Blocks: 677781
TreeView+ depends on / blocked
 
Reported: 2011-02-15 20:17 UTC by Guil Barros
Modified: 2011-03-15 13:53 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 677781 (view as bug list)
Environment:
Last Closed: 2011-02-16 06:48:58 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Guil Barros 2011-02-15 20:17:58 UTC
Description of problem:
rpm -q --provides not displaying rpmlib() entries

Version-Release number of selected component (if applicable):
rpm-4.8.0-12.el6

How reproducible:
always

Steps to Reproduce:
1. rpm -q --provides rpm

  
Actual results:
# rpm -q --provides rpm
config(rpm) = 4.8.0-12.el6
rpm = 4.8.0-12.el6
rpm(x86-64) = 4.8.0-12.el6


Expected results:
# rpm -q --provides rpm
config(rpm) = 4.8.0-12.el6
rpm = 4.8.0-12.el6
rpm(x86-64) = 4.8.0-12.el6
rpmlib(BuiltinLuaScripts) = 4.2.2-1
rpmlib(CompressedFileNames) = 3.0.4-1
rpmlib(ConcurrentAccess) = 4.1-1
rpmlib(ExplicitPackageProvide) = 4.0-1
rpmlib(FileCaps) = 4.6.1-1
rpmlib(FileDigests) = 4.6.0-1
rpmlib(HeaderLoadSortsTags) = 4.0.1-1
rpmlib(PartialHardlinkSets) = 4.0.4-1
rpmlib(PayloadFilesHavePrefix) = 4.0-1
rpmlib(PayloadIsBzip2) = 3.0.5-1
rpmlib(PayloadIsLzma) = 4.4.2-1
rpmlib(PayloadIsXz) = 5.2-1
rpmlib(ScriptletInterpreterArgs) = 4.0.3-1
rpmlib(VersionedDependencies) = 3.0.3-1


Additional info:
The info can be seen with:
# rpm --showrc rpm | grep rpmlib
Features supported by rpmlib:
    rpmlib(BuiltinLuaScripts) = 4.2.2-1
    rpmlib(CompressedFileNames) = 3.0.4-1
    rpmlib(ConcurrentAccess) = 4.1-1
    rpmlib(ExplicitPackageProvide) = 4.0-1
    rpmlib(FileCaps) = 4.6.1-1
    rpmlib(FileDigests) = 4.6.0-1
    rpmlib(HeaderLoadSortsTags) = 4.0.1-1
    rpmlib(PartialHardlinkSets) = 4.0.4-1
    rpmlib(PayloadFilesHavePrefix) = 4.0-1
    rpmlib(PayloadIsBzip2) = 3.0.5-1
    rpmlib(PayloadIsLzma) = 4.4.2-1
    rpmlib(PayloadIsXz) = 5.2-1
    rpmlib(ScriptletInterpreterArgs) = 4.0.3-1
    rpmlib(VersionedDependencies) = 3.0.3-1

Comment 2 Panu Matilainen 2011-02-16 06:48:58 UTC
This is exactly as it's supposed to be: rpmlib() dependencies can not be satisfied by provides in packages, only the /running/ rpm instance can satisfy them by their very nature.

Say you have a package depending on a new rpm feature, tracked by an rpmlib() dependency, which the currently installed rpm doesn't have:
# rpm -Uvh foo-1.2.i686.rpm
error: Failed dependencies:
    rpmlib(NewFeature) ... is needed by foo-1.2.i686

Unlike regular dependencies, this can't be fixed by adding an updated rpm package into the transaction (eg "rpm -Uvh foo-1.2.i686.rpm rpm-*4.123*.rpm"), because a newer rpm version which brings the support for "NewFeature" must be used to execute the transaction. So you need to first update rpm itself to a version which provides the needed rpmlib() feature, and only then you can install a package using that feature.

Comment 3 Guil Barros 2011-02-17 15:39:24 UTC
So it requires a two-step update?

# rpm -Uvh foo-1.2.i686.rpm
error: Failed dependencies:
    rpmlib(NewFeature) ... is needed by foo-1.2.i686

# rpm -Uvh rpm-2.2.i686.rpm
# rpm -Uvh foo-1.2.i686.rpm

The main concern really is that rpmlib() dependencies look like regular dependencies to the end user but do not show up as regular dependencies, leading to confusion. Maybe we could change the way its presented?


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