Subject: Re: pkgsrc sickness
To: Rene Hexel <rh@netbsd.org>
From: Frederick Bruckman <fredb@immanent.net>
List: tech-pkg
Date: 08/22/2002 05:34:15
On 22 Aug 2002, Rene Hexel wrote:

> On Thu, 2002-08-22 at 14:52, Frederick Bruckman wrote:
>
> > libogg-SO-1.0.0.7 doesn't depend on anything in libogg-1.0.0.8.

>   Here is a short example.  Let's assume, there is a package called
> "foo".  Version 1.0 of the package installs the following files
> (I have left out the symlinks in this illustration):
>
>   lib/libfoo.so.1.0
>   share/foo/I_Need_This.xml
>
>   Let's say, package 'bar' requires both files from the 'foo' package.
>   An in-place replacement of foo-1.0 by foo-2.0 yields
>
>   lib/libfoo.so.2.0
>   share/foo/I_Need_This.xml
>
>   for the foo-2.0 package and
>
>   lib/libfoo.so.1.0
>
>   for the new foo-SO-1.0 package.  If 'bar' only depends on
> foo-SO-1.0, it loses its dependency on the 'share/foo/I_Need_This.xml'
> file, which might be a vital file for bar's functionality.

Don't do that! You're only supposed to delete the old package just
before installing the new one. The operation should really be atomic.
That lossage is just an artifact of wrapping the package tools with a
script, instead of modifying them.

For the case where such a needed file *might* *not* be installed by
the new package, I suggest a "@keep" tag, to let the file get the same
treatment as a shared library.

Frederick