Subject: buildink2 hides a wee bit too much -- it can no longer detect inconsistencies
To: NetBSD Packages Technical Discussion List <tech-pkg@NetBSD.ORG>
From: Greg A. Woods <>
List: tech-pkg
Date: 11/21/2002 01:10:06
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/ 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).

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've always disliked implicit dependency declarations like this,
especially when they reach not just into a separate file but into a
whole separate module in another directory.

Now of course this only affects developers (including third party
developers such as myself) who might be mucking around with different
bits of pkgsrc at the same time or who might have done a "cvs update"
between the two "cvs commits" which would have kept the head revisions
in the repository self-consistent (anywone using a pkgsrc release would
presumably always have an entirely consistent and well tested set of
dependencies).  Regardless I think it illustrates quite well a danger of
making too many assumptions without double checking them.

In the old way the www/amaya module would have had to have this
dependency on libwww-5.4.0 explicitly declared (not just a generic
dependency on whatever the libwww module thought was appropriate at the
time).  Had that BUILDLINK_DEPENDS line been included directly in
www/amaya/Makefile then I would have known immediately that my existing
libwww install needed upgrading even without running more "cvs updates". 

								Greg A. Woods

+1 416 218-0098;            <>;           <>
Planix, Inc. <>; VE3TCP; Secrets of the Weird <>