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

Re: Heart of the debate



I'll just finish my round of quick shots and then _really_ be gone.

On Tue, 15 Feb 2000 12:02:31 -0500 Andreas Pour <pour@mieterra.com> wrote:

> Marc van Leeuwen wrote:

> > 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,
> 
> How do you distinguish between permissions and restrictions? The GPL
> permissions are subject to the restrictions. How do you separate them?
> 
> > even if they are perhaps derived from a licence other than GPL (logically
> > that licence must then be at least as permissive as GPL).
> 
> If you read Section 2(b) to require licensing under the GPL, then it has to
> be under the GPL, not some other license that has some more or less
> permissions/restrictions. The concept of "GPL-compatible" comes up only if
> you buy into the argument that Section 2 does not in fact require the added
> source code to be licensed under the GPL, in which case I wonder what you do
> think it means.

Suppose one encounters somewhere the requirement that some person be "licensed
under the terms of the French law to drive a vehicle of less then 10 places
and of a weight of no more then 3.5 tons." There is a requirement of the
existence of certain permissions subject to certain restrictions. Now clearly
I could be that person, since my driving licence (in fact "permis de conduire"
indicating licence=permission) is issued by the French state, and gives me
just those permissions with those restrictions. However, it seems obvious that
somebody whose driving licence permits driving vehicles with no restrictions
on number of places or weight would "a fortiori" also qualify. He has the
necessary permissions, but not the restrictions; no problem. Also that person
might have a driving licence issued by some other country (as mine was some
years ago) whose licences are recognised in France, so there is no need that
the permissions are derived from the terms of the French law, just that they
suffice under the French law. On the other hand, anybody whose driving licence
states stricter conditions than required above (e.g., that he be accompanied
by an adult) would not qualify. The separation of permissions and restrictions
really follows from everyday common logic. Whence my formulation quoted above.

In case the analogy with GPL 2b is not yet obvious: where it requires that a
work be "licensed... to all third parties under the terms of the GPL", it
requires that all third parties enjoy, with respect to the work, all
permissions granted in the GPL; it does not require that those permissions are
derived from the GPL itself (although they could), nor that any conditions
within the licence(s) giving those permissions be identical to those of the
GPL, just that they suffice to allow doing what GPL allows.

Just in case you ask: where does it say "all permissions granted in the GPL"?,
it doesn't. But since GPL carries the title "Terms and Conditions for Copying,
Distribution and Modification" it is hard to imagine "licensed" in 2b to mean
anything but "licensed for copying, distribution and modification", i.e., just
those things GPL grants permission for.

> > > 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). 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".
> 
> Right.
> 
> > 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.
> 
> Why would you attach the License to the "complete work" (under the actual
> GPL)?

I'm not sure how that relates to the above (which considers your version), nor
where I implied that. However since the complete source code must be
distributed (under terms GPL 1,2) something in that direction does seem
inevitable.

> > 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.
> 
> First, no, legal documents are not computer programs.

Granted
 
> More to the point, this might be the case if "Program" in Section 2 were a
> function parameter (and you could easily write Section 2 that way -- say by
> having it refer to any source code distributed, rather than to the Program
> or a work based on the Program, and then invoke Section 2 separately for a
> modified Program). However, the term "Program" happens to be a global
> variable defined in Section 0 and Section 2 does not make it a parameter.

You'll note that in my example the recursive procedure was called GPL, not
GPL_section_2. "Program" is a parameter of the GPL. I think the restriction
to sections 1 and 2 is just to avoid any appearance of self-reference in 3a
(and section 0 is omitted because it contains definitions, no terms). In fact
section 3 would never apply to source code, so it would make no difference if
it said "under the terms of this License". Interestingly the reference in 2b
does not make such a restriction, I think (just a guess) this is because that
instance _is_ intended to be self-referential, which in this case would be
deemed not do harm because it is just demanding that licence be given to third
parties, so no infinite loop "to distribute you must distribute for which you
must distribute..." is conceivable there.

> (BTW, another way to do this would be to write in Section 3(b):
> 
>     Accompany it with the complete corresponding machine-readable source
>     code, which must be distributed under the terms of Sections 1 and 2
>     above on a medium customarily used for software interchange (and for
>     purposes of applying Sections 1 and 2, such complete machine-readable
>     source code shall constitute a "work based on the Program").

Or simpler, add after "must be distributed": "as a whole" (which matches the
explanation of section 2); for me that would remove any trace of doubt as to
the interpretation of section 2 in this case (for you it wouldn't, of course).

> This would be modifying the global variable temporarily for purposes of
> executing Section 2 (to stick with the CS jargon).

But one is not staying in the same global scope: the distribution of complete
source code is not the one whose conditions are currently (in 3a) being given;
it something being required. (If for some reason a Loan Agreement would
require the bank in some case to grant another Loan Agreement whose interest
payments are "under the terms of this Agreement", that would mean the same
conditions, but not the same money). On the other hand, it being clear from
the definitions elsewhere, and the explanation in 2, that "the complete source
as a whole" is a "work based on the Program", whose distribution has to be
legitimised independently by the GPL (and by licences of other works from
which it is derived), I think it would suffice to say "Accompany it with the
complete corresponding machine-readable source code, which must be distributed
as a whole, on a medium customarily used for software interchange".

[round we go:]

> > The problem with reading the GPL this way is that it systematically uses
> > this phrase when the rest of the GPL (or the designated part) does NOT
> > explicitly treat the subject of "under the terms" (in some cases:
> > explicitly not).
> 
> It does not have to specify it explicitly; in compliance means in
> compliance, so if you don't violate any terms, then you are doing it in
> compliance.

On the other hand your interpretation of "interest under the terms of this
Loan Agreement" would be rather curious if the Loan Agreement never mentioned
(apart from in this phrase) interest.

> > While this makes clear what is meant by the "terms of section 1" (roughly:
> > you must place/keep intact notices), it becomes a bit more difficult for
> > the "terms of section 2"; that would be something like "you must indicate
> > changes, ensure that third parties have permission to modify/redistribute,
> 
> Section 2(b) says nothing about modifications; it only talks about licensing
> at no charge to third parties.

Licensing for copying, distribution and modification (see above) which I
paraphrased modify/redistribute.

> You will have great problems with the first paragraph of Section 3 if you
> read "under the terms of Sections 1 and 2" to refer to the "object code or
> executable form" (I call this a "binary" for shorthand). Even if you apply
> only the conditions of Sections 1 and 2 to a binary (removing the predicates
> of both sections, since both of them clearly deal with source code),
> virtually none of the conditions makes sense as applied to a binary.
> 
> For example, Section 1 requires a conspicuous publication of a copyright
> notice; I don't see how you do that with a binary, since it is not human
> readable

Section 1 does not require the notice to be in the same file. 2a does, whence
I had to skip it. Binaries should be accompanied by a copyright notice.

> Turning to Section 2, that makes a bit more sense, except for the first
> requirement in Section 2(a) to include modification notices and dates.

Yes.

> > Since the distribution required is distinct from the distribution being
> > permitted, the reference is neither "see section such and such for details
> > concerning this part of the agreement" (as it would be for interest
> > payments)
> 
> Not clear what you mean here -- generally there is no section reference in
> the interest payment requirement.

No, but the meaning of "interest payments under the terms of this Agreement"
would be roughly equivalent to "interest payments (detailed conditions for
which are given in such and such sections of this Agreement)", if I understand
your example correctly (probably not :-( ).

> > , nor a simple "copy the text from section such and such into place here".
> > Therefore, I can only see this as a recursive invocation of the GPL: "the
> > same permissions granted in the GPL with respect to this Program should
> > also be granted to all third parties (and at no cost) with respect to any
> > work derived from this Program that are published" (2b), and "the same
> > permissions granted in the GPL with respect to this Program should also be
> > granted to recipients with respect to the complete sources accompanying
> > distributed binaries" (3a).
> 
> Well, if you read it that way, then you must also read it to mean the same
> conditions to redistribution apply to the complete source code. The 3(a)
> reference only has meaning through 2(b), so your reading requires you to
> read Section 2(b) as saying, the *entire* source code must be "licensed
> under the GPL".

Not precisely. Licensed under the terms of the GPL. Not "you need a French
driving licence" but "you need the permissions do drive required in France".

> As I have mentioned numerous times, this would forbid linking GPL
> applications with X, since X is *not*, and cannot be, licensed under the
> GPL.

Nor need it. I pointed this out in
http://www.debian.org/Lists-Archives/debian-legal-0002/msg00043.html

> I would respect the position (although I disagree with it) if it were
> consistently applied. The problem I have with Debian is, they don't apply it
> consistently. Somehow they weed out Qt but leave X and BSD.

See the driving licence example. Qt allows third parties to drive only under
adult supervision (well not quite, but modifying only in separate files).

> > > The "complete sources" is broader than a "work based on the Program". In
> > > the case of a GPL binary with a non-GPL library, at least when
> > > distributed statically linked, the complete source code includes the
> > > library source code, whereas in that case the library is not a "work
> > > based on the Program".
> >
> > No, but the complete sources are (note the GPL uses "complete source
> > code", singular).
> 
> I'm not clear on that. You are assuming that the library/Program combination
> itself is a "work", with "work" having the meaning provided by copyright
> law.

Right.

> Essentially, I take it you would agree that the if you distribute the Qt
> sources, and you also distribute kghostview, on the same CD, those two
> together would not constitute a "work based on" kghostview -- at this point
> they are two separate works (although kghostview makes reference to Qt
> functions, for copyright purposes that obviously does not make them the same
> "work").

Yes. (Although some are known to disagree, here nothing ever seems obvious.)

> So the issue becomes, does the mere fact of Section 3 of the GPL requiring
> you to distribute them together constitute them a single "work" for
> copyright purposes (or really for any purposes).

Right on the head. You must have been reading abovementioned
http://www.debian.org/Lists-Archives/debian-legal-0002/msg00043.html

> I don't believe so, but I doubt there is any relevant case law on this.

Need there be? To me the logic seems inescapable. Either you are distributing
something that is "the complete source" (not just a collection of separate
pieces), which therefore a "whole" that is a "work based on the Program" and
you have to abide by GPL section 2 for that distribution, or you are not, in
which case you have no permission under section 3 to distribute the binary.

> > > Then you couldn't redistribute it. My clause is truly "viral". The GPL,
> > > as written, is not. The clause would require all authors to license
> > > under the GPL (of course they could license under other licenses as
> > > well, but the GPL would have to be one of them).
> >
> > So under your formulation, one couldn't use any X or BSD code.
> 
> Nor under your reading of the GPL, for that matter.

You could, see above.
 
Ciao,

Marc van Leeuwen


Reply to: