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

Bug#83669: Shared libraries



>>>>> "Ian" == Ian Jackson <ian@davenant.greenend.org.uk> writes:

    Ian> In general, it's not safe to use a minor version of a library
    Ian> lower than that with which the binary was compiled.

    Ian> So you if you have a library L used by both an program S
    Ian> which you want to compile for stable and a program U you want
    Ian> to try out from unstable, then you have to install the L from
    Ian> unstable (because U is compiled against it), and because the
    Ian> versions of L and L-dev have to match, you have to have the

So lets make up some more details:

stable:
------
libl6 version 2.1-1 contains:
  /usr/lib/libl.so.6.0
  /usr/lib/libl.so.6 --> /usr/lib/libl.so.6.0

libl-dev depends on libl6 version 2.1-1 and contains:
  /usr/lib/libl.so --> /usr/lib/libl.so.6.0

progs depends on libl6 and contains:
  ldd /lib/libwrap.so.0
	libc.so.6 => /lib/libc.so.6 (0x4000e000)
	libl.so.6 => /lib/libl.so.6 (0xXXXXXXXX)
------

unstable:
---------
libl6 version 2.2-1 contains:
  /usr/lib/libl.so.6.1
  /usr/lib/libl.so.6 --> /usr/lib/libl.so.6.1

libl-dev depends on libl6 version 2.2-1 and contains:
  /usr/lib/libl.so --> /usr/lib/libl.so.6.1

progu depends[1] on libl6 (>=2.2-1) and contains:
  ldd /lib/libwrap.so.0
	libc.so.6 => /lib/libc.so.6 (0x4000e000)
	libl.so.6 => /lib/libl.so.6 (0xXXXXXXXX)
---------

so progs will work with both versions of libl.so.6.* but progu will
only work with libl.so.6.1, as it was compiled based on libl.so.6.1

And you want to install libl-dev version 2.2-1 on a stable
system without installing libl6 version 2.2-1 at the same time?

Am I right so far?


If so, what is the problem with installing the unstable version of
libl6? Oh, you explain it here.


    Ian> L-dev from unstable, but then when you compile S it ends up
    Ian> needing the L from unstable.


So you want to be able to compile progs based on libl version 2.1-1
and progu based on libl version 2.2-1. You don't want to have to
downgrade libl to version 2.1-1 just to install libl-dev 2.1-1,
because that would break progu.

Your proposal would (supposedly) help by allowing you to install
libl-dev version 2.1-1 even though libl6 version 2.2-1 has been
installed, so you can compile for the earlier version, while at the
same time you can run both progu and progs.

(how do you ensure that all -dev packages installed are from stable,
and you haven't missed any?)

Ok, Thanks, I think I understand now.

Note:
[1] I hope nobody disputes why this version depends is required...
(things might get awkward if it was forgotten).
-- 
Brian May <bam@debian.org>



Reply to: