On Mon, 16 Jan 2006 09:07:42 -0800 Don Armstrong wrote: > Here is version 3; it's also available on gplv3.fsf.org as well.
OK, I'm going to comment here first, so that I can get some feedback from other debian-legal regulars. Feel free to comment on my concerns. > GNU GENERAL PUBLIC LICENSE > TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION > > 0. Definitions. > > A "licensed program" means any program or other work distributed under > this License. The "Program" refers to any such program or work, Is it supposed to be "licensed program" or "licensed Program"? Since the GPL is designed to be applicable to any work of authorship (not only computer programs), I would prefer seeing a more neutral term than "Program". Since "licensed program" is defined as "any program or other work distributed under this License", why don't they use a term such as "licensed Work"? Calling it "Program" is misleading and actually confuses many many people into thinking the GPL can only be applied to computer programs. > and a > "work based on the Program" means 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 modified or unmodified. This defines a "work based on the Program" as "either the Program or any derivative work under copyright law" and then tries to restate this definition by expanding what "derivative work" is supposed to mean under copyright law. This is troublesome, since in the opinion of some people with legal expertise, the restatement is flawed and fails to actually mean the same as the real definition. For instance, the restatement seems to catch collective works containing the Program; on the other hand those works are neither the Program, nor derivative works of the Program under copyright law... Moreover, what is actually a derivative work under copyright law is subject to change in time (laws can be updated) and could even be jurisdiction-dependent in some corner cases (despite the Berne Convention). Linking the definition of "work based on the Program" to definitions found in copyright law can be a good thing to keep, but then the license text should avoid hard-coding a particular meaning that the referred-to legal concepts are supposed to have... > Throughout > this License, the term "modification" includes, without limitation, > translation and extension. The rationale (http://gplv3.fsf.org/rationale) explains that "extension" is intended to refer to activities such as adding text to a work. But, unfortunately, "extension" seems to be too vague a term: for instance, one can say that a script that preprocesses input data for a given program "extends" that program. I would not classify this as "modification" though (as the program is actually unchanged) and I don't think I need a license from the program copyright holders to write and distribute such a script. This could fail DFSG#9. > A "covered work" means either the Program > or any work based on the Program. :-? Thus (after substituting the definition of "work based on the Program") a "covered work" means: either { the Program } or { either { the Program } or { any derivative work under copyright law } } Now I'm puzzled. Isn't this the same as a "work based on the Program"? In other words: are they calling the same thing with two distinct names? Why? > Each licensee is addressed as "you". > > To "propagate" a work means doing anything with it that requires > permission under applicable copyright law, other than executing it on > a computer or making private modifications. This includes copying, > distribution (with or without modification), sublicensing, and in some > countries other activities as well. If I understand correctly, broadcast or public performance are included in the term "propagation". This may be useful, let's see how it is used... > > 1. Source Code. > > The "source code" for a work means the preferred form of the work > for making modifications to it. "Object code" means any non-source > version of a work. This seems to be OK. > The "Complete Corresponding Source Code" for a work in object code > form means all the source code needed to understand, adapt, modify, > compile, link, install, and run the work, excluding general-purpose > tools used in performing those activities but which are not part of > the work. For example, this includes any scripts used to control those > activities, and any shared libraries and dynamically linked > subprograms that the work is designed to require, such as by intimate > data communication or control flow between those subprograms and other > parts of the work, and interface definition files associated with the > program source files. > > Complete Corresponding Source Code also includes any encryption or > authorization codes necessary to install and/or execute the source > code of the work, perhaps modified by you, in the recommended or > principal context of use, such that its functioning in all > circumstances is identical to that of the work, except as altered by > your modifications. It also includes any decryption codes necessary to > access or unseal the work's output. Notwithstanding this, a code need > not be included in cases where use of the work normally implies the > user already has it. The last two sentences may be troublesome. I share Walter Landry's concerns about "a script that encrypts a message with a public key and sends it to the person with the private key". Does the GPLv3 force distributors to provide the private key along with the script? > > Complete Corresponding Source Code need not include anything that > users can regenerate automatically from other parts of the Complete > Corresponding Source Code. > > As a special exception, the Complete Corresponding Source Code need > not include a particular subunit if (a) the identical subunit is > normally included as an adjunct in the distribution of either a major > essential component (kernel, window system, and so on) of the > operating system on which the executable runs or a compiler used to > produce the executable or an object code interpreter used to run it, > and (b) the subunit (aside from possible incidental extensions) serves > only to enable use of the work with that system component or compiler > or interpreter, or to implement a widely used or standard interface, > the implementation of which requires no patent license not already > generally available for software under this License. The definition of "Complete Corresponding Source Code" seems to be more or less acceptable, but it's hard to read and understand. It should be improved by making it clearer and possibly simpler, perhaps. > > 2. Basic Permissions. > > All rights granted under this License are granted for the term of > copyright on the Program, and are irrevocable provided the stated > conditions are met. This License explicitly affirms your unlimited > permission to run the Program. The output from running it is covered > by this License only if the output, given its content, constitutes a > work based on the Program. This License acknowledges your rights of > "fair use" or other equivalent, as provided by copyright law. Good to see that "fair use" and similar rights are explicitly mentioned. > > This License gives unlimited permission to privately modify and run > the Program, provided you do not bring suit for patent infringement > against anyone for making, using or distributing their own works based > on the Program. This is a so-called patent retaliation clause. Is it too far-reaching, in your opinion? It's triggered only by patent suits that are related to the Program and that are intended to effectively restrict other parties' freedoms to use, copy or distribute their own works based on the Program... On the other side, copyright does not cover use, so how can a copyright holder (assuming he/she does not hold patents) terminate the right to *use* the work for a licensee? Is this clause intended to take away from bad guys (who sue for patent infringement) a right that they *would* have if they didn't accept the license?? What do you think? > > Propagation of covered works is permitted without limitation provided > it does not enable parties other than you to make or receive copies. > Propagation which does enable them to do so is permitted, as > "distribution", under the conditions of sections 4-6 below. The rationale (http://gplv3.fsf.org/rationale) explains that this paragraph is intended to distinguish between two subclasses of propagation: the first subclass includes activities such as private copying or private viewing; the second subclass includes the rest of the activities that qualify as propagation (for example making copies for friends, and so forth...). I'm not sure the phrasing actually achieves this goal, though. I can propagate a covered work without having to comply with sections 4-6, provided that I do so without allowing other people to "make or receive copies". Does broadcasting a music file through a DRM-encumbered channel count as propagation that does not enable other parties to make or receive copies (and thus does not fall under the requirements of sections 4-6)? If this is the case, it seems to be permitted without limitation... Or am I completely off track? I know that, technically, broadcasting a music file *does* cause the listeners to receive a copy (one that is forced to be ephemeral when the streaming is DRM-encumbered, but a copy anyway). But will a court view things this way? > > 3. Digital Restrictions Management. > > As a free software license, this License intrinsically disfavors > technical attempts to restrict users' freedom to copy, modify, and > share copyrighted works. Each of its provisions shall be interpreted > in light of this specific declaration of the licensor's intent. > Regardless of any other provision of this License, no permission is > given to distribute covered works that illegally invade users' > privacy, Wait, wait. Does this mean that I cannot modify a "licensed program" in order to implement some illegal privacy-invading feature and distribute the resulting work? This seems to fail DFSG#3 and DFSG#6. I'm definitely *against* privacy invasions, but this should not belong in a copyright license. If the privacy invasion is indeed illegal, there are already laws to forbid that behavior. The license should *not* say that you cannot distribute a modified program that performs illegal operations. > nor for modes of distribution that deny users that run > covered works the full exercise of the legal rights granted by this > License. This seems to be OK. Distribution through DRM-encumbered media or channels seems to be allowed as long as final recipients are not denied the freedoms granted by the license. For instance, distributing through a DRM-*un*encumbered media or channel in parallel to the DRM-encumbered one, should be considered enough to re-enable the full exercise of the legal rights granted by the license... > > No covered work constitutes part of an effective technological > protection measure: that is to say, distribution of a covered work as > part of a system to generate or access certain data constitutes > general permission at least for development, distribution and use, > under this License, of other software capable of accessing the same > data. This seems to say "permission is granted to write, distribute and use other software to interoperate with the same data-formats used by the Program". The rationale (http://gplv3.fsf.org/rationale) clarifies that this is intended to prevent people from claiming that accessing data handled by a GPL'd program is an illegal (per DMCA, EUCD, ...) circumvention of "technological protection measures". I don't know if this clause achieves its goal, but it does not seem to harm the Freeness of the license. The only issue is that it could be untrue. I agree with the concerns of Walter Landry who provided GnuPG as an example of something that may actually be called "part of an effective technological protection measure". > > 4.[1] Verbatim Copying. [...] This is basically the same as in GPLv2. OK. > 5.[2] Distributing Modified Source Versions. > > Having modified a copy of the Program under the conditions of section > 2, thus forming a work based on the Program, you may copy and > distribute such modifications or work in the form of source code under > the terms of Section 4 above, provided that you also meet all of these > conditions: > > a) The modified work must carry prominent notices stating that you > changed the work and the date of any change. > > b) You must license the entire modified work, as a whole, under > this License to anyone who comes into possession of a copy. This > License must apply, unmodified except as permitted by section 7 > below, to the whole of the work. This License gives no permission > to license the work in any other way, but it does not invalidate > such permission if you have separately received it. Section 5 seems OK so far (apart from the reference to Section 7, more on this later...). > c) If the modified work has interactive user interfaces, each must > include a convenient feature that displays an appropriate > copyright notice, and tells the user that there is no warranty for > the program (or that you provide a warranty), that users may > redistribute the modified work under these conditions, and how to > view a copy of this License together with the central list (if any) of > other terms in accord with section 7. If the interface presents a > list of user commands or options, such as a menu, a command to > display this information must be prominent in the list. > Otherwise, the modified work must display this information at > startup--except in the case that the Program has such > interactive modes and does not display this information at > startup. This is getting worse than the corresponding clause 2c in the GPLv2... :-( It's an inconvenience and border-line with respect to DFSG-freeness. Actually this clause restricts how I can modify what an interactive program does when run. It mandates a feature that I *must* implement in *any* interactive interface of my modified work. It's very close to fail DFSG#3. I would like to see clause 5c dropped entirely. > > These requirements apply to the modified work as a whole. If > identifiable sections of that work, added by you, are not derived from > the Program, and can be reasonably considered independent and separate > works in themselves, then this License, and its terms, do not apply to > those sections when you distribute them as separate works for use not > in combination with the Program. But when you distribute the same > sections for use in combination with covered works, no matter in what > form such combination occurs, the whole of the combination must be > licensed under this License, whose permissions for other licensees > extend to the entire whole, and thus to every part of the whole. Your > sections may carry other terms as part of this combination in limited > ways, described in section 7. This is getting more far-reaching than the corresponding paragraph in GPLv2. Instead of talking about "sections" distributed "as part of a whole which is a work based on the Program" (as in GPLv2), it talks about "sections" distributed "for use in combination with covered works, no matter in what form such combination occurs". Those sections must be distributed under the terms of the license, when so distributed. With the GPLv3draft1 phrasing it seems that even collective works (such as Debian GNU/Linux) must be licensed as a whole under the GPLv3 as soon as (at least) *one* package is GPLv3'ed. Because Debian packages are distributed "for use in combination with" that package, "no matter in what form such combination occurs". Does this pass DFSG#9? [...] > A compilation of a covered work with other separate and independent > works, which are not by their nature extensions of the covered work, > in or on a volume of a storage or distribution medium, is called an > "aggregate" if the copyright resulting from the compilation is not > used to limit the legal rights of the compilation's users beyond what > the individual works permit. Mere inclusion of a covered work in an > aggregate does not cause this License to apply to the other parts of > the aggregate. This seems to contradict what is stated in the above-discussed paragraph... Which one wins? > > 6.[3] Non-Source Distribution. [...] Clause 6 seems to basically similar to GPLv2#3 (maybe even slightly more permissive in some respects). > 7. License Compatibility. > > When you release a work based on the Program, you may include your own > terms covering added parts for which you have, or can give, > appropriate copyright permission, as long as those terms clearly > permit all the activities that this License permits, or permit usage > or relicensing under this License. Your terms may be written > separately or may be this License plus additional written permission. > If you so license your own added parts, those parts may be used > separately under your terms, but the entire work remains under this > License. Those who copy the work, or works based on it, must preserve > your terms just as they must preserve this License, as long as any > substantial portion of the parts they apply to are present. This is now more explicitly stated, but is true for GPLv2 as well, as the rationale (http://gplv3.fsf.org/rationale) clarifies. > > Aside from additional permissions, your terms may add limited kinds of > additional requirements on your added parts, as follows: I strongly *dislike* the entire concept of allowing a limited set of additional restrictions (they diplomatically call them "requirements") to be added. That is against the spirit of the GPLv2 (where FSF promised that new versions would "be similar in spirit to the present version", see GPLv2, section 9.) and weakens the copyleft. Yes, it enhances license compatibility (as the rationale explains), but the GPL never was a champion of compatibility. If the FSF want to maximize license compatibility, they can adopt the 2-clause BSD license as the new GPL... It would be compatible with pretty everything and clearly (DFSG-)free, even though non-copyleft. I'm *not* against non-copyleft DFSG-free licenses, but they definitely aren't "similar in spirit to" GPLv2... I would be happy to see all these permissions to add restrictions entirely dropped from Section 7. > > a) They may require the preservation of certain copyright notices, > other legal notices, and/or author attributions, Are GFDL-style Invariant Sections making their way into the GPLv3 ?!?!? What's a "legal notice"? What's an "author attribution"? Can it be some sort of invariant bla-bla-bla-yada-yada-yada that I cannot remove or modify?!? This option could make the work fail DFSG#3, when exercised. I would rather avoid introducing such options in the GPLv3! > and may require > that the origin of the parts they cover not be misrepresented, This should not belong in a license. There are already specific laws against misrepresentation (copyright itself, libel/slander, ...). > and/or that altered versions of them be marked in the source code, > or marked there in specific reasonable ways, as different from the > original version. [...] > d) They may require that the work contain functioning facilities that > allow users to immediately obtain copies of its Complete Corresponding > Source Code. This requirement would introduce another mandated feature that I cannot remove. A mandated feature that is more than an inconvenience and thus is worse than clause 5c. This option would make the work fail DFSG#3, when exercised. Moreover the term "users" is a bit too vague (see, for instance, the recently cited http://lists.debian.org/debian-legal/2003/03/msg00805.html). I would like to see clause 7d dropped entirely. > > e) They may impose software patent retaliation, which means permission > for use of your added parts terminates or may be terminated, wholly or > partially, under stated conditions, for users closely related to any > party that has filed a software patent lawsuit (i.e., a lawsuit > alleging that some software infringes a patent). The conditions must > limit retaliation to a subset of these two cases: 1. Lawsuits that > lack the justification of retaliating against other software patent > lawsuits that lack such justification. 2. Lawsuits that target part of > this work, or other code that was elsewhere released together with the > parts you added, the whole being under the terms used here for those > parts. This seems to be too far-reaching. It's possible to terminate license for "users closely related to any party that has filed a software patent lawsuit [...] alleging that some software infringes a patent". Closely related?!? Some software?!? Does this pass DFSG#5? It seems to discriminate against people closely related to patent-suers... It's possible to terminate license for who sues for "other code that was elsewhere released together with the parts you added [...]". Elsewhere released?!? I would like to see clause 7e dropped entirely. [...] > 8.[4] Termination. > > You may not propagate, modify or sublicense the Program except as > expressly provided under this License. Any attempt otherwise to > propagate, modify or sublicense the Program is void, and any copyright > holder may terminate your rights under this License at any time after > having notified you of the violation by any reasonable means within 60 > days of any occurrence. However, parties who have received copies, or > rights, from you under this License will not have their licenses > terminated so long as they remain in full compliance. Clause 8 seems to be fairly similar to clause 4 of GPLv2. As in GPLv2, it fails to mention "fair use" and similar rights and possible separate licenses (as in disjunctive dual-licensing...). It should be improved. > 9.[5] Not a Contract. > > You are not required to accept this License in order to receive a copy > of the Program. However, nothing else grants you permission to > propagate or modify the Program or any covered works. These actions > infringe copyright if you do not accept this License. Therefore, by > modifying or propagating the Program (or any covered work), you > indicate your acceptance of this License to do so, and all its terms > and conditions. Fails to mention "fair use" and similar rights and possible separate licenses. This should be improved. > > 10.[6] Automatic Licensing of Downstream Users. > > Each time you redistribute a covered work, the recipient automatically > receives a license from the original licensors, to propagate and > modify that work, subject to this License, including any additional > terms introduced through section 7. You may not impose any further > restrictions on the recipients' exercise of the rights thus granted or > affirmed, except (when modifying the work) in the limited ways > permitted by section 7. You are not responsible for enforcing > compliance by third parties to this License. And so, thanks to section 7, no more "You may not impose any further restrictions"... Say goodbye to copyleft! How can this GPLv3 be considered similar in spirit to GPLv2 (as promised by the FSF in GPLv2, section 9.)?!? > > 11. Licensing of Patents. [...] Seems acceptable to me. > 12.[7] Liberty or Death for the Program. [...] Seems substantially the same as section 7 of GPLv2. > [13.[8] Geographical Limitations. [...] Seems exactly the same as section 8 of GPLv2. It's problematic, even though I cannot remember any case where it was exercised. I would like to see the clause dropped (as it will likely be), since I think a geografically restricted work would not pass DFSG#5. > 14.[9] Revised Versions of this License. [...] Same as section 9 of GPLv2, apart from minor rephrasing. OK (if only the FSF kept the promises and actually made GPLv3 similar in spirit to GPLv2...). > 15.[10] Requesting Exceptions. [...] Quite the same as section 10 of GPLv2. Seems OK to me, even if it sounds a bit off-topic in the license text... > NO WARRANTY > > 16.[11] There is no warranty for the Program, [...] > 17.[12] In no event [...] These two sections are virtually the same as sections 11 and 12 of GPLv2. They seem OK to me. > 18. Unless specifically stated, the Program has not been tested for > use in safety critical systems. OK. > > END OF TERMS AND CONDITIONS -- :-( This Universe is buggy! Where's the Creator's BTS? ;-) ...................................................................... Francesco Poli GnuPG Key ID = DD6DFCF4 Key fingerprint = C979 F34B 27CE 5CD8 DC12 31B5 78F4 279B DD6D FCF4
pgpm2be47spCP.pgp
Description: PGP signature