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

Re: Heart of the debate



I hope you don't mind me replying to this too.

On Wed, 16 Feb 2000, Marc van Leeuwen wrote:
> On Tue, 15 Feb 2000 06:52:00 -0500 Andreas Pour <pour@mieterra.com> wrote:
> 
> > Marc van Leeuwen wrote:
> > > 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?
> > 
> > In Section 3(a), which requires you to distribute the complete source code,
> > and in Section 2(b), which (at least in the case of static linking) requires
> > permitting redistribution of the code at no charge to third parties.
> > Moreover, without that provision, one could make binary-only distributions;
> > at a minimum it creates the obligation to include the GPL-part of the binary
> > in source form. So, in fact, there is a lot of meat to Section 3(a) without
> > perverting the definitions provided in the GPL.
> 
> As to 3a, yes obviously it requires (plain unqualified) distribution of the
> complete source, so you are right, there is a requirement there. I was
> thinking however about the addition "which must be distributed under the terms
> of Sections 1 and 2 above". Since "which" designates "the complete sources",
> this ought to establish some relation between "the complete sources" and
> "Sections 1 and 2" (which is why I cited only those sections). If you insist
> that in this re-invocation of the GPL (which it really is, otherwise why turn
> back to reconsider 1 and 2 which we presumably have already satisfied when we
> consider 3)

(For the sake of simplicity I'm going to assume that the source code, the
Program and the work are all identical, so that the GPL is being applied to the
preferred form of the work for making modifications to it.)

The GPL defines terms for copying, modifying and distributing a work. Section 3
specifies that the complete source code must be distributed, hence it specifies
that the source code must be distributed. This implies that permission to
distribute the work is being given and hence it is the duty of the
license to specify the terms on which the work is to be distributed, It
fulfills this duty by specifying that the work be distributed under the terms
of Sections 1 and 2 of the license.

You seem to reading Section 1 and 2 as if they are requirements (which is
perfectly reasonable) but they can also be read by the licensee as concessions.
Thus if Section alpha says you may do X if Y and Section beta says you may do X
if Z then the licensee can do X if they comply with either Y or Z.

If Section 3 did not specify the complete source code be distributed under the
terms of Section 1 and 2 then this would open up a loophole, a distributor
could distribute binaries and then when requested for a copy of the complete
source code give you a copy of the source code under a copy of whatever license
they pleased. They could claim that they complied with Section 3 so they did not
need to meet the requirements of Section1 or 2 as these sections merely grant
additional ways in which they are allowed to distribute the source code.

Does that make sense?

<cut>
> So I can reformulate
> your reading of section 3a as follows (the part in brackets being explanation
> of what is implied by the rest):
> 
>     a) Accompany it with the complete corresponding machine-readable source
>     code [each part under whatever conditions it happens to be available for
>     distribution, maybe some very restrictive EULA, or if copyrighted by the
>     distributor himself, without any permission to redistribute at all].

Yes. (I believe this is consistent with the intent of KDE developers, but it
may not be consistent with the intent of other developers who place their code
under the GPL. In which case these other developers really need a new license
as the GPL is too lenient to satisfy their intent)

>     Moreover [in case those complete sources do not already contain the
>     entire Program] you must also distribute the Program [as the presence of
>     this notice indicates, you only have permission to do that under the
>     conditions of this License; its only sections that concern permission to
>     copy the Program itself are 1 and (in case of any modifications) 2].

Not really you've made things more complicated and uncertain than they need to
be.

If the complete sources do not contain the Program (I guess a binary is
being GPLed) then section 2 would be irrelevant when distributing the complete
source under the terms of section 1 and 2. 

But remember section 3 is handling the case where the Program is being
distributed and it requires the Program to be distributed under the terms of
Sections 1 and 2. (Read the beginning of section 3)

> 
> Apart from the reference to the EULA, and the realisation that the Program
> might not be entirely contained in "the complete sources" (these came up while
> I was trying to formulate), I think this sums up what you've been saying.
> Admittedly the second sentence is artificial, but I could find no other way to
> invoke, in the context of distributing a binary based on a small part of the
> original Program, the terms of Sections 1 and 2, with "Program" unchanged:
> apparently not just the complete sources for that binary are subject to an
> obligation of being distributed, but so should the entire original Program
> (lest we perform the abomination of restricting "Program" to mean the part
> that was actually used in the binary).

I've tried to explain why the second artificial sentence is unnecessary.

> > > 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 true that a court will try to give meaning to every part of a legal
> > document. But if such meaning can be provided, the fact that you or even the
> > court thinks the document is silly is no grounds to rewrite it. If I were to
> > make sense of Section 3(a), the most logical thing IMHO is to read it to
> > require the distribution of all source code, with the GPL'd part only having
> > to comply with Section 2. This makes sense because there it would be "silly"
> > to apply GPL provisions to non-GPL code.
> 
> In my copy of the GPL, the commentary following 2c makes it quite explicit
> that there are cases where originally non-GPL code has to be subject to
> provisions of the GPL, as a condition for allowing a larger whole to be
> distributed. So I don't see why the idea that the GPL intends to require
> something like that should be considered to be silly.

Seems to be a matter of opinion.

> > What would be even more "silly", IMHO, is to introduce the rather ambitious
> > requirement to license all derived works completely under the GPL in such an
> > obscure manner. I would think if the licensor wanted me to do that there
> > would be an explicit paragraph 2(b) saying something like,
> > 
> >     You may modify your copy or copies of the Program or any portion of it,
> >     thus forming a work based on the Program, and copy and distribute such
> >     modifications or work under the terms of Section 1 above, provided that
> >     you also meet all of these conditions:
> > 
> >      . . .
> > 
> >         (b) you must license all of your modifications to third parties
> >     under this License, place appropriate notices on the complete work based
> >     on the Program, and cause this complete work to itself constitute a
> >     "Program" for purposes of this License;
> 
> Your formulation seems a bit more straightforward then the one in the GPL, but
> I think there are some valid reasons for the FSF preferring the actual text
> (which is not surprising as they probably spent more time trying to draft it
> than you did). In particular your formulation is not clear about what to do
> about modifications that are simply additions of code copyrighted by somebody
> else (but with a sufficiently permissive licence to allow this); you cannot
> simply replace its licence by GPL (I know how strongly you feel about this).
> By contrast GPL (as I read it) simply requires that the all permissions to
> third parties set forth in the GPL (but not necessarily all associated
> restrictions) apply to all parts of the whole being distributed, even if they
> are perhaps derived from a licence other than GPL (logically that licence must
> then be at least as permissive as GPL).

Actually I believe this is wrong I'm going to cover this with Raul pretty soon.
Briefly I believe that under your interpretation once the GPL has been applied
to a Program in source code form in order to distribute binaries one must
license the complete source code under the GPL.

> > > It is like you are saying something vaguely in the line of this:
> > >
> > > int GPL(int Program)
> > > { if (Program<=1) then return Program;
> > >   else
> > >   { int t=GPL(Program-1);
> > >           /* But the meaning of `Program' does not change!! */
> > >     return Program+t;
> > >   }
> > > }
> > >
> > > Do you see my point?
> > 
> > Your point appears to be that words can change their meaning inside a
> > document. Sure that's the case. However, I note that you include in your
> > example code an express statement that does this redefinition (actually,
> > re-assignment).
> 
> I suppose you mean by that the recursive call `GPL(Program-1)'. Yes that's it.
> 
> > Where is this provision in the GPL? My example Section 2(a) above might
> > accomplish this; the GPL as written does not.
> 
> You mean 2(b), where it says "cause this complete work to itself constitute a
> "Program" for purposes of this License". I suppose that means: for the
> instance of this Licence that is attached to this complete work; there
> obviously "the Program" would mean "this complete work", even if you hadn't
> required so explicitly. However, GPL 3a does something that even more clearly
> resembles a recursive call: "the complete corresponding machine-readable
> source code must be distributed under the terms of Sections 1 and 2 above".
> Substitution of actual parameters for formal ones is usually implicit in
> invocation; I guess something similar even holds in legal documents.

I don't actually think legal documents normally do this kind of thing. If
your interpretation is correct why does 3a say under the terms of of Sections 1
and 2 and not under the terms of Sections 0, 1 and 2. It needs Section 0 to
redefine the value of the Program.

I just want to say one more thing, I did not believe Andreas' interpretation of
3a was correct until I consulted a copyright lawyer. You can't really
understand the GPL without knowing a little about standard contract law. (I
don't mean to offend anyone by saying that).

BFN,
Don.


Reply to: