Why does rpm built not able to find the library from the system?

Solution Verified - Updated -

Issue

  • Create a package foo v1 containing a shared library (/usr/local/lib/libfoo.so) which does not set the soname
  • Create a package bar using this shared library
# rpm -qRp bar.rpm | grep foo
libfoo.so
  • Create a new version of package foo v2 where the shared library now sets the soname and is installed as a symbolic link from /usr/local/lib/libfoo.so to /usr/local/lib/libfoo.so.1
  • The bar program built against the original verson of libfoo can find it regardless of whether the old or new version is installed.
  • However, installation of bar when foo v2 is installed fails dependency checking.
error: Failed dependencies:
        libfoo.so is needed by bar
  • Likewise an upgrade from foo v1 to foo v2 will fail for the same reason.
  • One needs to recompile (relink) bar against libfoo.so.1.
  • Shall rpm should not understand that libfoo.so is inclusive of libfoo.so.1 when checking dependencies.
  • That is, the behavior of rpm should match the behavior of the OS.

Environment

  • Red Hat Enterprise Linux 7
  • rpm-build

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content