Mailinglist Archive: opensuse-packaging (140 mails)

< Previous Next >
Re: [opensuse-packaging] libraries renaming problems
  • From: Richard Guenther <rguenther@xxxxxxx>
  • Date: Mon, 25 Feb 2008 12:04:51 +0100 (CET)
  • Message-id: <Pine.LNX.4.64.0802251157330.5150@xxxxxxxxxxxxxx>
On Mon, 25 Feb 2008, Philipp Thomas wrote:

On Fri, 22 Feb 2008 21:11:42 +0100, Petr Cerny wrote:

When other package Requires: "libfoo", the package manager
(and eventually the user) gets fooled and isn't able to install the
desired package.

I agree with all of the following...

library packages should *never* be required explicitly as it's far
better to have rpm determine the dependency automatically (with the
exclusion of sub-packages of the library package). That will make a
package dependent on the soname (i.e. internal name) of a library and
will be resolved disregarding of the package name. Example:

- libfoo1 contains libfoo.so.1.9.7 with soname libfoo.so.1. When
packaging this with AutoReqProv on, rpmbuild will add libfoo.so.1 to
libfoo1 provides.

- Binary bar linked to libfoo will have the requirement for libfoo.so.1
encoded in it (as tools like ldd or objdump will show you) which in
turn will be discovered by rpm and added to the Requires of
the package containing this binary.

... but the problem is probably that binaries and libraries were
previously in a package libfoo and the other package just required
one of the binaries (and such the libfoo package). The problem with
the package split is now that the package containing the binaries
got renamed(?) like

libfoo --> foo
\-> libfoo1

in this case the foo(!) package should provide and obsolete the
libfoo name like

Provides: libfoo = current-version
Obsoletes: libfoo <= version-at-split-time

split-provides should be also added for binaries here, like

Provides: libfoo:/bin/foo

But yes, the libfoo1 package should be never required directly
(even if something dlopens a library, the requires should specify
the name opened - in the most cases this is sth like /usr/lib/libfoo.so).
Also the shared library package should not provide any old unsplit
versions of the package.

Richard.

--
Richard Guenther <rguenther@xxxxxxx>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 - GF: Markus Rex
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups