C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

UE4 の EULA と GPL 、プラグインが内包するソースで確認が必要だったはなし

UE4 EULAGPL

UE4/EULA では UE4 と一緒に使ってはダメなソースコードのライセンスを明記しています。一部抜粋。

Other Restrictions Non-Compatible Licenses You may not combine, Distribute, or otherwise use the Licensed Technology with any code or other content which is covered by a license that would directly or indirectly require that all or part of the Licensed Technology be governed under any terms other than those of this Agreement (“Non-Compatible License”). Code or content under the following licenses, for example, are prohibited: GNU General Public License (GPL), Lesser GPL (LGPL) (unless you are merely dynamically linking a shared library), or Creative Commons Attribution-ShareAlike License. Code or content under the following licenses, for example, are allowed: BSD License, MIT License, Microsoft Public License, or Apache License. You may not sublicense the Licensed Technology under a Non-Compatible License.

ざっくり要訳としては、

  • UE4と相容れないライセンス」の「ソースコードなどのあらゆる技術的要素をUE4と組み合わせて使用、配布はできませんよ」
  • 「例えば GPL 、動的リンクではない LGPL 、 CC-SA などのライセンスが UE3と相容れないライセンスの技術要素に該当します」
  • 「ちなみに、 BSD License 、 Microsoft Public License 、 Apache License などは許容されますよ」

と書いてあります。不自由な GPL にラインセンスされた少なくとも UE4 使いにとっては不遇なライブラリー群に特に外部ライブラリーを必要に応じて導入する機会も少なくない UE4/C++er はよく注意する必要があります。

Note: EULAのより広範についての公式な日本語のFAQは UE4/日本語版FAQ をどうぞ。

Mongoose と GPLv2

先日、 UE4 の Marketplace にも登録されている "あるエンジン向けのソースコードプラグイン" の内部で Github Mongoose を使用している事に気付きました。ライセンシングにある程度の注意を払っている一般的な C++er としては脳が警戒モードの動作に切り替わり確認作業が始まります。

しかし、"あるプラグイン" については、結論としては「UE4での使用、製品のリリースに問題なし。GPLv2の影響は受けないので最終的な製品のソースコード開示義務も負わない」となりました。 "あるプラグイン" では確かに内部的に "Mongoose" ライブラリーを使用していましたが、"最新版の GPLv2 の Mongoose" のコードは使っていないと調査されたためです。そして、 "Mongoose" はある時点でライセンスを "AS IS" タイプの自由なライセンスから不自由な "GPLv2" へ切り替えています。

"あるプラグイン"のソースコードが添付の LICENSE ファイルだけでなく、本当にライセンス変更以前のバージョンのものか調査するコストは若干の手間はかかりますが、結果、 UE4 で使用しても問題のない自由なライセンス時代のソースをベースにしている事がわかり、無事にこの "ライセンス違反の恐れ" は問題無い事がわかったのでした。

Marketplace で手に入る"いわば公認"のプラグイン群については心配するだけ過剰な気もしますが、コミュニティーベースのフリーのプラグインや公式から遠いところで公開されているプラグイン、また自作のプラグインなどでうっかりライセンス違反が起こらないように気を付けたいですね。

参考

  1. UE4/EULA
  2. UE4/日本語版FAQ
  3. Github Mongoose
  4. Github Mongoose LICENSE latest
  5. Github Mongoose LICENSE diff

おまけ: Facebook での関連ポスト