Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jul 2009 15:06:43 +0200
From:      Ruben de Groot <mail25@bzerk.org>
To:        Guido Falsi <mad@madpilot.net>
Cc:        freebsd-current@freebsd.org, subbsd <subbsd@gmail.com>
Subject:   Re: library compat for FreeBSD7x
Message-ID:  <20090723130643.GA24141@ei.bzerk.org>
In-Reply-To: <20090723121522.GC26926@megatron.madpilot.net>
References:  <200907231302.34000.subbsd@gmail.com> <20090723093217.GA26926@megatron.madpilot.net> <20090723100548.GA23481@ei.bzerk.org> <20090723104115.GB26926@megatron.madpilot.net> <20090723114057.GA23923@ei.bzerk.org> <20090723121522.GC26926@megatron.madpilot.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jul 23, 2009 at 02:15:22PM +0200, Guido Falsi typed:
> On Thu, Jul 23, 2009 at 01:40:57PM +0200, Ruben de Groot wrote:
> > > > 
> > > > Erm, doesn't that defeat the whole point of having compat* libraries?
> > > 
> 
> BTW, why don't you just let the old libraries lie in your system, or use
> libmap.conf just to map them to the newer ones? As long as there is no
> ABI breakage this will work.

A new library version usually means ABI changes. So libmap.conf is not a 
failsafe solution. As for leaving the old libraries in an upgraded system,
that's essentially the same as installing compat?x in a newly installed
system.

> > > The problem is that while a single port directly depending on a compat
> > > library may work indefinitely this way, you'll have many problems when
> > > you mix and match ports depending on libraries from other ports, mixing
> > > ld and new libraries dependancies.
> > 
> > Can you give a concrete example of this? I've never had any such problems.
> 
> If port A depends on library from port B which itself depends on library
> in base system foo.so.1, but program A was recompiled and itself depends
> on library foo.so.2 ld could have an hard time linking them at runtime I
> think.

Yes, that would be hard.
The obvious solution to this is to not recompile program A on a system with
the newer library version.

> > That may be the main reason, but there can be many others.
> > For example, I'm still using the subversion 1.5 client compiled on 6.x
> > because the newer version from ports (1.6) doesn't play nice with eclipse
> > (subclipse).
> 
> You have the sources, you could anyway recompile an old version.

Sure, but I prefer using ports/packages. Keeps my systems manageable.

> > Updating using packages might not be an option at all. Example: mod_php5
> 
> If you manage many servers you should anyway have a machine to make your
> own packages too and roll those ones out to production machines, I
> think.

Yes, and there's another reason for having compat7x libraries. If you build on
7.X-RELEASE and want to test your packages on 8.X, you're going to need them.

Ruben




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090723130643.GA24141>