Subject: Re: buildink2 hides a wee bit too much -- it can no longer detect inconsistencies
To: NetBSD Packages Technical Discussion List <tech-pkg@NetBSD.ORG>
From: Johnny C. Lam <jlam@netbsd.org>
List: tech-pkg
Date: 11/21/2002 00:32:20
On Thu, Nov 21, 2002 at 01:10:06AM -0500, Greg A. Woods wrote:
> Amaya-6.4 requires at least libwww-5.4.0.
> 
> However anyone updating just their libwww pkgsrc module will not know
> this because this information is only implicitly recorded in the
> libwww/buildink2.mk file by this line:
> 
> 	BUILDLINK_DEPENDS.libwww?=	libwww>=5.4.0
> 
> and not anywhere in www/amaya.
> 
> The result can very easily be something like PR#19116 (amaya-6.4 will
> not build).

The error you are discussing will occur only if the user "cvs updates"
www/amaya without "cvs updating" www/libwww.  The libwww buildlink2.mk
file specifies that it requires libwww>=5.4.0, presumably because the
shared libs in 5.4.0 are ABI-incompatible with shared libs in 5.3.6.
This implies that all packages that need libwww, including www/amaya,
will require libwww>=5.4.0.

Given how interdependent the whole pkgsrc tree is, it's a bug to do
selective updates to parts of the pkgsrc tree.

> Ultimately this is caused by buildink2 hiding too much of the
> inter-package dependency declarations in unrelated directories (or at
> least making it too easy for the developer to do such hiding).

I disagree.  I believe it is due to the mistaken assumption that you can
selectively update parts of the pkgsrc tree.  I also think this is the
chance that you take by tracking pkgsrc-current because it's a _very_
active branch and it's possible to "cvs update" between two related
commits.

	Cheers,

	-- Johnny Lam <jlam@netbsd.org>