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: