Anthony Towns wrote: > On Thu, Feb 10, 2000 at 12:47:21PM +1100, Don Sanders wrote: > > Firstly I showed him a copy of the GPL: > > http://www.gnu.org/copyleft/gpl.html > > > > and then Andreas Pour's interpretation of the GPL: > > http://lists.kde.org/?/=kde-licensing&m=94950776505266&w=2 > > > > * He agreed the Andreas Pour's preferred interpretation of the phrase "under > > the terms of this License" was the one most likely to be used by a Judge > > interpreting the GPL. > > This interpretation is: ``all terms of this license which specifically > apply to the added code'', which is ``terms 1 and 2 of the license'', > as opposed to ``all the terms of this license''. > > So Alice, say, can distribute KDE binaries, provided she also distributes > the complete source code (including Qt, we'll assume) under terms 1 and 2 > (3a). > > Now if Bob receives a copy from Alice, Alice has specifically given > him permission (in term 2) to ``modify [his] copy [...] of the Program or > any portion of it [...] and copy and distribute such modifications or work > under the terms of section 1'',in which case he can modify and distribute
> Qt (a porton of the complete source code Alice gave him) I think this is a sophism. My point all along has been that Qt is not part of the "Program". Remember where the term "Program" comes from. It is defined in Section 0 of the GPL to mean: any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License So obviously Qt is not a "Program". However, Section 2 of the GPL also refers to any "work based on the Program". This term is also defined in Section 0 of the GPL to mean: either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. So, let's see if Qt meets that definition, in context of what appears to be the most vexing example of a KDE program, kghostview (in point of fact kghostview launches ghostview as a separate app and grabs its window, but let's suppose for argument that it actually reproduced ghostview code as part of it). Is kghostview a derivative work of Qt? No. Why not? Looking at the definition of derivative work in the Copyright Act (http://www4.law.cornell.edu/uscode/17/101.html): A ''derivative work'' is a work based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a ''derivative work''. Now, how is kghostview "based upon" Qt (in the sense of "recast[ing], transform[ing], or adapt[ing]" Qt)? It's totally separate code. To emphasize that point, the GPL section 0 has the phrase "that is to say, work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language". Does Qt "contain[] [kghostview] or a portion of it"? No. Hence Qt is not a "work based on the Program". Hence, Qt is neither a "Program" nor a "work based on a Program", though kghostview of course is. In fact, the only way Qt even gets into the picture is in Section 3 of the GPL, which deals with binary distributions. In other words, if nobody compiled kghostview, the GPL would not apply to Qt at all. Now when you compile kghostview w/ Qt, then, at least in the case of a statically-linked binary, Qt becomes subject to Section 2, by virtue of Section 3 of the GPL. This is b/c Section 3 takes a different approach then Section 2. Section 3 requires you to apply Section 2 to source code that is neither a "Program" nor a "work based on the Program". It does this by requiring the distribution of the "complete source code" to a binary. Thus, if you combine two distinct, separate works into a binary, you need to distribute the source code to both. So assuming Section 2 does apply to the distribution of Qt source code when distributing kghostview under Section 3, what precise requirements apply to it? First, the first sentence of Section 2 says: 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: OK, kghostview has modified ghostview (the "Program"). But Qt source code is still not part of the picture: it is neither the "Program" (ghostview) nor "work based on the Program" (kghostview). So this sentence does not apply to Qt source code (although the conditions still may, I'll look at those in a bit). What about the statically-linked kghostview binary? That is a "work based on the Program". What do I have to do to that? Well, distribute my modifications under Section 1. Section 1 by its terms only applies to source code, so it does not apply to the Qt binary. What about the rest of Section 2? 2(a) is a notice provision: kghostview must comply with that. 2(a) does not apply to Qt source code for two reasons. First, Section 2(a) applies only to the "Program" and a "work based on a Program", so Qt is not implicated, being neither. Second, it only has requirements with respect to modified files. This refers to the modified files of the Program, since the Qt files are not modified (plus syntactically it is a back-reference to the "modifications" to the Program). Section 2(b) states: You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. Again, this clearly applies to our hypothetical kghostview. It does not apply to the Qt source code, as that neither "contains" nor is it "derived from" "the Program or any part thereof" (the Program being ghostview). However, since the binary itself is a "modification" of the Program, and it is statically linked with Qt, that is covered by Section 2(b). So the binary must be "licensed as a whole at no charge to all third parties under the terms of this License." Now, I've been through this analysis, and I won't repeat myself here. But to those that argue the entire GPL applies to Qt through this sentence, I wonder how it makes sense to apply the entire GPL to a binary. Section 2(c) is not, AFAIK, controversial, so I'll dispense with looking at that. > as long as he: > > * adds prominent notices about his changes > * distributes it under terms 1 and 2 of the GPL > (under Andreas' interpretation people can't make binaries > based on his alterations) I haven't noticed this limitation. > * makes it display a note when run interactively. > > Unfortunately Alice doesn't have the right to give him this permission, > because she is only licensed to distribute Qt under the QPL, so Bob may > only ``make modifications to [Qt] and distribute [his] modifications, > in a form that is separate from [Qt]''. Again, if you read the GPL to require distributing all linked libraries licensed under the GPL, you run into big problems with XFree code, as well as BSD code (though in that case it is not quite as obvious as in the XFree case). Ciao, Andreas