Modify

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: https://www.google.com/accounts/o8/id?id=AItOawm53g_OvEixgi55cBdUXTHWrAwrQcK1PlU Owned by: https://www.google.com/accounts/o8/id?id=AItOawnSjgovXZr-_V3vGkvMSR0pc5LDykRc1Nc
Priority: major Milestone: Bcfg2 1.2.0 Release
Component: bcfg2-server Version: 1.0
Keywords: Cc:

Description

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/libldap-2.3.so.0 /usr/lib/liblber-2.3.so.0 /usr/lib/libcups.so.2 /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix?) <= 4.0-1 rpmlib(CompressedFileNames?) <= 3.0.4-1 /bin/sh libACE.so libACE.so(VERSION) libadobelinguistic.so libAdobeXMP.so libAdobeXMP.so(VERSION) libAGM.so [... snipped a bunch of unrelated requirements ... ]

For example, rpm can resolve what provides /usr/lib/libldap-2.3.so.0:

$ rpm -q --whatprovides /usr/lib/libldap-2.3.so.0 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/libcups.so.2', '/usr/lib/liblber-2.3.so.0', '/usr/lib/libldap-2.3.so.0', '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/liblber-2.3.so.0 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 libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.2.5)(64bit) libtermcap.so.2()(64bit) 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/npwrapper.so

acroread-plugin-9.4.2-1.el5.i386

$ rpm -q --whatprovides /usr/lib/nspluginwrapper/npwrapper.so

nspluginwrapper-1.3.0-9.el5.i386

$ rpm -qR acroread-plugin|grep /

/usr/lib/nspluginwrapper/npwrapper.so /bin/sh /bin/sh

and java-1.6.0-sun-jdbc:

$ rpm -q --whatprovides /usr/lib/libodbcinst.so

unixODBC-devel-2.2.11-7.1.i386

$ rpm -q --whatrequires /usr/lib/libodbcinst.so

java-1.6.0-sun-jdbc-1.6.0.26-1jpp.1.el5.i586

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

/usr/lib64/libodbc.so /usr/lib64/libodbcinst.so

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

Attachments

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 https://www.google.com/accounts/o8/id?id=AItOawnSjgovXZr-_V3vGkvMSR0pc5LDykRc1Nc

  • Owner changed from desai to https://www.google.com/accounts/o8/id?id=AItOawnSjgovXZr-_V3vGkvMSR0pc5LDykRc1Nc
  • Status changed from new to accepted

comment:3 Changed 12 years ago by https://www.google.com/accounts/o8/id?id=AItOawnSjgovXZr-_V3vGkvMSR0pc5LDykRc1Nc

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

comment:4 Changed 12 years ago by https://www.google.com/accounts/o8/id?id=AItOawnSjgovXZr-_V3vGkvMSR0pc5LDykRc1Nc

  • 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.

View

Add a comment

Modify Ticket

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


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

 
Note: See TracTickets for help on using tickets.