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

Re: Heart of the debate

Don Sanders <dsanders@cch.com.au> wrote

> Raul I think your interpretation of the GPL is wrong. It contradicts the
> meaning of "distributed under the terms of Sections 1 and 2" as defined by a
> copyright lawyer, it requires believing that the author of the GPL used
> inconsistent language in Section 2b and 3, and it requires believing the
> definition of the Program be redefined part way through the license, which
> is horribly convoluted.

I think I have to agree with Raul here. I'm not sure I understand the
subtleties of the meaning defined by your copyright lawyer friend, nor do I
profess to understand the reason for the subtle difference in wording between
GPL 2b and 3 (maybe the idea is that somebody having modified the program is
more in a position to "cause [the new] work... to be licensed" than somebody
who is merely distributing the Program in executable form; in any case I don't
like the formulation).

However, the main point seems to be that you want to apply the requirement of
GPL 3a that "the complete source code must be distributed under the terms of
GPL 1 and 2" without having, in the scope of that distribution of source code,
the "Program" signifying "the complete source code". I can understand the
feeling that this local change of meaning can be confusing, but suppose one
does keep the meaning of "Program" unchanged. GPL 1 reads "You may copy...
verbatim copies of the Program's source... " while GPL 2 reads "You may modify
your copy... of the Program or any portion of it...". Now if "Program" is not
allowed to (in this context) designate "the complete source", then where is
anything being required about the complete source? It would seem awfully silly
if GPL 3 would go to some lengths to define the exact extent of "the complete
source", only to apply it in a requirement in which that extent is immaterial.

It is like you are saying something vaguely in the line of this:

int GPL(int Program)
{ if (Program<=1) then return Program;
  { int t=GPL(Program-1); /* But the meaning of `Program' does not change!! */
    return Program+t;

Do you see my point?
Marc van Leeuwen
Universite de Poitiers

Reply to: