2018年2月19日
プログラミング
【速報 2018年2月18日】React NativeがMITライセンスに!!今までの経緯と詳細


はじめに
こちらの公式Tweetにもあるように、React NativeのライセンスがBSDライセンスから、MITライセンスにリライセンスがありました!
We’re relicensing React Native (including Fresco, Metro, and Yoga) under the MIT license to match React. https://t.co/Ypg7ozX958
— React (@reactjs) 2018年2月17日
後ほどMITとBSDの違いなどはご説明しますが、これはReact Nativeがよりオープンソースとして自由な使い方ができるものとなり、可能性がより広がるニュースです。
もともと2017年9月にReactがMITライセンスにリライセンスしており、規定路線ではありましたがとても喜ばしいことです。
ライセンス変更の経緯
もともと、React 、React NativeやFlowなどの開発元であるFacebook社は、ライセンスをBSD+特許事項(通称 Facebook BSD+Patents License
)としていました。
こちらの2014年10月まではApache 2.0でしたが、ここからBSDと特許事項つきのライセンスとなっています。
React BSDへの変更コミット
React NativeのこちらのLICENSEファイルコミットが2015年3月であることから、こちらはずっとこのBSD+特許事項ライセンスを保持してきたことになります。
React Native LICENSE
そのまま特に大きな問題にはなることなく多くの開発者に使われてきましたが、2017年7月にオープンソースのソフトウェアプロジェクトを支援する団体である、Apacheソフトウェア財団(Apache Software Foundation)からApache License 2.0への変更を提起されます。
ApacheのプロジェクトではReactと依存関係のあるものを許可できないので、リライセンスしてほしいと警告を受けています。
こちらは通称category-xと呼ばれており、Facebook BSD+Patents licenseもしっかり入っていますね。
この件は大きな反響を呼びました。
Reactから離れたほうが良い、という意見や実際に離れた開発者も多くいました。
Come on Facebook, do the right thing!
という悲痛なコメントがこの件をよく表しています。
そしてFacebookはこちらの記事で弁明します。
Facebookの弁明記事
要約はこちらです。
- Facebook社はオープンソースに多大な貢献をしてきた
- 様々な技術を生み出す中で、訴訟のターゲットにされることも多く、そのリスクを軽減させる為のBSD+特許事項ライセンスだった
- 既存のMITやApache2.0などと補完できるものなので安心してほしい
- このままのライセンスで何とかできないか調整していく
このポストは大きな反響を呼びました。
Hacker News(アメリカの最大手IT系ニュース、コメントサービス)では600件近くのコメントがついています。
Explaining React’s licenseへの反応
結局、2017年9月に方向性を変え、リライセンスを行い特許事項の撤廃及びMITライセンスに変更をしています。
We’re relicensing React, Jest, Flow, and Immutable.js under the MIT license. https://t.co/3XD0z49UsS
— React (@reactjs) 2017年9月22日
Relicensing React, Jest, Flow, and Immutable.js
リライセンスコミット
このリライセンスについては、多くの開発者が歓迎しました。
ですが、対象となったのは React
, Jest
, Flow
、そしてImmutable.js
となっており、React NativeはまだBSDライセンスのままでした。
まだかまだかと言われていたReact Nativeのライセンスですが、2018年2月17日に正式にMITライセンスに変更が行われました!
React Nativeリライセンスコミット
BSD+特許事項ライセンスとは
ここまで経緯について解説してきましたが、BSD+特許事項ライセンスとはどのようなもので、何が問題だったのでしょうか。
そもそもBSDライセンス自体(Facebookが適用していたBSD-3条項)は以下の特徴を兼ね備えています。
- ソースコード及びバイナリファイルについて、著作権表示やBSDライセンス条項、免責事項を記載すれば利用や再配布が可能。
- 書面による事前の許可なしに、ソフトウェアから派生した製品を推薦または宣伝するために、著作権者の名前や組織の名前を使用することはできない。
- ソフトウエアの作成組織、作成者は責任を負わない。
つまり、著作権表示やBSDライセンス条項、免責事項を記載すれば、商用利用問わず変更や再利用、再配布も可能な割と自由度の高いライセンスです。
Open Source Initiativeによる定義
Open Source Group Japanによる日本語
多くのOSSがBSDライセンスを適用しており、問題になったのは特許事項に関する記載です。
Facebook社の弁解によると、「訴訟のターゲットにされることも多く、そのリスクを軽減させる為のBSD+特許事項ライセンスだった」という内容がありました。
Facebook社をかばうとすると、これは「攻撃の為のライセンス」ではなく、「防御の為のライセンス」だったように見受けられます。
よく誤解されている方も多いのですが「Facebookと類似のサービスやFacebookと競合するサービスを展開すると訴訟される」といったものではなく、あくまでも「Facebookを特許侵害で訴訟した際に、FacebookのOSSを使用する権利が無くなる」というものです。
ですが、オープンソースの文化としてはこのライセンスには違和感を覚える人も多くいました。
それは、特許事項を侵害する訴訟をするという前提がありつつも、「Facebookを訴訟する人はOSSの権利を失う」という高圧的とも取れる姿勢が、(ライセンスを守る限り)オープンで自由な文化であるOSSと相反する部分があるというものです。
例えば、React Nativeを使用した特定分野のアプリケーションについて、特許を取得したとします。そしてその後にFacebookがその特許を侵害するような製品を開発しても、訴訟できない(正確には訴訟したらReact Nativeの利用ができなくなる)というものです。
その為、OSSの文化を守る今回のMITライセンスの適用(特許事項ライセンスの廃止)は歓迎されているのです。
MITライセンスとは
では、MITライセンスとはどのようなものでしょうか。
要約するとこのような特徴を持っています。
- ソースコード及びバイナリファイルについて、著作権表示および許諾表示を記載すれば利用や再配布が可能。
- ソフトウエアの作成組織、作成者は責任を負わない。
BSDよりも「書面による事前の許可なしに、ソフトウェアから派生した製品を推薦または宣伝するために、著作権者の名前や組織の名前を使用することはできない」という点がなく、より自由度の高いライセンスです。
GitHubのライセンスとしても最も多く使われていると言われています。
Open Source Initiativeによる定義
Open Source Group Japanによる日本語
まとめ
Facebookとしても言い分はあったものの、今回のリライセンスについては歓迎すべきことと捉えられています。
特許や訴訟というと遠い存在のように思われる方もいるかもしれませんが、ソフトウェア開発の世界でも、実際に特許を侵害されたという訴訟は耳にします。
記憶に新しいのが会計ソフトのfreeeがマネーフォワードを特許侵害で提訴した例です。
マネーフォワードがfreeeに勝訴–会計ソフト機能の特許訴訟で – CNET Japan
何よりオープンソースはその会社だけではなく、周りの多くのcontributerやコミュニティなどがあってのものです。
そういった周りの支援者のことも考えると、今回のような対応は今後のReact Nativeの発展においても非常に重要であることがわかりますね。
React Nativeのお仕事に関するご相談
Bageleeの運営会社、palanではReact Nativeに関するお仕事のご相談を無料で承っております。
zoomなどのオンラインミーティング、お電話、貴社への訪問、いずれも可能です。
ぜひお気軽にご相談ください。
この記事は
参考になりましたか?
3
0
関連記事

2021年8月30日
React Navigation 6.0のStack Navigatorの大きく変わった箇所の変更点をまとめてみた

2021年1月4日
react-native-svgを使ってReact NativeでSVGを扱う

2019年12月23日
Expo Bare Workflow で Firebase Analytics を設定する

2018年12月6日
【React Native】キーボードで画面が隠れる場合の対処法

2018年7月13日
TypeScriptでReact Native開発をする方法2018年最新版

2018年6月29日
React Navigationのタブナビゲーションをカスタマイズしてみよう!
簡単に自分で作れるWebAR
「palanAR」はオンラインで簡単に作れるWebAR作成ツールです。WebARとはアプリを使用せずに、Webサイト上でARを体験できる新しい技術です。
palanARへ
palanでは一緒に働く仲間を募集しています
正社員や業務委託、アルバイトやインターンなど雇用形態にこだわらず、
ベテランの方から業界未経験の方まで様々なかたのお力をお借りしたいと考えております。
運営メンバー

Eishi Saito 総務
SIerやスタートアップ、フリーランスを経て2016年11月にpalan(旧eishis)を設立。 マーケター・ディレクター・エンジニアなど何でも屋。 COBOLからReactまで色んなことやります。
sasakki デザイナー
アメリカの大学を卒業後、日本、シンガポールでデザイナーとして活動。

やまかわたかし デザイナー
フロントエンドデザイナー。デザインからHTML / CSS、JSの実装を担当しています。最近はReactやReact Nativeをよく触っています。
Sayaka Osanai デザイナー
Sketchだいすきプロダクトデザイナー。シンプルだけどちょっとかわいいデザインが得意。 好きな食べものは生ハムとお寿司とカレーです。

はらた エンジニア
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

こぼり ともろう エンジニア
サーバーサイドエンジニア。SIerを経て2019年7月に入社。日々学習しながらRuby on Railsを使った開発を行っています。

ささい エンジニア
フロントエンドエンジニア WebGLとReactが強みと言えるように頑張ってます。

Damien
WebAR/VRの企画・開発をやっています。森に住んでいます。

ゲスト bagelee

かっきー

まりな

suzuki
miyagi

ogawa
雑食デザイナー。UI/UXデザインやコーディング、時々フロントエンドやってます。最近はARも。

いわもと
デザイナーをしています。 好きな食べ物はラーメンです。

taishi kobari
フロントエンドの開発を主に担当してます。Blitz.js好きです。

kubota shogo
サーバーサイドエンジニア。Ruby on Railsを使った開発を行いつつ月500kmほど走っています!
nishi tomoya

aihara
グラフィックデザイナーから、フロントエンドエンジニアになりました。最近はWebAR/VRの開発や、Blender、Unityを触っています。モノづくりとワンコが好きです。
nagao
SIerを経てアプリのエンジニアに。xR業界に興味があり、unityを使って開発をしたりしています。

Kainuma
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

sugimoto
asama
ando
iwasawa ayane

oshimo
異業界からやってきたデザイナー。 palanARのUIをメインに担当してます。 これからたくさん吸収していきます!