Subject: Re: (Incomplete) List of pkgsrc Improvements
To: Dieter Baron <dillo@danbala.tuwien.ac.at>
From: Greg Troxel <gdt@ir.bbn.com>
List: tech-pkg
Date: 07/31/2007 08:28:00
  1.4 fix open-ended dependencies

I agree, but I think the problem is bigger than this.

In using pkg_rolling-replace, I find that there are often needless
rebuilds when a package is updated, e.g., from x.ynb1 to x.ynb2.  Here,
there are no ABI changes, and there is no need to rebuild dependencies.
For some updates, there aren't ABI changes, and for some there are, and
it's hard to tell.

ABI is more than shlib versions, althoug that's 99% of it in practice.
So, I'd like to see an explicit ABI version, and to have way for 'make
replace' to only set unsafe_depends if the ABI version changes.
pkg_install -u should set the same variables, and there should be some
way to have pkg_chk's binary update mechanism do the equivalent of
pkg_rolling-replace, or more likely pkg_rolling-replace should grow a
binary update option.  Extra 'pkg_add -u' of binaries isn't so painful.

This will lead to wanting unsafe_depends (on ABI changes) and
unsafe_depends_strict (always) so that one can purge
unsafe_depends_strict in case of trouble (ABI changed but wasn't defined
to change).

I find the whole recursive pkgrevision bump scheme awkward, but I'm not
sure I have a better way.  I wonder if "ABI mismatch of a dependency" is
adequate to stop doing it.