ReactJSのライセンスにおける制限的条項の対象範囲 (特許不係争義務)


2017/9/23 追記

[Apache Software FoundationがBSD+PATENTSをCategory-Xに追加](https://www.apache.org/legal/resolved.html#category-x "https://www.apache.org/legal/resolved.html#category-x")したことを受け、Facebookは[React他でBSD+PATENTSを維持することを表明](https://code.facebook.com/posts/112130496157735/explaining-react-s-license/ "Explaining React's license | Engineering Blog | Facebook Code")していましたが、[WordPressがReactライブラリの利用を止めることを発表](http://jp.techcrunch.com/2017/09/19/20170915wordpress-to-ditch-react-library-over-facebook-patent-clause-risk/ "Facebookの特許条項のリスクを嫌い、WordPressがReactライブラリの利用を止めることを発表 | TechCrunch Japan")するなど波紋はさらに広がっていました。
ここに来て、FacebookがReact他のライセンスを見直すそうです。

[Relicensing React, Jest, Flow, and Immutable.js | Engineering Blog | Facebook Code](https://code.facebook.com/posts/300798627056246/relicensing-react-jest-flow-and-immutable-js/ "Relicensing React, Jest, Flow, and Immutable.js | Engineering Blog | Facebook Code")

Apache License version 2 → BSD + PATENTS → MITという流れで、もっともパミッシブなライセンスに落ち着くことになりそうです。

-----
# Scope covered by Patent Non-assertion Obligation imposed on Licensees
H-axis: Potentially Accused Products/ Services
V-axis: Potential Defendants

### [Eclipse Public License (EPL)](https://www.eclipse.org/legal/epl-v10.html "Eclipse Public License - Version 1.0") and other Average OSS Licenses

|Non-assertion Against \ About|The Program|
|:---:|:---:|
|**Providers**|✔|
|**Contributors**|✔|
|**(Re-)Distributors**|✔|
|**Recipients**|✔|

### [Common Public License (CPL)](https://opensource.org/licenses/cpl1.0.php "Common Public License, version 1.0 (CPL-1.0) | Open Source Initiative") (deprecated and being replaced by EPL)

|Non-assertion Against \ About|The Program|<Font color="red">Any Software §7¶2-1</font>|
|:---:|:---:|:---:|
|**Providers**|✔|<Font color="red">✔</font>|
|**Contributors**|✔|<Font color="red">✔</font>|
|**(Re-)Distributors**|✔|<Font color="red">✔</font>|
|**Recipients**|✔||

### [PATENTS (constituting the license of OSS by Facebook including ReactJS)](https://github.com/facebook/react/blob/master/PATENTS "react/PATENTS at master · facebook/react")

|Non-assertion Against \ About|The Software<br>¶2(ii)|<font color="red">Software,<br>Technology,<br>Products<br>and Services<br>by<br>Facebook,<br>its subsidiaries<br>or its affiliates<br>¶2(ii)</font>|<font color="red">Anything</font>|
|:---:|:---:|:---:|:---:|
|**<font color="red">Subsidiaries or Affiliates of Facebook ¶2(i)**</font>|<font color="red">✔</font>|<font color="red">✔\*</font>|<font color="red">✔\*</font>|
|**Facebook ¶2(i)**|✔ |<font color="red">✔\*</font>|<font color="red">✔\*</font>|
|**Contributors ¶2(iii)\*\***|✔|<font color="red">✔</font>|<font color="red">✔</font>|
|**(Re-)Distributors ¶2(iii)\*\***|✔|<font color="red">✔</font>|<font color="red">✔</font>|
|**Recipients ¶2(iii)\*\***|✔ |<font color="red">✔</font>|<font color="red">✔</font>|
|**<font color="red">Parties relating to the Software ¶2(iii)\*\*</font>**|<font color="red">✔</font>|<font color="red">✔</font>|<font color="red">✔</font>|
|**<font color="red">Any Party</font>**|<font color="red">✔</font>|<font color="red">✔</font>||

\* [Counterclaims against Facebook, its subsidiaries or its affiliates are allowed](https://github.com/facebook/react/blob/master/PATENTS#L21-L26 "react/PATENTS at master · facebook/react").
\** "[Any party relating to the Software](https://github.com/facebook/react/blob/master/PATENTS#L20-L21 "react/PATENTS at master · facebook/react")" must cover contributors, (re-)distributors and recipients.
<font color="red">NOTE:</font> [<font color="red">Potential plaintiff covers its subsidiaries and affiliates as well as agents on its mission.</font>](https://github.com/facebook/react/blob/master/PATENTS#L15 "react/PATENTS at master · facebook/react")

# Scope of Patents granted under OSS License (excluding Non-assertion above)
H-axis: Licenser's Products/ Services executing licensed patents
V-axis: Licenser
### [Eclipse Public License (EPL)](https://www.eclipse.org/legal/epl-v10.html "Eclipse Public License - Version 1.0") and other Average OSS Licenses

|Granted From \ About|The Program|
|:---:|:---:|
|**Providers**|✔|
|**Contributors**|✔|
|**(Re-)Distributors**|✔|
|**Recipients**|－|

### [Common Public License (CPL)](https://opensource.org/licenses/cpl1.0.php "Common Public License, version 1.0 (CPL-1.0) | Open Source Initiative") (deprecated and being replaced by EPL)

|Granted From \ About|The Program|Any Software §7¶2-1|
|:---:|:---:|:---:|
|**Providers**|✔||
|**Contributors**|✔||
|**(Re-)Distributors**|✔||
|**Recipients**|－|－|

### [PATENTS (constituting the license of OSS by Facebook including ReactJS)](https://github.com/facebook/react/blob/master/PATENTS "react/PATENTS at master · facebook/react")

|Granted From \ About|The Software<br>¶2(ii)|Software,<br>Technology,<br>Products<br>and Services<br>by<br>Facebook,<br>its subsidiaries<br>or its affiliates<br> ¶2(ii)|Anything|
|:---:|:---:|:---:|:---:|
|**Subsidiaries or Affiliates of Facebook ¶2(i)**|||
|**Facebook ¶2(i)**|[✔]*|||
|**Contributors ¶2(iii)**||||
|**(Re-)Distributors ¶2(iii)**||||
|**Recipients ¶2(iii)**|－|－|－|
|**Parties relating to the Software ¶2(iii)**||||
|**Any Party**||||

\* Might be deemed as granted under BSD License, already 

# 解説・見解
## はじめに
(将来的にも)特許を保有しない人には影響がありません、ご安心ください。
(将来的にも)Facebookと競合する可能性がない企業には影響がありません。
Facebookは善良な企業であるとともに、良質のOSSを多数提供していると評価しています。

とは言え、Facebook発のOSSがライセンシに課す制限は広すぎるとの思いが有ります。
EPL、CPLと比較しながらFacebook発のOSSがライセンシに課す制限の範囲とその問題点を記載します。

## [Eclipse Public License (EPL)](#eclipse-public-license-epl-and-other-average-oss-licenses)を含む平均的なOSSライセンス
ここでは、EPL等の平均的なOSSライセンスを扱います。(後述のCPLやPATENTSは除きます。)
OSSライセンスには特許条項が有るものと無いものがありますが、それらは実質的には同じと考えています。

#### 対一次提供者 (Host)
ここでは、後述の貢献者(Contributor)や(再)頒布者((Re-)Distributor)と一旦区別し、一次提供者を扱います。
無差別の無償ライセンスに同意してOSSを利用した上で、その提供者を訴えるのは信義則に反すると考えます。

#### 対貢献者 (Contributor)
貢献者には別途Contributors Agreementが課せられることがありますが、ここでは扱いません。
一次提供者にプルリクエストを行う等(インバウンド)の場合は上記の一次提供者と同じです。
自ら改良版を頒布する(アウトバウンドの)場合は下記の(再)頒布者と同じです。

#### 対(再)頒布者 ((Re-)Distributor)
一次頒布者は上記の一次提供者です。
ソース貢献を行う場合を含み、再頒布者は下記の受領者と同じです。
なお、再頒布者には再頒布物とそれを受領したときのOSSライセンスを明示する義務があります。

#### 対受領者 (Recipient)
無差別の無償ライセンスに同意してOSSを利用した上で、他のライセンシを訴えるのは信義則に反すると考えます。

## [Common Public License (CPL)](#common-public-license-cpl-deprecated-and-being-replaced-by-epl)
CPLはオーナーがIBMの時代のEclipseのライセンスです。
Eclipse Foundationに移管された際に、EclipseはEPLで再ライセンスされ、他OSS向けにもCPLは非推奨となりました。
なお、EPLはCPLの正当な後継であり、CPLのOSSは著作者の許諾なしにEPLで再頒布できます。

CPLでは下記の通り特許不係争義務を明文化しています。

#### 7章 2段落 1文
禁止する特許訴訟の範囲を、潜在的被疑製品(横軸)でソフトウェア全般と広くする一方で、潜在的被疑者(縦軸)で"Contributor"に限定するもの。CPLにおける"Contributor"は、ここで言うところの貢献者(Contributor)に加え、一次提供者(Host)、(再)頒布者((Re-)Distributor) を含みます。
横軸で非OSSを含みソフトウェア全般とするところに、アンチソフトウェア特許の意図が見えます。
このソフトウェア全般という範囲が広すぎるために一部の企業から敬遠されています。
実際、[CPLを採用していたJUnitはOracle (NetBeans)の要望でEPLに変更](https://github.com/junit-team/junit4/commit/3171c4b29cb207e71fc2f752f0fbcb235bc8e784 "Relicense JUnit from CPL to EPL · junit-team/junit4@3171c4b")しました。
CPLのEPLとの[本質的な違いはこの一文の存在だけ](https://github.com/junit-team/junit4/commit/3171c4b29cb207e71fc2f752f0fbcb235bc8e784#diff-61e0bdf7e1b43c5c93d9488b22e04170L176 "Relicense JUnit from CPL to EPL · junit-team/junit4@3171c4b")です。

#### 7章 2段落 2文
禁止する特許訴訟の範囲を、潜在的被疑製品(横軸)で["the Program itself"に限定](https://github.com/junit-team/junit4/commit/3171c4b29cb207e71fc2f752f0fbcb235bc8e784#diff-61e0bdf7e1b43c5c93d9488b22e04170L182 "Relicense JUnit from CPL to EPL · junit-team/junit4@3171c4b")するもの。
第1文と異なり、またその明文化の有無に関わらず、OSSライセンスにおける最も一般的な制限でしょう。

## [PATENTS (a part of Facebook BSD+Patents license)](#patents-constituting-the-license-of-oss-by-facebook-including-reactjs)
掲題のReactJSにおけるライセンスのうち、BSDライセンスに加えて設定されたPATENTSについて扱います。
Facebook発のOSSは、ReactJSを含むその多くが、この BSD+PATENTS の形をとっています。

後述の通り、特許不係争義務の対象範囲が非常に広範囲なものになっています。
従って、現在または将来に特許を保有し、現在または将来にFacebookと事業領域が重複する可能性がある企業にとっては受け入れ難いものです。

極端な例では、議決権も及ばない自社の関連会社がライバルを特許侵害で訴えたとして、被疑製品の該当部分がFacebookの関連会社が持つ(未発表の?)技術を利用していたというだけで、ReactJS(のPATENTS)のライセンスを失います。
別の例では、議決権も及ばない自社の関連会社がライバルを特許侵害で訴えたとして、被疑者がFacebook発のOSSを社内サイトで利用していたというだけで、ReactJS(のPATENTS)のライセンスを失います。
もし、自社の重要製品/サービスでReactJSを使っていた場合、それを作り直す必要に迫られることになります。

対して、BSD Licenseに追加で[PATENTSが許諾する権利](#patents-constituting-the-license-of-oss-by-facebook-including-reactjs-1)は全く無いか、有っても制限に釣り合わない狭い範囲です。

実際、[VMwareの法務はReactの社内利用を禁止](https://discuss.reactjs.org/t/legal-department-did-not-allow-use-of-react/3309 "Legal Department did not allow use of React - React Discuss")し、[コミュニティへの相談者は現在Angularの技術者](https://www.linkedin.com/in/juanmendes/ "Juan Mendes | LinkedIn")です。
また、Facebookが先制した場合の反訴が許される旨は[Googleの指摘で追加](https://github.com/facebook/react/issues/7293#issuecomment-233302318 "License clarification · Issue #7293 · facebook/react")されたようです。この修正だけで受け入れたということは、事業がFacebookと競合してもGoogleから法廷で先制攻撃を仕掛けないという判断か、重要な製品/サービスにFacebook発のOSSを利用しないということでしょう。

#### [第2段落 (i)](https://github.com/facebook/react/blob/master/PATENTS#L17-L18 "react/PATENTS at master · facebook/react")
禁止する特許訴訟の範囲を、潜在的被疑者(縦軸)で限定するものです。
しかし、特定企業名(Facebook)が入っていることで外部貢献者等へも適用可能な汎用性を欠きます。
また、ライセンサでないFacebookの子会社や関連会社に対してまで特許不係争義務を負います。

#### [第2段落 (ii)](https://github.com/facebook/react/blob/master/PATENTS#L18-L20 "react/PATENTS at master · facebook/react")
禁止する特許訴訟の範囲を、潜在的被疑製品/サービス等(横軸)で限定する構造を取っています。
しかし、任意のソフト、技術、製品、サービスでは非常に広範囲で、事実上無制限です。
他方で、製品/サービス等の提供者をFacebookとその子会社、関連会社に限定しているのでFacebookグループの商流全てが特許不係争の対象と言えます。

#### [第2段落 (iii)](https://github.com/facebook/react/blob/master/PATENTS#L20-L21 "react/PATENTS at master · facebook/react")
禁止する特許訴訟の範囲を、潜在的被疑者(縦軸)で"the software"の関係者に限定する構造を取っています。
ただし、「"the software"に関係する団体」という表現が曖昧です。
少なくとも、貢献者、(再)頒布者、受領者の全てを特許不係争義務の対象に含むと考えます。
さらに問題なのは、被疑製品/サービス等を一切限定していないので全ての特許訴訟が制限されることです。

#### [第2段落冒頭 (特許不係争義務を負う主体)](https://github.com/facebook/react/blob/master/PATENTS#L15 "react/PATENTS at master · facebook/react")
特許不係争義務の主体は平均的なOSSライセンスやCPLの場合では受領者でありライセンシである自社ですが、PATENTSの場合は自社にとどまらず、自社の子会社、関連会社まで含みます。
子会社の特許権行使をコントロールすることも困難とは思いますが、議決権も及ばない関連会社の特許権行使にまで責任を負わされます。