[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#83669: Shared libraries



>>>>> "Marcelo" == Marcelo E Magallon <mmagallo@debian.org> writes:

    Marcelo>  libfoo-dev (2.1-1) was compiled with libbar-dev (1.1-1).
    Marcelo> libbar1 (1.1-1) exists in unstable and libbar1 (1.0-1)
    Marcelo> exists in stable.  Due to bad judgement, libbar1 (1.1-1)
    Marcelo> (and libbar-dev 1.1-1 according to this proposal)
    Marcelo> contains one extra function (wrt to 1.0-1) which
    Marcelo> libfoo-dev (2.1-1) uses.  That means libfoo-dev (2.1-1)
    Marcelo> depends on libbar1 (1.1-1), or is it libbar-dev (1.1-1)
    Marcelo> according to this proposal?

Lets take your example (before hand we would have considered libfoo
as an application, not a library, but this will still work):

There are two cases:


1. programs that compile using libfoo2 do not use functions from libbar1

stable
------
libbar1    (1.0-1)
libbar-dev (1.0-1) depends libbar-dev (=1.0-1)
libfoo2    (2.1-1) depends libbar1
libfoo-dev (2.1-1) depends libfoo-dev (=2.1-1)

unstable
--------
libbar1    (1.1-1)
libbar-dev (1.1-1) depends libbar-dev (=1.0-1)
libfoo2    (2.1-1) depends libbar1    (>= 1.1-1)
libfoo-dev (2.1-1) depends libfoo-dev (=2.1-1)

I will assume libfoo2 does not need to be changed, because it can
check if the new function exists or not using a configure test.

Remember, that libfoo2 will correctly have the correct "depends:" as
this comes from the shlibs information in libbar1 (which I assume to
be correct).


2. programs that compile using libfoo2 require functions from 
exactly the same version of libbar1 (consider the case where libbar1
is glibc, and *is* be important)

AFAIK It is not possible to set the build-depends automatically to the
correct value, but this is a problem with the existing build system,
and this proposal doesn't change that limitation in anyway, in fact,
this example is based on the existing system (it should really be
determined based on the version of libbar1 used).


    Marcelo>  And exactly what do you want to do with the soname in
    Marcelo> libfoo.so?  You can't just hide it from ldconfig, can
    Marcelo> you?

Don't you mean libbar1? Now you have got me confused.
-- 
Brian May <bam@debian.org>



Reply to: