Ticket #1014 (closed defect: fixed)

Opened 12 years ago

Last modified 12 years ago

Package plugin can't resolve dependencies for rpms with Require: tags for full paths that aren't Provided explicitly

Reported by: Owned by:
Priority: major Milestone: Bcfg2 1.2.0 Release
Component: bcfg2-server Version: 1.0
Keywords: Cc:


I have <Package name="acroread" /> as a required package in a bundle that manages a RHEL5 host. The acroread package lists this as what it requires:

$ rpm -qR acroread /usr/lib/ /usr/lib/ /usr/lib/ /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix?) <= 4.0-1 rpmlib(CompressedFileNames?) <= 3.0.4-1 /bin/sh [... snipped a bunch of unrelated requirements ... ]

For example, rpm can resolve what provides /usr/lib/

$ rpm -q --whatprovides /usr/lib/ openldap-2.3.43-12.el5_6.7.i386

RPM knows what provides that requirement, and therefore the packages are installed when it's installed with yum. However, when bcfg2 runs, I see this in the bcfg2 logs:

2011-06-13 14:30:06,012 bcfg2-server[8427]: Got unknown entries 2011-06-13 14:30:06,012 bcfg2-server[8427]: ['/usr/lib/', '/usr/lib/', '/usr/lib/', 'gpg-pubkey']

(you can safely ignore gpg-pubkey for this issue)

I suspect that the problem is that the Packages plugin isn't able to translate the requirement for /usr/lib/ into requiring a package that *includes* that library, instead just looking for packages that claim to *provide* that path.

'acroread' also requires /bin/sh, but that doesn't show up in the missing entries because the bash package actually claims to Provide /bin/sh:

$ rpm -qR bash /bin/bash /bin/sh /bin/sh /bin/sh config(bash) = 3.2-24.el5 mktemp rpmlib(CompressedFileNames?) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix?) <= 4.0-1 rtld(GNU_HASH)

I suspect this is mostly a poorly made package by Red Hat (it comes from RHN), and it should require the library correctly, but that's a bit beyond my control. However, this is also a problem with other packages, for example acroread-plugins also causes unknown entries:

$ rpm -q --whatrequires /usr/lib/nspluginwrapper/


$ rpm -q --whatprovides /usr/lib/nspluginwrapper/


$ rpm -qR acroread-plugin|grep /

/usr/lib/nspluginwrapper/ /bin/sh /bin/sh

and java-1.6.0-sun-jdbc:

$ rpm -q --whatprovides /usr/lib/


$ rpm -q --whatrequires /usr/lib/


$ rpm -qR java-1.6.0-sun-jdbc.x86_64|grep /

/usr/lib64/ /usr/lib64/

I suspect that the Packages plugin needs to have deeper knowledge into what a package Provides beyond the explicit Provides listed in the package.


Change History

comment:1 Changed 12 years ago by solj

  • Milestone changed from Bcfg2 1.2.0 Release to Bcfg2 1.2.1 Release (Bugfix)

comment:2 Changed 12 years ago by

  • Owner changed from desai to
  • Status changed from new to accepted

comment:3 Changed 12 years ago by

  • Status changed from accepted to closed
  • Resolution set to fixed

comment:4 Changed 12 years ago by

  • Milestone changed from Bcfg2 1.2.1 Release (Bugfix) to Bcfg2 1.2.0 Release

WARNING! You need to establish a session before you can create or edit tickets. Otherwise the ticket will get treated as spam.


Add a comment

Modify Ticket

Change Properties
<Author field>
as closed
The resolution will be deleted. Next status will be 'reopened'

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.