ESP Wiki is looking for moderators and active contributors!

Difference between revisions of "Patent clauses in software licenses"

(make list)
(References: Category: Free software)
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{navbox}}{{dud}}
+
{{dud}}
Software licences can solve a small category of patent problems.  They can give recipients an explicit grant of patent rights, and they can place requirements on patent holders who participate in distributing that software.
+
Software licences can solve a small category of patent problems.  They can:
 +
# Grant: require that distributors of a software package give recipients a licence to use any necessary patents, and
 +
# Retaliation: make patent aggression less attractive by revoking patent rights that any aggressor received through the licence
  
 
Among [[free software]] licences, the best licences to use in terms of patent clauses are:<ref>{{cite web
 
Among [[free software]] licences, the best licences to use in terms of patent clauses are:<ref>{{cite web
Line 11: Line 13:
 
* Apache 2 (if looking for a "permissive" licence)
 
* Apache 2 (if looking for a "permissive" licence)
  
Each of these is discussed below.
+
Each of these licences, and others, are discussed below.
  
 
==Limits to effectiveness==
 
==Limits to effectiveness==
Line 17: Line 19:
 
# The stronger the clause, the less likely it is that dangerous patent holders will distribute software that uses the licence.
 
# The stronger the clause, the less likely it is that dangerous patent holders will distribute software that uses the licence.
  
==How to evaluate patent clauses==
+
==Evaluating patent clauses==
  
 
Good patent clauses that can be put into software licences include:
 
Good patent clauses that can be put into software licences include:
  
* A grant of patent rights.
+
===Grants: broad and narrow===
* Retaliation - retract the granted rights from anyone who initiates litigation.  This allows the distributor to use their patents to defend against aggression.
+
{{help|Need to review these licences regarding distinction contribution/distribution}}
* Indemnity - this would be great, but it's usually impractical.
+
 
 +
The two most important aspects of grants are how broad they are, and what activates them (contribution or distribution).  A third aspect is implicit grants.
 +
 
 +
====Breadth====
 +
With grants, the broader the better.
 +
 
 +
A typical broad grant will grant rights to use contributor's patents for all functionality of the software.  That means that when someone contributes to a software package, they can't later sue you for using that package.
 +
 
 +
A narrow grant will grant rights to use the contributors patents for the code they contributed.  This means they can't contribute a feature and then sue you for using that feature, but they can still sue you for using other features of the software.
 +
 
 +
A fairly narrow grant (slightly broader than the narrow grant) will grant rights to use the contributor's patents for the code contributed plus any functionality which the software gained via this code.  This is broader because it covers not just the features directly added by the code, but also features which are completed or enabled by the code.
 +
 
 +
An example of a very good grant is GPLv3, which causes distributors of modified versions to grant an explicit patent licence for the whole program.  Next in line would be the [[#Apache License 2.0|Apache License 2.0]], which also has an explicit grant, but only for the changes made by that distributor.
 +
 
 +
====Activation: contribution or distribution====
 +
{{help|todo}}
 +
 
 +
====Implicit grants====
 +
 
 +
An implicit grant can exist when a licence says that you are free to distribute and use the software, but does not explicitly say that you are free to use the patents of the author or distributor.  It can be argued giving someone permission to use and redistribute the software implies that you are giving them permission not only regarding copyright but also regarding patents.
 +
 
 +
[[GPLv2]] has no explicit patent grant, but it has many aspects which suggest there is an implicit grant.  GPLv2 mentions that patent rights can be necessary for use and distribution of software, and says that distributors must pass on permission to use/modify/redistribute, thus forming an implicit patent grant that is quite clear.
 +
 
 +
Even the very simple licences, such as X11 or the revised BSD licence, could be argued to contain an implicit patent grant when they say:
 +
 
 +
<blockquote>
 +
Redistribution and use in source and binary forms, with or without modification, are permitted (...)
 +
</blockquote>
 +
 
 +
The licence says permission is granted.  It doesn't say that only copyright permission is granted.  However, the idea of implicit licences has not been tested in court.
 +
 
 +
===Retaliation===
 +
 
 +
Retract the granted rights from anyone who initiates litigation.  This allows the distributor to use their patents to defend against aggression.
 +
 
 +
===Indemnity===
 +
 
 +
This would be great, but it's usually impractical.
  
 
==GNU GPL v2==
 
==GNU GPL v2==
Line 31: Line 70:
 
See [http://www.gnu.org/licenses/gpl-2.0.html#section6 section 6] and [http://www.gnu.org/licenses/gpl-2.0.html#section7 section 7].
 
See [http://www.gnu.org/licenses/gpl-2.0.html#section6 section 6] and [http://www.gnu.org/licenses/gpl-2.0.html#section7 section 7].
  
Patent attorney Dan Ravicher argues that GPLv2 includes an implicit patent grant.<ref>http://ipmall.info/hosted_resources/sipla/sipla_2005/ravicher_slides.pdf</ref><ref>https://www.fsf.org/licensing/seminar-materials/2005nyc/implied-patent-grant-slides.pdf</ref>
+
Patent attorney [[Dan Ravicher]] argues that GPLv2 includes an implicit patent grant.<ref>http://ipmall.info/hosted_resources/sipla/sipla_2005/ravicher_slides.pdf</ref><ref>https://www.fsf.org/licensing/seminar-materials/2005nyc/implied-patent-grant-slides.pdf</ref>
  
 
==GNU GPL v3==
 
==GNU GPL v3==
Line 55: Line 94:
 
* [http://yro.slashdot.org/story/09/06/07/2318210/Google-Chromes-Inclusion-of-FFMpeg-Vs-the-LGPL Discussion about Google's Chrome using LGPL'd library and having a patent licence], Chris DiBona gives [http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-June/020035.html Google's position]
 
* [http://yro.slashdot.org/story/09/06/07/2318210/Google-Chromes-Inclusion-of-FFMpeg-Vs-the-LGPL Discussion about Google's Chrome using LGPL'd library and having a patent licence], Chris DiBona gives [http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-June/020035.html Google's position]
  
==Apache License==
+
==Apache License 2.0==
 
* http://www.apache.org/licenses/LICENSE-2.0
 
* http://www.apache.org/licenses/LICENSE-2.0
  
The Apache License contains both a patent grant and a patent retaliation clause.
+
The Apache License contains both a patent grant and a patent retaliation clause. The retaliation clause, written in 2004, was copied by the GNU GPLv3 and the MPL 2.0,<ref>{{cite web
 +
|url=http://opensource.com/law/11/9/mpl-20-copyleft-and-license-compatibility
 +
|title=MPL 2.0, copyleft, and license compatibility
 +
|quote=In certain circumstances, a patent litigant could trigger Apache 2.0's patent peace clause without triggering MPL 1.1's similar (but slightly different) patent peace clause. This made the two licenses incompatible in the sense used here. Aligning these triggering conditions is what allowed us to be more comfortable that Apache 2.0 and MPL 2.0 are compatible.}}</ref>
  
The grant is the fist half of Section 3:
+
The grant is the first half of Section 3:
  
 
<blockquote>
 
<blockquote>
''Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted.''
+
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted.
 
</blockquote>
 
</blockquote>
 +
 +
<!-- This grant is good, but it's narrow compared to GPLv3, since it only covers "their Contribution(s)", not the whole program. -->
  
 
The retaliation clause is the second half of that section:
 
The retaliation clause is the second half of that section:
  
 
<blockquote>
 
<blockquote>
''If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.''
+
If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
 
</blockquote>
 
</blockquote>
  
Line 77: Line 121:
 
|quote=License your software using the AGPLv3, GPLv3, LGPLv3, or Apache-2.0. [...] At least when such companies contribute code to projects under these licenses, we know those particular codebases will be safe from that particular company's patents.  
 
|quote=License your software using the AGPLv3, GPLv3, LGPLv3, or Apache-2.0. [...] At least when such companies contribute code to projects under these licenses, we know those particular codebases will be safe from that particular company's patents.  
 
}}</ref>
 
}}</ref>
 +
 +
The patent provisions of the Common Public License (CPL) and Eclipse Public License (EPL) are described by Mark Webbink as "quite similar to that of the Apache License, version 2."<ref>{{cite web|url=http://www.ifosslr.org/ifosslr/article/viewArticle/26/35|title=Packaging Open Source|quote=The CPL and EPL are treated as the same license since the text of the licenses are identical in all but name. [...] The CPL contains an express patent license grant in Section 2.b that is purely contribution based.  This provides certainty to a contributor as to the patent license obligations the contributor is assuming.  In this regard the provision is quite similar to that of the Apache License, version 2.}}</ref>
  
 
==Mozilla Public License==
 
==Mozilla Public License==
 +
{{main|MPL and patents}}
  
* http://www.mozilla.org/MPL/MPL-1.1.html
+
The MPL-2.0 contains a retaliation clause and a narrow patent grant.
 
 
Section 8:
 
 
 
<blockquote>
 
(excerpt) "''...if You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that...''"
 
</blockquote>
 
  
 
==WebM licence==
 
==WebM licence==
Line 109: Line 150:
  
 
==CDDL==
 
==CDDL==
:''(See: [[CDDL and patents]])''
+
{{main|CDDL and patents}}
  
 
==Related pages on {{SITENAME}}==
 
==Related pages on {{SITENAME}}==
Line 116: Line 157:
 
* [[Patent promises]]
 
* [[Patent promises]]
 
* [[CDDL and patents]]
 
* [[CDDL and patents]]
 +
* [[GPLv2 and patents]]
  
 
==External links==
 
==External links==
Line 127: Line 169:
  
 
{{footer}}
 
{{footer}}
[[Category:Minor ways to also fight software patents]]
+
[[Category: Free software]]
[[Category:non-solutions]]
+
[[Category: Minor ways to also fight software patents]]
 +
[[Category: Non-solutions]]

Revision as of 23:09, 14 December 2014

Red alert.png What this entry documents is not a solution.
This practice may be ineffective or useless in the long term.
ESP's position is that abolition of software patents is the only solution.


Software licences can solve a small category of patent problems. They can:

  1. Grant: require that distributors of a software package give recipients a licence to use any necessary patents, and
  2. Retaliation: make patent aggression less attractive by revoking patent rights that any aggressor received through the licence

Among free software licences, the best licences to use in terms of patent clauses are:[1]

  • GPLv3 (if looking for a "strong copyleft" licence)
  • LGPLv3 (if looking for a "weak copyleft" licence)
  • Apache 2 (if looking for a "permissive" licence)

Each of these licences, and others, are discussed below.

Limits to effectiveness

  1. These clauses only apply to patent holders who distribute the software which uses this licence.
  2. The stronger the clause, the less likely it is that dangerous patent holders will distribute software that uses the licence.

Evaluating patent clauses

Good patent clauses that can be put into software licences include:

Grants: broad and narrow

Can you help? Need to review these licences regarding distinction contribution/distribution


The two most important aspects of grants are how broad they are, and what activates them (contribution or distribution). A third aspect is implicit grants.

Breadth

With grants, the broader the better.

A typical broad grant will grant rights to use contributor's patents for all functionality of the software. That means that when someone contributes to a software package, they can't later sue you for using that package.

A narrow grant will grant rights to use the contributors patents for the code they contributed. This means they can't contribute a feature and then sue you for using that feature, but they can still sue you for using other features of the software.

A fairly narrow grant (slightly broader than the narrow grant) will grant rights to use the contributor's patents for the code contributed plus any functionality which the software gained via this code. This is broader because it covers not just the features directly added by the code, but also features which are completed or enabled by the code.

An example of a very good grant is GPLv3, which causes distributors of modified versions to grant an explicit patent licence for the whole program. Next in line would be the Apache License 2.0, which also has an explicit grant, but only for the changes made by that distributor.

Activation: contribution or distribution

Can you help? todo


Implicit grants

An implicit grant can exist when a licence says that you are free to distribute and use the software, but does not explicitly say that you are free to use the patents of the author or distributor. It can be argued giving someone permission to use and redistribute the software implies that you are giving them permission not only regarding copyright but also regarding patents.

GPLv2 has no explicit patent grant, but it has many aspects which suggest there is an implicit grant. GPLv2 mentions that patent rights can be necessary for use and distribution of software, and says that distributors must pass on permission to use/modify/redistribute, thus forming an implicit patent grant that is quite clear.

Even the very simple licences, such as X11 or the revised BSD licence, could be argued to contain an implicit patent grant when they say:

Redistribution and use in source and binary forms, with or without modification, are permitted (...)

The licence says permission is granted. It doesn't say that only copyright permission is granted. However, the idea of implicit licences has not been tested in court.

Retaliation

Retract the granted rights from anyone who initiates litigation. This allows the distributor to use their patents to defend against aggression.

Indemnity

This would be great, but it's usually impractical.

GNU GPL v2

(See: GPLv2 and patents)

See section 6 and section 7.

Patent attorney Dan Ravicher argues that GPLv2 includes an implicit patent grant.[2][3]

GNU GPL v3

Note: the same patents clause exists in the: GNU Affero General Public License v3

Section 10:

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.

Also, section 12, which is very similar to GPLv2's section 7.

Related discussions

LGPL 2.1

Apache License 2.0

The Apache License contains both a patent grant and a patent retaliation clause. The retaliation clause, written in 2004, was copied by the GNU GPLv3 and the MPL 2.0,[4]

The grant is the first half of Section 3:

Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted.


The retaliation clause is the second half of that section:

If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

Among the "permissive" class of free software licences, Apache 2.0 is the licence recommended by Bradley Kuhn as being the best with regard to patents.[5]

The patent provisions of the Common Public License (CPL) and Eclipse Public License (EPL) are described by Mark Webbink as "quite similar to that of the Apache License, version 2."[6]

Mozilla Public License

Main article: MPL and patents

The MPL-2.0 contains a retaliation clause and a narrow patent grant.

WebM licence

Google first published the WebM audio-video codec under a licence which had a patent grant and a retaliation clause. After some unrelated controversy,[7][8] they changed to a simpler licence and a separate grant.

The grant:

Google hereby grants to you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, transfer, and otherwise run, modify and propagate the contents of this implementation of VP8, where such license applies only to those patent claims, both currently owned by Google and acquired in the future, licensable by Google that are necessarily infringed by this implementation of VP8. This grant does not include claims that would be infringed only as a consequence of further modification of this implementation.

That last line was added by Google in June when the text was changed from being part of the licence to being a separate grant.

The retaliation clause:

If you or your agent or exclusive licensee institute or order or agree to the institution of patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that this implementation of VP8 or any code incorporated within this implementation of VP8 constitutes direct or contributory patent infringement, or inducement of patent infringement, then any patent rights granted to you under this License for this implementation of VP8 shall terminate as of the date such litigation is filed.

CDDL

Main article: CDDL and patents

Related pages on ESP Wiki

External links

References

  1. "Post-Bilski Steps for Anti-Software-Patent Advocates". http://ebb.org/bkuhn/blog/2010/06/30/bilski.html. "License your software using the AGPLv3, GPLv3, LGPLv3, or Apache-2.0. [...] At least when such companies contribute code to projects under these licenses, we know those particular codebases will be safe from that particular company's patents." 
  2. http://ipmall.info/hosted_resources/sipla/sipla_2005/ravicher_slides.pdf
  3. https://www.fsf.org/licensing/seminar-materials/2005nyc/implied-patent-grant-slides.pdf
  4. "MPL 2.0, copyleft, and license compatibility". http://opensource.com/law/11/9/mpl-20-copyleft-and-license-compatibility. "In certain circumstances, a patent litigant could trigger Apache 2.0's patent peace clause without triggering MPL 1.1's similar (but slightly different) patent peace clause. This made the two licenses incompatible in the sense used here. Aligning these triggering conditions is what allowed us to be more comfortable that Apache 2.0 and MPL 2.0 are compatible." 
  5. "Post-Bilski Steps for Anti-Software-Patent Advocates". http://ebb.org/bkuhn/blog/2010/06/30/bilski.html. "License your software using the AGPLv3, GPLv3, LGPLv3, or Apache-2.0. [...] At least when such companies contribute code to projects under these licenses, we know those particular codebases will be safe from that particular company's patents." 
  6. "Packaging Open Source". http://www.ifosslr.org/ifosslr/article/viewArticle/26/35. "The CPL and EPL are treated as the same license since the text of the licenses are identical in all but name. [...] The CPL contains an express patent license grant in Section 2.b that is purely contribution based. This provides certainty to a contributor as to the patent license obligations the contributor is assuming. In this regard the provision is quite similar to that of the Apache License, version 2." 
  7. http://lwn.net/Articles/389611/
  8. http://lwn.net/Articles/391073/