Subject: Re: DEPENDS semantics changed silently
To: Hubert Feyrer <hubert@feyrer.de>
From: Alistair Crooks <agc@pkgsrc.org>
List: tech-pkg
Date: 02/09/2006 09:07:43
On Thu, Feb 02, 2006 at 02:28:38AM +0100, Hubert Feyrer wrote:
> 
> Once upon a time, setting DEPENDS allowed an optional third value as the 
> target that's executed, i.e.
> 
> 	DEPENDS+= foobar:../../foos/foobar:extract
> 	                                  ^^^^^^^^
> 
> would only extract the foobar sources. Apparently this feature disappeared 
> (including its documentation, as far as I've found?), but nothing was 
> added to ensure either backward compatibility or an appropriate error 
> message. Code relying on the old behaviour will just not work.
> 
> Maybe whoever removed this feature wants to go and add the needed error 
> message.

You have a good memory.

This was changed in revision 1.73 of bsd.pkg.mk:

	revision 1.73
	date: 1998/04/22 14:22:46;  author: agc;  state: Exp;  lines: +27 -33
	Remove the old deprecated DEPENDS definition from bsd.pkg.mk.
	Implement a new DEPENDS definition, which looks for an installed
	package, building it if not present, and use it in preference to
	LIB_DEPENDS.  This should make the package collection more useful on
	NetBSD ELF ports.

If you still have packages around from before April 1998, I think you'll
be running into more problems than simple DEPENDS syntax ones.

Regards,
Alistair

PS. The comment in the code of rev 1.73 explained it:

@@ -196,9 +196,10 @@
 #                                No special backslashes are needed to escape regular
 #                                expression metacharacters in NetBSD, and the old backslash
 #                                escapes are recognised for backwards compatibility.
-# DEPENDS              - A list of other ports this package depends on being
-#                                made first.  Use this for things that don't fall into
-#                                the above two categories.
+# DEPENDS - A list of prerequisite packages. The format of this
+#                                entry is "pkgname:dir". If the package is not
+#                                installed, then it will be built and installed from the
+#                                source package in "dir".
 # EXTRACT_CMD  - Command for extracting archive (default: tar).
 # EXTRACT_SUFX - Suffix for archive names (default: .tar.gz).
 # EXTRACT_BEFORE_ARGS -