From swear@attbi.com  Mon Jan 13 19:01:05 2003
Return-Path: <swear@attbi.com>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 1D87E37B405
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 13 Jan 2003 19:01:05 -0800 (PST)
Received: from sccrmhc03.attbi.com (sccrmhc03.attbi.com [204.127.202.63])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 1503043F1E
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 13 Jan 2003 19:01:04 -0800 (PST)
	(envelope-from swear@attbi.com)
Received: from localhost.localdomain (<unknown.domain>[12.242.158.67])
          by sccrmhc03.attbi.com (sccrmhc03) with ESMTP
          id <200301140301030030061687e>; Tue, 14 Jan 2003 03:01:03 +0000
Received: from localhost.localdomain (localhost [127.0.0.1])
	by localhost.localdomain (8.12.6/8.12.5) with ESMTP id h0E36Fm9021586
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 13 Jan 2003 19:06:15 -0800 (PST)
	(envelope-from swear@attbi.com)
Received: (from jojo@localhost)
	by localhost.localdomain (8.12.6/8.12.5/Submit) id h0E36AUX021583;
	Mon, 13 Jan 2003 19:06:10 -0800 (PST)
	(envelope-from swear@attbi.com)
Message-Id: <xo8yxowhum.yxo@localhost.localdomain>
Date: 13 Jan 2003 19:06:09 -0800
From: "Gary W. Swearingen" <swear@attbi.com>
Reply-To: swear@attbi.com
To: FreeBSD-gnats-submit@freebsd.org
Subject: bsd.port.mk has bad comments WRT dependencies.
X-GNATS-Notify:

>Number:         47036
>Category:       ports
>Synopsis:       [patch] bsd.port.mk has bad comments WRT dependencies.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    portmgr
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 13 19:10:01 PST 2003
>Closed-Date:    Tue May 18 20:40:07 PDT 2004
>Last-Modified:  Tue May 18 20:40:07 PDT 2004
>Originator:     Gary W. Swearingen
>Release:        FreeBSD 4.7-STABLE i386
>Organization:
none
>Environment:
n/a
================
>Description:

A few problems:

1) In several places "depends to" should be "depends on to".

2) The file confusingly misuses the words "dependency" and
"dependencies".  A dependency is something dependent, i.e., something
which depends on some other thing.  The file has it backwards.  The
things in the _DEPENDS variables are not dependencies because they are
not dependent on the port being made.  The port being "made" is the only
dependency; it depends on the _DEPENDS ports.  I guess it could be said
that those ports are required requirements.

3) The "clean" target description should say that it also cleans
required ports, by default.

4) Missing a hyphen.
================
>How-To-Repeat:
n/a
================
>Fix:

Note that "a dependency list" is not necessarily a list of dependencies;
it can be a list related to dependency, so I left the term alone.

Patch this:
# $FreeBSD: ports/Mk/bsd.port.mk,v 1.429 2002/11/10 22:54:25 alane Exp $
with this:
--- /tmp/bsd.port.mk..orig	Mon Jan 13 18:43:07 2003
+++ /tmp/bsd.port.mk	Mon Jan 13 18:58:53 2003
@@ -203,7 +203,7 @@
 #				  Use this if you need to replace "#!" lines in scripts.
 # PERL_VERSION	- Full version of perl5 (see below for current value).
 # PERL_VER		- Short version of perl5 (see below for current value).
-# PERL_ARCH		- Directory name of architecture dependent libraries
+# PERL_ARCH		- Directory name of architecture-dependent libraries
 #				  (value: ${ARCH}-freebsd).
 # USE_BISON		- Says that the port uses bison for building.
 # USE_IMAKE		- Says that the port uses imake.  Implies USE_X_PREFIX.
@@ -218,7 +218,7 @@
 # not in the list above.
 #
 # FETCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
-#				  package depends in the "fetch" stage.  "path" is the
+#				  package depends on in the "fetch" stage.  "path" is the
 #				  name of a file if it starts with a slash (/), an
 #				  executable otherwise.  make will test for the
 #				  existence (if it is a full pathname) or search for
@@ -227,16 +227,16 @@
 #				  found.  If the third field ("target") exists, it will
 #				  be used instead of ${DEPENDS_TARGET}.
 # BUILD_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
-#				  package depends to build (between the "extract" and
+#				  package depends on to build (between the "extract" and
 #				  "build" stages, inclusive).  The test done to
-#				  determine the existence of the dependency is the
+#				  determine the existence of the required port is the
 #				  same as FETCH_DEPENDS.  If the third field ("target")
 #				  exists, it will be used instead of ${DEPENDS_TARGET}.
 # RUN_DEPENDS	- A list of "path:dir[:target]" tuples of other ports this
-#				  package depends to run.  The test done to determine
-#				  the existence of the dependency is the same as
+#				  package depends on to run.  The test done to determine
+#				  the existence of the required port is the same as
 #				  FETCH_DEPENDS.  This will be checked during the
-#				  "install" stage and the name of the dependency will
+#				  "install" stage and the name of the required port will
 #				  be put into the package as well.  If the third field
 #				  ("target") exists, it will be used instead of
 #				  ${DEPENDS_TARGET}.
@@ -250,7 +250,7 @@
 #				  If the second field ("target") exists, it will be used
 #				  instead of ${DEPENDS_TARGET}.
 # DEPENDS_TARGET - The default target to execute when a port is calling a
-#				  dependency (default: "install").
+#				  required port (default: "install").
 #
 # Various directory definitions and variables to control them.
 # You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR.
@@ -330,7 +330,7 @@
 #				  into ${DISTDIR} as necessary.
 # fetch-list	- Show list of files that would be retrieved by fetch.
 # fetch-recursive - Retrieves ${DISTFILES} (and ${PATCHFILES} if defined),
-#				  for port and dependencies into ${DISTDIR} as necessary.
+#				  for port and required ports into ${DISTDIR} as necessary.
 # fetch-recursive-list  - Show list of files that would be retrieved by
 #				  fetch-recursive.
 # extract		- Unpacks ${DISTFILES} into ${WRKDIR}.
@@ -349,10 +349,11 @@
 #				  give incorrect results if multiple patches deal with
 #				  the same file.
 # checksum		- Use distinfo to ensure that your distfiles are valid.
-# checksum-recursive - Run checksum in this port and all dependencies.
+# checksum-recursive - Run checksum in this port and all required ports.
 # makesum		- Generate distinfo (only do this for your own ports!).
 # clean		    - Remove ${WRKDIR} and other temporary files used for building.
-# clean-depends	- Do a "make clean" for all dependencies.
+#				  Also cleans required ports, by default.
+# clean-depends	- Do a "make clean" for all required ports.
 #
 # Default sequence for "all" is:  fetch checksum extract patch configure build
 #
@@ -518,7 +519,7 @@
 # NO_PKG_REGISTER - Don't register a port installation as a package.
 # FORCE_PKG_REGISTER - If set, it will overwrite any existing package
 #				  registration information in ${PKG_DBDIR}/${PKGNAME}.
-# NO_DEPENDS	- Don't verify build of dependencies.
+# NO_DEPENDS	- Don't verify build of required ports.
 # NO_CHECKSUM	- Don't verify the checksum.  Typically used when
 #				  when you noticed the distfile you just fetched has
 #				  a different checksum and you intend to verify if
@@ -1199,7 +1200,7 @@
 # do something.
 DO_NADA?=		${TRUE}
 
-# Use this as the first operand to always build dependency.
+# Use this as the first operand to always build required port.
 NONEXISTENT?=	/nonexistent
 
 # Miscellaneous overridable commands:
@@ -3389,7 +3390,7 @@
 
 .if !target(checksum-recursive)
 checksum-recursive:
-	@${ECHO_MSG} "===> Fetching and checking checksums for ${PKGNAME} and dependencies"
+	@${ECHO_MSG} "===> Fetching and checking checksums for ${PKGNAME} and required ports"
 	@for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \
 		(cd $$dir; ${MAKE} checksum); \
 	done

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports->portmgr 
Responsible-Changed-By: petef 
Responsible-Changed-When: Mon Jan 13 22:12:39 EST 2003 
Responsible-Changed-Why:  
Over to bsd.port.mk maintainers. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=47036 

From: Kris Kennaway <kris@obsecurity.org>
To: freebsd-gnats-submit@FreeBSD.org, swear@attbi.com
Cc:  
Subject: Re: ports/47036
Date: Sat, 15 Feb 2003 19:48:15 -0800

 I don't agree with your comments about the use of "dependency": the
 _DEPENDS variables list the dependencies of the *current* port.  It
 lists the ports on which the current port depends.
 

From: swear@attbi.com (Gary W. Swearingen)
To: Kris Kennaway <kris@obsecurity.org>
Cc: bug-followup@freebsd.org
Subject: Re: ports/47036: bsd.port.mk has bad comments WRT dependencies.
Date: 15 Feb 2003 21:25:31 -0800

 Kris Kennaway <kris@obsecurity.org> writes:
 
 > I don't agree with your comments about the use of "dependency": the
 > _DEPENDS variables list the dependencies of the *current* port.  It
 > lists the ports on which the current port depends.
 
 Your second sentence is correct, so the *current* port is a dependency
 of each of the ports in the _DEPENDS list, and not the other way around,
 so _DEPENDS is not a list of dependencies of the *current* port --
 they're more like a list of parents or requirements.
 
 My American Heritage dictionary has for "dependency":
     2. Anything dependent or subordinate.
 
 As you imply, the *current* port depends on the listed ports.
 
 The *current* port is dependent (on the listed ports), and thus a
 dependency (of the listed ports).  It only works in one direction.
 
 The listed ports are *not* dependent on the *current* port and thus
 are not dependencies.  I chose to call them "required ports"; there
 might be other terms that would work too, but not "dependencies".
 
 The variable name part "DEPENDS" is sufficiently meaningless as to
 permit its use for a list of required ports, which is one reason I
 didn't suggest changing them.  It could be read as "ports upon which
 this port DEPENDS", but, again, that doesn't make them dependencies.
 
 Like I said, "The file confusingly misuses the words".  :)
 Thanks for working on the PR.

From: swear@attbi.com (Gary W. Swearingen)
To: Kris Kennaway <kris@obsecurity.org>
Cc: portmgr@FreeBSD.org, bug-followup@FreeBSD.org
Subject: Re: ports/47036: bsd.port.mk has bad comments WRT dependencies.
Date: 16 Feb 2003 12:00:40 -0800

 Kris Kennaway <kris@obsecurity.org> writes (except that I moved the
 definitions to the top):
 
 > Dependency (n.) (the property of A depending (v.) on B) is an
 > upwards-pointing property, from subordinate to superior (or consumer
 > to provider).
 
 Well, I like the parenthetical explanation better than the non-
 parenthetical one, but either one explains one of the two most common
 meanings of the word, which are all we need here.  (I'm thinking of it's
 meaning as a two-way *relationship* in which A is a dependent on B and B
 has A as a dependent, or in which they are dependent on each other; but
 those meanings need not confuse the discussion of this PR further.)
 
 The other meaning of the word, which is used (wrongly) in "bsd.port.mk",
 is the one I already quoted (which you didn't comment on):
 > 
 > >  My American Heritage dictionary has for "dependency":
 > >      2. Anything dependent or subordinate.
 > 
 > From Webster's Revised Unabridged Dictionary (1913) [web1913]:
 > 
 >   Dependency \De*pend"en*cy\, n.; pl. {Dependencies}.
 >      1. State of being dependent; dependence; state of being
 >         subordinate; subordination; concatenation; connection;
 >         reliance; trust.
 > 
 >               Any long series of action, the parts of which have
 >               very much dependency each on the other. --Sir J.
 >                                                     Reynolds.
 > 
 > From WordNet (r) 1.7 [wn]:
 > 
 >   dependency
 >        n 1: lack of independence or self-sufficiency [syn: {dependence},
 >              {dependance}]
 >        2: being abnormally dependent on something that is
 >           psychologically or physically habit-forming (especially
 >           alcohol or narcotic drugs) [syn: {addiction}, {dependence}]
 
 Your definitions are well summaried by my dictionary's first meaning,
 quoted here in its entirety:
 
     1. Dependence.
 
 So we have (the "a" makes it clear that were using nouns here):
 
     1) a dependency = a dependence    (an "abstract noun", always)
     2) a dependency = a dependent     (a "concrete noun", in this case)
 
 The usage in bsd.port.mk is unclear enough so that it never occurred to
 me that it might be using your meaning in some places; in several places
 it was clearly using my meaning (but using it wrongly).  Upon futher
 review of the original, I see two places where your meaning works OK,
 one place where it can be read either way (one wrongly, making it a
 confusing use), and the rest where it fails completely.  Even where it
 works OK, it is rather confusing because of the double meaning of the
 word.  (I can undo my two unnecessary fixes when I fix one more
 "dependency" (just after "fetch-recursive:") which I erroneously omitted
 from my patch.  I'd rather fix the two places in a new way, to avoid the
 double meaning so that it can't be as easily read the wrong way like I
 did; from "the existence of the dependency" to "the existence of the
 dependent relationships".)
 
 Replacing "dependency" with "dependence" usually makes it obvious why
 that meaning doesn't work.  One can't run a checksum in a dependence.
 (I guess one might run a checksum *for* a dependence, but it's
 needlessly confusing, esp. when the word "dependency" is being used.)
 
 It seemed from your message that you haven't considered the meaning I
 quoted for you, or that you don't see that the file is using both
 meanings (and using one meaning wrongly).  Do you think there is no
 problem with it's use of the word?  Or do you think there is no second
 meaning and that my dictionary is wrong?
 
 
 > The child is dependent on its mother.
 > The child has a dependency on its mother.
 > The mother is a dependency of the child.
 > The mother has the child as a dependant.
 
 The third one is wrong.  The child is dependent (as you say) and thus,
 by the second meaning ("Anything dependent") is a dependency, and thus
 it's correct to say that "the child is a dependency" and since it
 "belongs" to the mother, people commonly say "the child is a dependecy
 of the mother".
 
 I suspect that your third sentence is "trying" to say this: The
 mother-child relationship of dependency (which we might call
 "motherhood") is a dependency of the child.  Motherhood (an abstract
 noun) might be considered a dependency (abstract nount, first meaning)
 of the child, but not the mother (a concrete noun).  The child (concrete
 noun) is a dependency (concrete noun, second meaning) of the mother.
 
 > The junkie is addicted to crack and heroin.
 > The junkie has addictions to crack and heroin.
 > Crack and heroin are addictions of the junkie.
 Crack addiction and heroin addiction are addictions of the junkie.
 
 > The junkie is dependent on crack and heroin.
 > The junkie has dependencies on crack and heroin.
 > Crack and heroin are dependencies of the junkie.
 Crack dependency and heroin dependency are dependencies of the junkie.
 
 > The mother does not have a dependency on the child.
 > Crack and heroin do not have dependencies on the junkie.
 _DEPENDS ports do not have dependencies on the *current* port.
 
 All true; and therefor the child is a dependency of the mother, and the
 junkie is a dependency of the crack and heroin, and the *current* port
 is a dependency of the _DEPENDS ports.  I know the junkie phrase sounds
 wrong, but it's just because it's not commonly seen; it satisfies the
 second meaning of the word as well as the child phrase.  (Maybe more;
 the junkie depend more on the drugs than on its mother.)  You only need
 to fill out US tax forms to know that people consider children to be
 dependencies of their parents.  There's even a box for their number.

From: Kris Kennaway <kris@obsecurity.org>
To: "Gary W. Swearingen" <swear@attbi.com>
Cc: Kris Kennaway <kris@obsecurity.org>, portmgr@FreeBSD.org,
	bug-followup@FreeBSD.org
Subject: Re: ports/47036: bsd.port.mk has bad comments WRT dependencies.
Date: Sun, 16 Feb 2003 14:21:27 -0800

 On Sun, Feb 16, 2003 at 12:00:40PM -0800, Gary W. Swearingen wrote:
 
 > > The child is dependent on its mother.
 > > The child has a dependency on its mother.
 > > The mother is a dependency of the child.
 > > The mother has the child as a dependant.
 > 
 > The third one is wrong.  The child is dependent (as you say) and thus,
 > by the second meaning ("Anything dependent") is a dependency, and thus
 > it's correct to say that "the child is a dependency" and since it
 > "belongs" to the mother, people commonly say "the child is a dependecy
 > of the mother".
 
 In all your examples you're confusing "dependency (n.)" and "dependant
 (n.)" (as opposed to dependant(adj).).
 
 The addiction/dependency example was a good one because those words
 are synonyms, so it shows that dependency is upwards-pointing (A has
 an additiction to, or dependency on, B)
 
 Dependency(n.) is the state or property of being dependent on
 something else.  It is an upwards-pointing property (child-->parent).
 
 dependant(adj.) is the relation of depending upon something else
 (child-->parent).
 
 Dependant(n.) is a downwards-pointing noun (parent-->child), which is
 the language used on tax forms ("List the number of dependants").
 Yes, I just checked this :-)
 
 Anyway, I haven't yet checked whether the ports collection is
 consistent with the use of this definition.
 
 Kris

From: swear@attbi.com (Gary W. Swearingen)
To: Kris Kennaway <kris@obsecurity.org>
Cc: bug-followup@freebsd.org
Subject: Re: ports/47036: bsd.port.mk has bad comments WRT dependencies.
Date: 18 Feb 2003 14:39:00 -0800

 Since my previous message was probably too long for you to consider,
 please consider this sentence from http://www.fotw.ca/flags/gb-dep.html:
 
     Constitutionally, the Isle of Man and the Channel Islands are
     dependencies of the Crown - they are not, and never have been, crown
     colonies. Confusingly, the remaining British crown colonies are now
     called "dependent territories".
 
 The islands and the colonies are dependent on Britian and are thus
 said to be dependent or to be dependencies (or to be a dependant).
 
 In the same way, the *current* port is dependent on the _DEPENDS ports
 and thus the *current* port may be said to be a dependency of the
 _DEPENDS ports.
 
 Merriam-Webster says, for "dependency":
 
 >    1 : DEPENDENCE
 >    2 : something that is dependent on something else;...
 
 So when bsd.port.mk says
 
     Run checksum in this port and all dependencies.
 
 it either means
 
     Run checksum in all of this ports relationships or properties of
     dependence.
 
 which is wrong, or it means
 
     Run checksum in this port and all ports that are dependent on this
     port.
 
 which is also wrong.
State-Changed-From-To: open->closed 
State-Changed-By: kris 
State-Changed-When: Tue May 18 20:39:07 PDT 2004 
State-Changed-Why:  
Thanks for the submission, but there is no agreement that this 
change should be made. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=47036 
>Unformatted:
