On Thu, 27 Jul 2006 22:19:49 -0400 Nathanael Nerode wrote: > Just a heads-up. > > http://gplv3.fsf.org/ [...] > You know where to leave your comments (http://gplv3.fsf.org/) -- but > if there are any DFSG-freeness issues in the new drafts, please bring > them up here as well so we can try to hash out whether they really > are.
What follows is my own analysis of GPLv3draft2. I welcome any comments on my reasonings. > GNU GENERAL PUBLIC LICENSE > Discussion Draft 2 of Version 3, 27 July 2006 > > THIS IS A DRAFT, NOT A PUBLISHED VERSION OF THE GNU GENERAL PUBLIC > LICENSE. [...] > TERMS AND CONDITIONS > > 0. Definitions. > > In this License, each licensee is addressed as "you," while "the > Program" refers to any work of authorship licensed under this License. :::: Style: Program or Work? Since the GPL is designed to be applicable to any work of authorship (not only computer programs), I would suggest using a more neutral term than "the Program". Something like "the Work" would avoid misleading many many people into thinking that the GPL can only be applied to computer programs. > A "modified" work includes, without limitation, versions in which > material has been translated or added. A work "based on" another work > means any modified version, formation of which requires permission > under applicable copyright law. A "covered work" means either the > unmodified Program or a work based on the Program. :::: Good: clearer definitions Major improvement: these definitions are much clearer. It's good that now the definition of "based on" exploits applicable copyright law whithout trying to rewrite it. This ensures that the license does not place restrictions on activities that do not require permission under applicable copyright law. > > To "propagate" a work means doing anything with it that requires > permission under applicable copyright law, except executing it on a > computer, or making modifications that you do not share. Propagation > includes copying, distribution (with or without modification), making > available to the public, and in some countries other activities as > well. To "convey" a work means any kind of propagation that enables > other parties to make or receive copies, excluding sublicensing. :::: Good: clear definitions These definitions seem fairly clear. Again, their linking to copyright law ensures that the license does not place restrictions on activities that do not require permission under applicable copyright law. > > A party's "essential patent claims" in a work are all patent claims > that the party can give permission to practice, whether already > acquired or to be acquired, that would be infringed by making, using, > or selling the work. > > 1. Source Code. :::: Good: great improvement This section is greatly improved, especially because the requirement to include output decryption keys in the Corresponding Source was dropped. Good. > > 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. :::: Good: please keep these definitions I like these definitions. Good to see that they were kept unaltered. > > The "System Libraries" of an executable work include every subunit [...] > The "Corresponding Source" for a work in object code form means all [...] > 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 unmodified Program. The output from running it > is covered by this License only if the output, given its content, > constitutes a covered work. This License acknowledges your rights of > "fair use" or other equivalent, as provided by copyright law. :::: Good: mentioning of "fair use" is an improvement Good to see that "fair use" and similar rights are explicitly mentioned. This is an improvement over GPLv2. > > This License permits you to make and run privately modified versions > of the Program, or have others make and run them on your > behalf. However, this permission terminates, as to all such versions, > if you bring suit against anyone for patent infringement of any of > your essential patent claims in any such version, for making, using, > selling or otherwise conveying a work based on the Program in > compliance with this License. :::: Bad: no permission to use the work for bad guys? This is a so-called patent retaliation clause. Isn't it a bit overreaching? It's true that 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 convey their own works based on the Program... But on the other hand, copyright does not cover use, so how can a copyright holder (assuming he/she does not hold any patent) 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?? ===> possibly a DFSG issue? > > Propagation of covered works other than conveying is permitted > without limitation. :::: Weird: does this interact with DRM broadcasting? The rationale for Draft1 (http://gplv3.fsf.org/rationale) explains that this paragraph is intended to distinguish between two subclasses of propagation: conveying and non-conveying (with the current terminology). I'm concerned that this clause has unintended consequences, though. I can propagate a covered work without having to comply with any conditions, provided that I do not convey it. Broadcasting an audio file is propagating it, at least in many jurisdictions (on the basis of the above-stated definition of "propagation"). Does broadcasting a music file through a DRM-encumbered channel count as non-conveying propagation? If this is the case, it seems to be permitted without limitation... Is this intended? 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 would a court view things this way? > Sublicensing is not allowed; section 10 makes it > unnecessary. Conveying is permitted under the conditions stated > below. > > 3. No Denying Users' Rights through Technical Measures. :::: Good: improved section This section seems to be improved with respect to GPLv3draft1, especially because the no-illegal-privacy-violation clause was dropped. > > Regardless of any other provision of this License, no permission is > given for modes of conveying that deny users that run covered works > the full exercise of the legal rights granted by this License. :::: Seems good: as long as this allows parallel conveying on DRM-encumbered *and* unencumbered channels Conveying 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, conveying through a DRM-*un*encumbered media or channel in parallel to the DRM-encumbered one, seems to be considered enough to re-enable the full exercise of the legal rights granted by the license. Does this clause permit this scenario? If this is the case, then the clause seems to be OK. > > No covered work constitutes part of an effective technological > "protection" measure under section 1201 of Title 17 of the United > States Code. :::: Problematic: too specific and possibly untrue This is really legislation-specific and could become rapidly obsolete when (hopefully) that specific section of USC changes or is removed. Moreover, it could be seen as an untrue statement in some cases. What is or is not an effective technological "protection" measure under a given section of a law is for the courts to decide, not for the licensor. In some scenarios, GnuPG may actually be called "part of an effective technological protection measure". I suggest dropping this sentence entirely. > When you convey a covered work, you waive any legal > power to forbid circumvention of technical measures that include use > of the covered work, :::: Bad: possibly overreaching This seems to be overreaching, since it could be interpreted as covering legal powers to forbid "computer crimes" such as unauthorized intrusion into computer systems. For instance, the covered work could be used as part of a firewall or IDS: circumvention of its technical measures in order to gain unauthorized access to the protected computer system or network is forbidden by law in several jurisdictions; do I waive such a legal protection, when I convey such a covered work? I suggest dropping the waiver entirely, thus leaving the following disclaimer only. ===> waiving legal rights can be seen as a fee: this clause could fail DFSG#1 > and you disclaim any intention to limit operation > or modification of the work as a means of enforcing the legal rights > of third parties against the work's users. > > 4.[1] Verbatim Copying. :::: Good: basically unchanged This is basically the same as in GPLv2 and GPLv3-draft1 (apart from the references to section 7 and slight wording improvements...). This section seems OK. > > You may copy and convey verbatim copies of the Program's source code [...] > 5.[2] Conveying Modified Source Versions. > > You may copy and convey a work based on the Program, or the > modifications to produce it from the Program, 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 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, and all its parts, regardless of > how they are packaged. 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. :::: Good: disjunctive licensing is explicitly acknowledged I think that explicitly acknowledging the possibility of dual licensing (GPLv3 or OTHERLICENSE at the recipient option) is good, as it clarifies that the GPL does not try to take away permissions that are separately granted. This is an improvement over GPLv2: good to see that it was kept in GPLv3draft2. Section 5 seems OK, so far (apart from the reference to Section 7, more on this in a later comment...) > > 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 > convey the modified work under this License, and how to view a > copy of this License together with the central list (if any) of > other terms in accord with section 7. Specifically, 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. However, if the Program has interactive > interfaces that do not comply with this subsection, your modified > work need not make them comply. :::: Bad: too restrictive Clause 5c in GPLv3draft2 is basically unchanged with respect to GPLv3draft1. It's worse than the corresponding clause 2c in GPLv2... :-( It's an inconvenience and border-line with respect to 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 place an unacceptable restriction on modification. I would like to see clause 5c dropped entirely. ===> very close to fail DFSG#3 > > To the extent that identifiable sections of the modified work, added [...] > 6.[3] Conveying Non-Source Forms. :::: Good: basically unchanged Section 6 seems to be basically similar to section 3 of GPLv2 (slightly more explicit and clear in some respects). Good. > > You may copy and convey a covered work in object code form under [...] > 7. Additional Terms. > > You may have received the Program, or parts of it, under terms that > supplement the terms of this License. These additional terms may > include additional permissions, as provided in subsection 7a, and > additional requirements, as provided in subsection 7b. When you > convey copies of a covered work, unless the work also permits use > under a previous version of this License, it must list, in one central > place in the source code, the complete set of additional terms > governing all or part of the work. > > a. Additional Permissions. [...] > b. Additional Requirements. :::: Kills copyleft: this is not in the spirit of GPLv2 I strongly *dislike* the entire concept of allowing a limited set of additional requirements to be added. That is *against* the spirit of the GPLv2 (where the FSF promised that new versions would "be similar in spirit to the present version", see GPLv2, section 9.) and greatly weakens the copyleft. Yes, it enhances license compatibility (as the rationale of GPLv3draft1 explains), but the GPL never was a champion of compatibility. If the goal were maximizing license compatibility, the best choice would be adopting the 2-clause BSD license (http://www.gnu.org/licenses/info/BSD_2Clause.html) as the new GPL... It would be compatible with pretty everything and clearly free, even though non-copyleft. I'm *not* against non-copyleft 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. In other words, I strongly suggest dropping subsection 7b entirely. ===> not a Freeness issue, but a great loss, since, if this mechanism is kept in the final GPLv3 text, GPL-compatibility will no longer be a DFSG-compliance guarantee... :-( > > Additional requirements are terms that further constrain use, > modification or propagation of covered works. This License affects > only the procedure for enforcing additional requirements, and does not > assert that they can be successfully enforced by the copyright holder. > Only these kinds of additional requirements are allowed by this > License: > > 0) terms that require preservation of specified reasonable legal > notices or author attributions; or :::: Kills copyleft: are these the cousins of GFDL's Invariant Sections? What exactly is a "reasonable legal notice"? What exactly is an "author attribution"? It seems that these terms are not defined anywhere in the license. I'm concerned that they could be interpreted in a broad sense and allow people to take a GPLv3'd work and add some sort of invariant long text that nobody will ever be able to remove or modify... This option could make a work include unmodifiable & unremovable parts and thus fail to fully grant the freedom to modify. I would rather avoid introducing such options in the GPLv3! ===> this option could make the work fail DFSG#3, when exercised > > 1) terms that require that the origin of the material they cover > not be misrepresented, or that modified versions of that > material be marked in specific reasonable ways as different > from the original version; or > > 2) warranty or liability disclaimers that differ from the > disclaimers in this License; or > > 3) terms that prohibit or limit the use for publicity purposes of > specified names of licensors or authors, or that require that > certain specified trade names, trademarks, or service marks not > be used for publicity purposes without express permission, > other than in ways that are fair use under applicable trademark > law; or > > 4) terms that require, if a modified version of the material they > cover is a work intended to interact with users through a > computer network, that those users be able to obtain copies of > the Corresponding Source of the work through the same network > session; or :::: Kills copyleft: use of privately modified versions should not be restricted The term "users" is never defined in the license and is too vague (see, for instance, http://lists.debian.org/debian-legal/2003/03/msg00805.html). This is a problem because terms like these ones would require making source available to an uncertain set of people. Moreover there are works that are not intended or ready for distribution. Use of privately modified versions of the work is an important freedom: it should be granted for network programs too. I would like to see clause 7b4 dropped entirely, as it allows modified works to be non-free. ===> this option could make the work fail the DFSG, when exercised > > 5) terms that wholly or partially terminate, or allow termination > of, permission for use of the material they cover, for a user > who files a software patent lawsuit (that is, a lawsuit > alleging that some software infringes a patent) not filed in > retaliation or defense against the earlier filing of another > software patent lawsuit, or in which the allegedly infringing > software includes some of the covered material, possibly in > combination with other software; or :::: Kills copyleft: too far-reaching restriction This seems to be too far-reaching. It's possible to terminate license for a "user who files [a non-retaliating] lawsuit alleging that *some* software infringes a patent". Some software?!? Or even for a user who files a retaliating software patent lawsuit, if the lawsuit is related to the covered material. Even defensive lawsuits?!? This option, when exercised, seems to discriminate against patent-suers (even against the ones who sue to defend themselves, in some scenarios). I'm definitely against software patents, but Free Software licenses should not discriminate against categories of people, not even against bad guys. I would like to see clause 7b5 dropped entirely, as it allows modified works to be non-free. ===> this option could make the work fail the DFSG, when exercised > > 6) terms that are precisely equivalent in type and extent to a > requirement expressly stated in this License, or that deny > permission for activities that are clearly not permitted, > expressly or otherwise, by this License. > > All other additional requirements, including attorney's fees > provisions, choice of law, forum, and venue clauses, arbitration > clauses, mandatory contractual acceptance clauses, requirements > regarding changes to the name of the work, and terms that require that > conveyed copies be governed by a license other than this License, > are prohibited. > > c. Terms Added or Removed by You. [...] > 8.[4] Termination. :::: Improvable: fails to mention fair use Section 8 seems to be fairly similar to section 4 of GPLv2 (and to section 8 of GPLv3draft1). 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 to acknowledge these possibilities. > > You may not propagate or modify the Program except as expressly [...] > 9.[5] Acceptance Not Required for Having Copies. :::: Improvable: again fails to mention fair use Another section that fails to mention "fair use" and similar rights and possible separate licenses. Section 9 should be improved by acknowledging these possibilities. > > You are not required to accept this License in order to receive or [...] > 10.[6] Automatic Licensing of Downstream Users. > > Each time you convey a covered work, the recipient automatically > receives a license from the original licensors, to run, modify and > propagate 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 in the limited ways permitted by section 7. :::: Kills copyleft: you *may* impose further restrictions Thanks to section 7 and to this permission, an exception to the famous "You may not impose any further restrictions" of GPLv2 was introduced. This weakens the copyleft mechanism (as I already pointed out when commenting on section 7). One of the key concepts that make copyleft actually work is the "You may not impose any further restrictions" constraint. It's one of the key features of GPLv2. How can this GPLv3 be considered similar in spirit to GPLv2 (as promised in GPLv2, section 9.)?!? Most "compatible" restrictions listed in section 7 vary from annoying to non-free, IMO: as a consequence, some non-free licenses would become GPL-compatible thus defeating the purpose of copyleft and the spirit of GPLv2. Explicitly mentioning those restrictions in the GPLv3 text would encourage their adoption and would make it hard to persuade people of their non-freeness (I'm already able to imagine people answering "Hey, it's blessed by GPLv3, so it must be Free!"). Moreover, expanding license compatibility can be good, but a copyleft license is not suitable for this goal. Simple, permissive non-copyleft free licenses (such as 2-clause BSD, 3-clause BSD, Expat and X11) are compatible with almost anything you could imagine. These licenses are good choices if you want compatibility, simplicity, and you don't need (or want) copyleft. The GNU GPL (v2) is instead a good choice when you want to publish a work in a Free manner, and prevent others from taking it proprietary. What's the purpose of an overly complicated and long license (such as the GPLv3 is becoming: about 1.5 times longer than GPLv2, which is already a fairly long one!) when you cannot use it to prevent others from adding undesirable restrictions to your code? I would like to see this *permission to add restrictions* entirely dropped from GPLv3. > Therefore, you may not impose a license fee, royalty, or other charge > for exercise of rights granted under this License. You are not > responsible for enforcing compliance by third parties to this License. > > If propagation results from a transaction transferring control of an > organization, each party to that transaction who receives a copy of > the work also receives a license and a right to possession of the > Corresponding Source of the work from the party's predecessor in > interest. > > 11. Patents. > > You receive the Program with a covenant from each author and > conveyor of the Program, and of any material, conveyed under this > License, on which the Program is based, that the covenanting party > will not assert (or cause others to assert) any of the party's > essential patent claims in the material that the party conveyed, > against you, arising from your exercise of rights under this License. > If you convey a covered work, you similarly covenant to all > recipients, including recipients of works based on the covered work, > not to assert any of your essential patent claims in the covered work. > > If you convey a covered work, knowingly relying on a > non-sublicensable patent license that is not generally available to > all, you must either (1) act to shield downstream users against the > possible patent infringement claims from which your license protects > you, or (2) ensure that anyone can copy the Corresponding Source of > the covered work, free of charge and under the terms of this License, > through a publicly available network server or other readily > accessible means. :::: Bad: possibly not enough as a protection against patents I don't quite understand how (2) can be seen as a specific form of shielding downstream users. If I am a downstream user who does not have a patent license, what protection (against patent infringement lawsuits) would I get from the existence of a network server which makes source available to the public? I'm puzzled. ===> this clause could be not enough to protect recipients from patent lawsuits, and thus make the work fail several DFSG, when there are actively enforced patents infringed by the work > > Nothing in this License shall be construed as excluding or limiting > any implied license or other defenses to infringement that may > otherwise be available to you under applicable patent law. > > 12.[7] No Surrender of Others' Freedom. :::: Good: basically unchanged This section seems substantially the same as section 7 of GPLv2 (and of section 12 of GPLv3draft1), apart from a deleted statement of purpose. I think it's OK. > > If conditions are imposed on you (whether by court order, agreement [...] > [13.[8] Geographical Limitations. :::: Bad: really problematic and unused This section seems basically the same as section 8 of GPLv2 (and as section 13 of GPLv3draft1). It's problematic, even though I cannot remember any case where it was exercised. I would like to see this section dropped, since I think a geografically restricted work would discriminate against some group(s) of people, and thus wouldn't be really free. ===> this option would fail DFSG#5, when exercised > > If the conveying and/or use of the Program is restricted in certain > countries either by patents or by copyrighted interfaces, the original > copyright holder who places the Program under this License may add an > explicit geographical limitation on conveying, excluding those > countries, so that conveying is permitted only in or among countries > not thus excluded. In such case, this License incorporates the > limitation as if written in the body of this License.] > > 14.[9] Revised Versions of this License. :::: Good: it should be kept as it is This section is unchanged from GPLv3draft1, and thus is basically the same as section 9 of GPLv2, apart from minor rephrasing. It's good that licensors have the option of specifying a certain version of the GNU GPL "or any later version", but are not forced to do so. In other words, the upgradeability of the license is a permission that is granted outside the license text and that is a good feature to keep. > > The Free Software Foundation may publish revised and/or new versions > of the GNU General Public License from time to time. Such new > versions will be similar in spirit to the present version, but may > differ in detail to address new problems or concerns. > > Each version is given a distinguishing version number. If the > Program specifies that a certain numbered version of this License "or > any later version" applies to it, you have the option of following the > terms and conditions either of that numbered version or of any later > version published by the Free Software Foundation. If the Program > does not specify a version number of this License, you may choose any > version ever published by the Free Software Foundation. > > [15.[10] Requesting Exceptions. :::: Improvable: OK, but off-topic Basically the same as section 10 of GPLv2 (and as section 15 of GPLv3draft1). It seems OK to me, but it sounds off-topic in the license text... I would move it outside the TERMS AND CONDITIONS. > > If you wish to incorporate parts of the Program into other free > programs under other licenses, write to the author to ask for > permission. For software which is copyrighted by the Free Software > Foundation, write to the Free Software Foundation; we sometimes make > exceptions for this. Our decision will be guided by the two goals of > preserving the free status of all derivatives of our free software and > of promoting the sharing and reuse of software generally.] > > NO WARRANTY > > 16.[11] Disclaimer of Warranty. :::: Good: basically unchanged This section seems to be virtually the same as section 11 of GPLv2 (and as section 16 of GPLv3draft1). It looks OK to me. > > There is no warranty for the Program, to the extent permitted by [...] > 17.[12] Limitation of Liability. :::: Good: basically unchanged This section seems to be virtually the same as section 12 of GPLv2 (and as section 17 of GPLv3draft1). It looks fine. > > In no event unless required by applicable law or agreed to in [...] > END OF TERMS AND CONDITIONS -- But it is also tradition that times *must* and always do change, my friend. -- from _Coming to America_ ..................................................... Francesco Poli . GnuPG key fpr == C979 F34B 27CE 5CD8 DC12 31B5 78F4 279B DD6D FCF4
pgpfVxj8JFkHX.pgp
Description: PGP signature