On 5/11/07, Laszlo (Laca) Peter <laca at sun.com> wrote:
> On Fri, 2007-05-11 at 00:04 +0100, Peter Tribble wrote:
> > On 5/10/07, Laszlo (Laca) Peter <laca at sun.com> wrote:
> > > The real trouble is what happens when multiple version of the same
> > > lib meet in an executable.  It happens sometimes and there's no
> > > easy way to avoid or fix it.  Actual examples are the acroread crash
> > > (caused by a libz collision) and currently various GNOME apps
> > > crash due to a clash between libexpat in Python and in /usr/sfw.
> > > The lower level the library, the higher the probability that it'll
> > > cause troubles.  Tck/Tk is probably okay in this regard, but where
> > > do you draw the line?
> >
> > I don't know. But I think something's going to have to be worked
> > out, and I keep bringing it up in the hope that someone way
> > smarter than myself will work out a way to cleanly support
> > multiple versions.
>
> Let me Cc tools-linking, maybe there is some linker magic that
> can help.  AFAIR direct binding can help in some cases.
> We certainly can't solve this problem with just file system
> namespacing.

This is one of those things that the Blastwave project needs to deal
with also. Then again we don't put anything into /usr and we do try to
keep older lib revisions around when needed. For example let's look at
the libs that come with the OpenSSL package :

# ls -1 /opt/csw/lib/libcrypto.so.0.9.* /opt/csw/lib/libssl.so.0*
/opt/csw/lib/sparcv8plus/libcrypto.so.*
/opt/csw/lib/sparcv9/libcrypto.so.* /opt/csw/lib/sparcv9/libssl.so.0*
/opt/csw/lib/libcrypto.so.0.9.6
/opt/csw/lib/libcrypto.so.0.9.6.20060915191807.23077
/opt/csw/lib/libcrypto.so.0.9.6.20061008142346.10983
/opt/csw/lib/libcrypto.so.0.9.7
/opt/csw/lib/libcrypto.so.0.9.7.20060915191807.23077
/opt/csw/lib/libcrypto.so.0.9.7.20061008142346.10983
/opt/csw/lib/libcrypto.so.0.9.8
/opt/csw/lib/libcrypto.so.0.9.8.20060915191807.23077
/opt/csw/lib/libcrypto.so.0.9.8.20061008142346.10983
/opt/csw/lib/libssl.so.0.9.6
/opt/csw/lib/libssl.so.0.9.6.20060915191807.23077
/opt/csw/lib/libssl.so.0.9.6.20061008142346.10983
/opt/csw/lib/libssl.so.0.9.7
/opt/csw/lib/libssl.so.0.9.7.20060915191807.23077
/opt/csw/lib/libssl.so.0.9.7.20061008142346.10983
/opt/csw/lib/libssl.so.0.9.8
/opt/csw/lib/libssl.so.0.9.8.20060915191807.23077
/opt/csw/lib/libssl.so.0.9.8.20061008142346.10983
/opt/csw/lib/sparcv8plus/libcrypto.so.0.9.7
/opt/csw/lib/sparcv8plus/libcrypto.so.0.9.7.20060915191807.23077
/opt/csw/lib/sparcv8plus/libcrypto.so.0.9.7.20061008142346.10983
/opt/csw/lib/sparcv8plus/libcrypto.so.0.9.8
/opt/csw/lib/sparcv8plus/libcrypto.so.0.9.8.20060915191807.23077
/opt/csw/lib/sparcv8plus/libcrypto.so.0.9.8.20061008142346.10983
/opt/csw/lib/sparcv9/libcrypto.so.0
/opt/csw/lib/sparcv9/libcrypto.so.0.9.7
/opt/csw/lib/sparcv9/libcrypto.so.0.9.7.20060915191807.23077
/opt/csw/lib/sparcv9/libcrypto.so.0.9.7.20061008142346.10983
/opt/csw/lib/sparcv9/libcrypto.so.0.9.8
/opt/csw/lib/sparcv9/libcrypto.so.0.9.8.20060915191807.23077
/opt/csw/lib/sparcv9/libcrypto.so.0.9.8.20061008142346.10983
/opt/csw/lib/sparcv9/libssl.so.0
/opt/csw/lib/sparcv9/libssl.so.0.9.7
/opt/csw/lib/sparcv9/libssl.so.0.9.7.20060915191807.23077
/opt/csw/lib/sparcv9/libssl.so.0.9.7.20061008142346.10983
/opt/csw/lib/sparcv9/libssl.so.0.9.8
/opt/csw/lib/sparcv9/libssl.so.0.9.8.20060915191807.23077
/opt/csw/lib/sparcv9/libssl.so.0.9.8.20061008142346.10983
#

This allows any previous package to have linkage with previous libs
while also providing present up-to-date packages. The trick is to
migrate packages forwards continually.

Not to mention testing testing testing ... which as of this morning I
think that a few of us here have poured fifty or sixty hours into
GNOME and XFCE thus far.

Dennis

Reply via email to