[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#212034: Debian Perl Policy manual uses "dependency" backwards



Andrew Suffield wrote:
> 
> On Mon, Sep 22, 2003 at 08:57:16PM -0400, Daniel B. wrote:
> > ...
> > Since the other package is not dependent on perl, then by your own
> > dictionary's definition, the other package is not a dependency of
> > perl.  (Any divergence between us yet?)
> 
> Here's where you go wrong. 

No, I did not go wrong.  

Let's back up (again!) for a second.

You (all) are thinking of "dependency" in the ways that Debian uses 
the word.  My bug report is that one of those ways is wrong.  Since 
you're still thinking "in Debian," of course what I'm saying is going 
to sound wrong.

(You believe 2 + 2 = -4.  I know that 2 + 2 = +4.  I notice that you're
a bit backwards.  I tell you that you are mistaken in thinking that the
sum is -4, and tell you that the sum is +4.  Since you currently still 
believe that the sum is -4, _of course_ you think _I'm_ wrong when I say 
the sum is +4.)

Please pay attention to standard English usage (not Debian usage) to 
see where Debian get it backwards.

Also, if you still disagree with my conclusion, please identify the
earliest point at which you don't follow my argument.


> You shifted from "on perl" to "of perl" -
> nothing to do with the word "dependency"; rather, you have inverted
> the direction of the preposition.

No, I didn't invert anything.

Of course I shifted to "package P is a dependENCY OF perl" from "package 
P is dependENT ON perl." 

A dependENCY OF something is dependENT ON that something.  

(Guam is a dependENCY OF the U.S. because Guam is depenDENT ON the U.S.)

That's not a shift (a reversal) in direction; that's just the mapping 
between "dependent" and the preposition it takes ("on") and "dependency" 
and preposition it takes ("of") in this sense (senses 2 and 3 in my 
quoted dictionary:

   dependency ... :
      1. Dependence. 
      2. Something dependent or subordinate. 
      3. A territory under the jurisdiction of a state of
         which it does not form an integral part. 

and the only senses listed in Scott's quoted dictionary:

   dependency /n/.
        country etc. controlled by another;
        that which is dependent.

).


Now consider "dependency OF" versus "dependency ON."

Guam is a dependency OF the U.S.

Is Guam a dependency ON the U.S.?  No.  In fact, the question makes 
little sense.

Is the U.S. a dependency ON Guam?  No.  This question doesn't make any 
sense either.

However, Guam HAS a dependency ON the U.S.


Notice the difference:  
- "dependency ON" is sense 1 of the word dependency (the dependence
  *relationship*); 
- "dependency OF" is sense 2 or 3 (some *thing* that is dependent).

(Note that Guam IS a dependency OF the U.S. because Guam HAS a 
dependency ON the U.S.)



To summarize that real-world and standard-English case:

Guam depends on the U.S., so:
- Guam is dependent on the U.S.
- Guam is a dependency of the U.S.     (dictionary sense 2/3, or at least 3)
- Guam has a dependency on the U.S.    (sense 1)
- Guam is not a dependency on the U.S. (sense 1)
- There is a dependency between Guam and the U.S. (sense 1)
- There is a dependency from Guam to the U.S.     (sense 1)

The U.S. does not depend on Guam (appreciably), so:
- The U.S. is not dependent on Guam.
- The U.S. is not a dependency of Guam.        (sense 2/3, or at least 3)
- The U.S. does not have a dependency on Guam. (sense 1)
- The U.S. is not a dependency on Guam.        (sense 1)
- There is still a dependency between the U.S. and Guam.  (sense 1)
- There is no dependency from the U.S. to Guam.           (sense 1)


To re-summarize abstractly:

If P depends on L, then:
- P is dependent on L.
- P is a dependency of L.     (dictionary sense 2/3)
- P has a dependency on L.    (sense 1)
- P is not a dependency on L. (sense 1)
- There is a dependency between P and L. (sense 1)
- There is a dependency from P to L.     (sense 1)

If L does not depend on P, then:
- L is not dependent on P.
- L is not a dependency of P.        (sense 2/3)
- L does not have a dependency on P. (sense 1)
- L is not a dependency on P.        (sense 1)
- There is not necessarily a dependency between L and P, but since 
  P depends on L, there is dependency between them. (sense 1)
- There is no dependency from L to P.               (sense 1)


> The "dependencies of perl" are the contents of the Depends line in the
> perl package.

Perl's Depends line lists libc (ignoring the breakdown of perl into
sub-packages).

Therefore, perl depends on libc.

Therefore, per the summary above:
- perl is dependent on libc.
- perl is a dependency of libc.     (dictionary sense 2/3)
- perl has a dependency on libc.    (dictionary sense 1)
- perl is not a dependency on libc. (dictionary sense 1)
- (There is a dependency between perl and libc.) (dictionary sense 1)
- (There is a dependency from perl to libc.)     (dictionary sense 1)


Libc's Depends line does not list perl.

Therefore, libc does not depend on perl.

Therefore, per the summary above:
- libc is not dependent on perl.
- libc is not a dependency of perl.        (dictionary sense 2/3)
- libc does not have a dependency on perl. (dictionary sense 1)
- libc is not a dependency on perl.        (dictionary sense 1)
- (There is still a dependency between perl and libc.)  (dictionary sense 1)
- (There is no dependency from libc to perl.)           (dictionary sense 1)


Note the starting point:

  perl's Depends line lists libc

and the key results of the step-by-step logical argument above:

- perl has a dependency on libc
- perl is a dependency of libc
- libc is not a dependency of perl 

(libc is a prerequisite of perl.)


Assume that your statement:

> The "dependencies of perl" are the contents of the Depends line in the
> perl package.

is true.  

>From above, libc is listed in perl's Depends line.

Per your statement, since libc is listed in perl's Depends line, 
libc is a dependency of perl.

However, that is a contradiction, since it is already established above 
that libc is _not_ a dependency of perl.

Since assuming your statement is true led to a contradiction, your
statement must be false.


> The "dependencies on perl" are the packages which contain perl in
> their own Depends lines.

No.  "Dependencies ON perl" refers to relationships, not the things
involved in those relationships. 

"Dependencies on drugs" does not denote drug addicts (the entities that
depend on drugs).




**** IN ANY CASE, whether you agree with the above or not, it's still 
perfectly obvious that saying "dependency of package X" is extremely
ambiguous, for two reasons:

2. [lesser, but better listed first] It can refer to a dependency 
   relationship in which package X is involved (dictionary sense 1), 
   and it can refer to one of the packages involved in such a 
   relationship (sense 2) (whether or not we agree on which package 
   in the relationship).

1. If "dependency" is used to refer to one of the packages in a 
   dependence relationship (sense 2), you think it means a package
   on which package X depends (package X's prerequisite); to the 
   rest of the world, it means a package that depends on package X.

Therefore (again, regardless of whether we agree above), Debian tools
and documentation should (eventually) never use "dependency" in sense 
2 (a package involved in a dependency relationship).


(Using "dependency" in sense 1, as in "apt makes sure dependencies
are satisfied," is fine (and, of course, occurs throughout Debian).

Saying "the Depends line specifies the dependencies of package X" is 
fine because it refers to the dependency relationship (still sense
1).  

Saying "the Depends line lists dependencies" is defensible because 
it logically lists the dependency relationships (X depends on A, X 
depends on B) even though it physically lists depended-on packages.

However, saying "xxx lists dependencies" makes it sound like 
"dependencies" refers to depended-on things (when it really refers 
to the dependency relationship).  (Apparently, that's why you all
(and most make users, probably) have "dependency" (sense 2) 
backwards.)

Therefore, Debian documentation should probably try to avoid that 
wording too.)



Daniel
-- 
Daniel Barclay
dsb@smart.net



Reply to: