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

Re: Final text of GPL v3

On Sat, Jun 30, 2007 at 12:47:59AM +0200, Francesco Poli wrote:
>   A "Standard Interface" means an interface that either is an official
> standard defined by a recognized standards body, or, in the case of
> interfaces specified for a particular programming language, one that
> is widely used among developers working in that language.

>   The "System Libraries" of an executable work include anything, other
> than the work as a whole, that (a) is included in the normal form of
> packaging a Major Component, but which is not part of that Major
> Component, and (b) serves only to enable use of the work with that
> Major Component, or to implement a Standard Interface for which an
> implementation is available to the public in source code form.  A
> "Major Component", in this context, means a major essential component
> (kernel, window system, and so on) of the specific operating system
> (if any) on which the executable work runs, or a compiler used to
> produce the work, or an object code interpreter used to run it.

Um.  Raise your hand if you're actually able to parse what this says?

>   The "Corresponding Source" for a work in object code form means all
> the source code needed to generate, install, and (for an executable
> work) run the object code and to modify the work, including scripts to
> control those activities.  However, it does not include the work's
> System Libraries, or general-purpose tools or generally available free
> programs which are used unmodified in performing those activities but
> which are not part of the work.  For example, Corresponding Source
> includes interface definition files associated with source files for
> the work, and the source code for shared libraries and dynamically
> linked subprograms that the work is specifically designed to require,
> such as by intimate data communication or control flow between those
> subprograms and other parts of the work.

I don't think this clause says anything non-free (indeed, it seems to be
weaker than the existing clause in GPLv2), but wow, if it isn't hard to
read.  I guess there's something in the GPLv3 to please everyone, including
lawyers. >:)

>   A "User Product" is either (1) a "consumer product", which means any
> tangible personal property which is normally used for personal, family,
> or household purposes, or (2) anything designed or sold for incorporation
> into a dwelling.  In determining whether a product is a consumer product,
> doubtful cases shall be resolved in favor of coverage.  For a particular
> product received by a particular user, "normally used" refers to a
> typical or common use of that class of product, regardless of the status
> of the particular user or of the way in which the particular user
> actually uses, or expects or is expected to use, the product.  A product
> is a consumer product regardless of whether the product has substantial
> commercial, industrial or non-consumer uses, unless such uses represent
> the only significant mode of use of the product.

>   "Installation Information" for a User Product means any methods,
> procedures, authorization keys, or other information required to install
> and execute modified versions of a covered work in that User Product from
> a modified version of its Corresponding Source.  The information must
> suffice to ensure that the continued functioning of the modified object
> code is in no case prevented or interfered with solely because
> modification has been made.

>   If you convey an object code work under this section in, or with, or
> specifically for use in, a User Product, and the conveying occurs as
> part of a transaction in which the right of possession and use of the
> User Product is transferred to the recipient in perpetuity or for a
> fixed term (regardless of how the transaction is characterized), the
> Corresponding Source conveyed under this section must be accompanied
> by the Installation Information.  But this requirement does not apply
> if neither you nor any third party retains the ability to install
> modified object code on the User Product (for example, the work has
> been installed in ROM).

>   The requirement to provide Installation Information does not include a
> requirement to continue to provide support service, warranty, or updates
> for a work that has been modified or installed by the recipient, or for
> the User Product in which it has been modified or installed.  Access to a
> network may be denied when the modification itself materially and
> adversely affects the operation of the network or violates the rules and
> protocols for communication across the network.

>   Corresponding Source conveyed, and Installation Information provided,
> in accord with this section must be in a format that is publicly
> documented (and with an implementation available to the public in
> source code form), and must require no special password or key for
> unpacking, reading or copying.

Huh, nicely done.  I don't see any reason that this should be considered
non-free, though I expect there'll be some debate about it on -legal.

>   Notwithstanding any other provision of this License, for material you
> add to a covered work, you may (if authorized by the copyright holders of
> that material) supplement the terms of this License with terms:

>     a) Disclaiming warranty or limiting liability differently from the
>     terms of sections 15 and 16 of this License; or

>     b) Requiring preservation of specified reasonable legal notices or
>     author attributions in that material or in the Appropriate Legal
>     Notices displayed by works containing it; or

>     c) Prohibiting misrepresentation of the origin of that material, or
>     requiring that modified versions of such material be marked in
>     reasonable ways as different from the original version; or

>     d) Limiting the use for publicity purposes of names of licensors or
>     authors of the material; or

>     e) Declining to grant rights under trademark law for use of some
>     trade names, trademarks, or service marks; or

>     f) Requiring indemnification of licensors and authors of that
>     material by anyone who conveys the material (or modified versions of
>     it) with contractual assumptions of liability to the recipient, for
>     any liability that these contractual assumptions directly impose on
>     those licensors and authors.

Each of these appears to be a license term that we have accepted as free
before, so there doesn't seem to be any reason to think that the
DFSG-compliance of the GPLv3 is variable.

>   All other non-permissive additional terms are considered "further
> restrictions" within the meaning of section 10.  If the Program as you
> received it, or any part of it, contains a notice stating that it is
> governed by this License along with a term that is a further
> restriction, you may remove that term.


WTF, seriously?  Reading this makes me want to go write some new code,
license it under the GPLv3 with some random and arbitrary prohibition, and
watch someone at the FSF try to argue that the additional restriction has no
legal force.

Not non-free, just incredibly goofy; I understand the motivation, I just
don't see how anyone would actually think this would address the problem.

>   You may not impose any further restrictions on the exercise of the
> rights granted or affirmed under this License.  For example, you may
> not impose a license fee, royalty, or other charge for exercise of
> rights granted under this License, and you may not initiate litigation
> (including a cross-claim or counterclaim in a lawsuit) alleging that
> any patent claim is infringed by making, using, selling, offering for
> sale, or importing the Program or any portion of it.

Right, here we start getting into the murky world of patents.  This part
says that as a condition of accepting the license on a work, you may not
assert patent rights over the work. Ok, that doesn't seem different from
GPLv2 to me.  (Hmm, I think I need to go back and look at the APSL again, to
understand how it's different from GPLv2/v3.)

>   11. Patents.

>   A "contributor" is a copyright holder who authorizes use under this
> License of the Program or a work on which the Program is based.  The
> work thus licensed is called the contributor's "contributor version".

>   A contributor's "essential patent claims" are all patent claims
> owned or controlled by the contributor, whether already acquired or
> hereafter acquired, that would be infringed by some manner, permitted
> by this License, of making, using, or selling its contributor version,
> but do not include claims that would be infringed only as a
> consequence of further modification of the contributor version.  For
> purposes of this definition, "control" includes the right to grant
> patent sublicenses in a manner consistent with the requirements of
> this License.

>   Each contributor grants you a non-exclusive, worldwide, royalty-free
> patent license under the contributor's essential patent claims, to
> make, use, sell, offer for sale, import and otherwise run, modify and
> propagate the contents of its contributor version.

This says that anyone licensing code under the GPLv3 is implicitly granting
a license to any patents they hold which affect the use of the work,
*without* requiring the licensor to give up enforcement of unrelated
patents that someone might later infringe by modifying the work.  Ok.

>   In the following three paragraphs, a "patent license" is any express
> agreement or commitment, however denominated, not to enforce a patent
> (such as an express permission to practice a patent or covenant not to
> sue for patent infringement).  To "grant" such a patent license to a
> party means to make such an agreement or commitment not to enforce a
> patent against the party.

>   If you convey a covered work, knowingly relying on a patent license,
> and the Corresponding Source of the work is not available for anyone
> to copy, free of charge and under the terms of this License, through a
> publicly available network server or other readily accessible means,
> then you must either (1) cause the Corresponding Source to be so
> available, or (2) arrange to deprive yourself of the benefit of the
> patent license for this particular work, or (3) arrange, in a manner
> consistent with the requirements of this License, to extend the patent
> license to downstream recipients.  "Knowingly relying" means you have
> actual knowledge that, but for the patent license, your conveying the
> covered work in a country, or your recipient's use of the covered work
> in a country, would infringe one or more identifiable patents in that
> country that you have reason to believe are valid.

Here I'm confused again.  What does making the source code available have to
do with patents?  Isn't it the case that the license already requires source
code availability?  How does making the source code available help the
patent problem?

Is the meaning here that the Corresponding Source is only "available" if
there are no patents applying to it?  That's the only sensible meaning I can
extract, but the license seems to go about saying this in a rather obtuse

What does (2) really mean?  How can one "arrange to deprive [oneself] of the
benefit of the patent license" -- by goading the licensor into suing you? :)
Otherwise, even if the patent license agreement is terminated on paper, how
do you force the patent holder to still treat everyone "fairly"?

But, ok; in spite of the above doubts, they've done a pretty good job of
closing the patent loophole, and done so in a way that I think is DFSG-ok.

>   If, pursuant to or in connection with a single transaction or
> arrangement, you convey, or propagate by procuring conveyance of, a
> covered work, and grant a patent license to some of the parties
> receiving the covered work authorizing them to use, propagate, modify
> or convey a specific copy of the covered work, then the patent license
> you grant is automatically extended to all recipients of the covered
> work and works based on it.


>   A patent license is "discriminatory" if it does not include within
> the scope of its coverage, prohibits the exercise of, or is
> conditioned on the non-exercise of one or more of the rights that are
> specifically granted under this License.  You may not convey a covered
> work if you are a party to an arrangement with a third party that is
> in the business of distributing software, under which you make payment
> to the third party based on the extent of your activity of conveying
> the work, and under which the third party grants, to any of the
> parties who would receive the covered work from you, a discriminatory
> patent license (a) in connection with copies of the covered work
> conveyed by you (or copies made from those copies), or (b) primarily
> for and in connection with specific products or compilations that
> contain the covered work, unless you entered into that arrangement,
> or that patent license was granted, prior to 28 March 2007.

Huh, is this anti-discrimination clause discriminatory against
people/companies who were late to the patent game? :)

Of everything in this license, this is the one paragraph I'm least certain
about in terms of DFSG-compatibility.  On the one hand, it prevents
licensees from being able to buy patent protection on behalf of their
customers, which is in many respects a useful service for vendors to be able
to provide; on the other hand it prevents certain noteworthy software
vendors from using their patent portfolios strategically against the Linux
community in ways that are detrimental to Free Software as a whole.

And on the gripping hand, there's this rather unfair exception for patent
licensees who got in on the game early.

I guess I don't see that either side of this argument is overwhelmingly
compelling; so I expect that this will be disputed, but accepted by the

>   13. Use with the GNU Affero General Public License.

>   Notwithstanding any other provision of this License, you have
> permission to link or combine any covered work with a work licensed
> under version 3 of the GNU Affero General Public License into a single
> combined work, and to convey the resulting work.  The terms of this
> License will continue to apply to the part which is the covered work,
> but the special requirements of the GNU Affero General Public License,
> section 13, concerning interaction through a network will apply to the
> combination as such.

Hmm, so maybe when I license my software with an extra restriction, this is
what I'll restrict. ;)

I'm no fan of Affero, but permitting linking with it is certainly not a DFSG

So all in all, not bad; I'm actually quite pleased with it given what I
remember of some of the earlier drafts that were floated.  Not only do I
think it's free, I think it's a license that I'd be willing to consider for
my own code.

Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
vorlon@debian.org                                   http://www.debian.org/

Reply to: