Subject: Re: non-flat depends [was: Re: Package Views Integration (finally!)]
To: Hubert Feyrer <>
From: Todd Vierling <>
List: tech-pkg
Date: 08/21/2003 10:52:31
On Thu, 21 Aug 2003, Hubert Feyrer wrote:

: > Hmm... I thought using DEPENDS directly included a single dependancy.
: You thought wrong. See bsd.*

Yup.  And, of course, the thread subject was changed since pkgviews doesn't
help this particular problem, except to provide a place to build new
versions of the whole gaggle of dependencies.  8-)

This is a well known deficiency of pkgsrc that has two prongs:

1. DEPENDS (which is recursively registered by; and

2. files (which recursively pull in other

Fixing (1) is a prerequisite for fixing (2).

I suggested in PR pkg/21097 that (1) could be fixed Today with minor
breakage that can be fixed on a case-by-case basis.  This is because nearly
all large-dependency-list packages are already using for
dependency registration, and thus will still get recursive dependencies even
if DEPENDS is made non-recursive.  Note that there's a diff hack in that PR
that I've been using for a year now, setting PACKAGE_DEPENDS_RECURSE=false,
with no ill effect even though I'm using hundreds of things from pkgsrc and
installing via binary packages from a build box.

But fixing (2) is much more painful.  This will require splitting out the
DEPENDS part of each file somehow (via a new .mk file and/or a
make variable), so that other files can choose not to
propagate inner dependencies.  Manual inspection will then be required to
add these splits where appropriate; typically where one utility shlib has an
inner dependency on another utility shlib, but an application using the
first one doesn't care or know about the second.  For instance, GTK, SDL,
etc. abstract away their underlying implementation layers, so apps using
them don't give a damn about their dependencies.

-- Todd Vierling <>