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

Re: New GPLv3 and LGPLv3 discussion drafts available



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

Attachment: pgpkC8sTZa8HG.pgp
Description: PGP signature


Reply to: