Subject: Re: When DEPENDS can be upgraded in place
To: Tim Rightnour <root@garbled.net>
From: Frederick Bruckman <fb@enteract.com>
List: tech-pkg
Date: 09/08/2000 10:41:58
On Fri, 8 Sep 2000, Tim Rightnour wrote:

> I think the real solution is to allow multiple versions of pkgs containing
> libraries to coexist in some manner..  Ie..lets say I install jpeg...

I really don't like that...
 
> I get binaries.. like cjpeg.. and I get libjpeg.so.x.x..  so when I "upgrade"
> it whacks the binaries, replaces them.. and installs the new library.  then it
> moves the PLIST stuff for the library over to the new jpeg pkg.. so the in-db
> copy of the jpeg plist now reads something like:
> 
> cjpeg
> libjpeg.so.1.0
> libjpeg.so.1.1
> 
> Then old binaries relying on libjpeg.so.1.0 just continue to work.  Or is this
> no longer workable in ELF?

Even under a.out, the new binary would only continue to use
libjpeg.so.1.0, if the binary was running when you upgraded. The next
time you invoke it will load libjpeg.so.1.1. Why do you even want old
libraries hanging around?

If the _major_ is bumped, the app will still load the old one, if it
exists. If not, ld.so will emit an error, and it will try to use the
lib with the wrong major, newer or older. That even works, sometimes.
At least, that's how I remember it working on a.out.