Subject: Re: tracking down an indirect reference
To: None <pkgsrc-users@NetBSD.org>
From: Steven M. Bellovin <smb@cs.columbia.edu>
List: pkgsrc-users
Date: 09/17/2007 21:24:02
On Mon, 17 Sep 2007 14:18:15 -0400
"Steven M. Bellovin" <smb@cs.columbia.edu> wrote:

> On Mon, 17 Sep 2007 12:53:28 -0500 (CDT)
> "Jeremy C. Reed" <reed@reedmedia.net> wrote:
> 
> > On Mon, 17 Sep 2007, Steven M. Bellovin wrote:
> > 
> > > I'm trying to update a package.  When doing a 'make configure', it
> > > complains that
> > > 
> > > 	ERROR: opencdk is not installed; can't buildlink files.
> > > 
> > > The problem is that I can't figure out where this is coming from.
> > > Presumably, *something* is asking for it; I just don't know what.
> > > There are no references to opencdk anywhere in the work subtree;
> > > I've also checked all of the pkgsrc directories for everything
> > > included.  I haven't tried figuring out the complete dependency
> > > tree.  I did grep all of /usr/pkg/* to see if anything even
> > > mentioned opencdk; the only thing that did is the documentation
> > > for gnutls.  Any suggestions how to locate this?  (Aside: gnutls
> > > is indeed in the dependency chain for the package I'm working on.)
> > > 
> > 
> > There is pkgsrc/security/opencdk. It is dependency of gnutls.
> > 
> > You might need to do a "make clean-depends".
> > 
> 
> It was indeed gnutls needing it.  Presumably, though, something in
> pkgsrc should have detected a version mismatch, rather than displaying
> that rather strange error message displayed.  The dependency chain, as
> I worked out after the fact, was
> 
> opencdk
> gnutls
> gnome-vfs2
> libgtkhtml
> claws-mail-gtkhtml2_viewer
> 
> where I'm working on claws-mail-gtkhtml2_viewer.  It wasn't a stale
> work directory -- which I believe is what 'make clean-depends' removes
> -- since I had deleted all work directories prior to doing a 'cvs
> update' on pkgsrc.  Is there something I should/could put into my
> package?  Should it be further upstream?
> 
Checking further, what happened was the upgrade of gnutls from 1.6.3nb1
to 2.0 on Sept 5.  The new gnutls/Makefile has a BUILDLINK_API_DEPENDS
for opencdk, but opencdk isn't there since the older gnutls didn't use
it.  If had manually installed opencdk, I could have done the
compilation I was trying to do, but it might not have worked -- the
comments in gnutls say that 1.6.x didn't work with opencdk.

In other words, pkgsrc would have given me an incorrect set of
dependencies.

It isn't clear to me how this should be fixed.  I suspect that gnutls2.0
needs an explicit dependency on opencdk, and not just a
BUILDLINK_API_DEPENDS.  Comments?



		--Steve Bellovin, http://www.cs.columbia.edu/~smb