Open4

Emscriptenアプリのライセンスはどう書くのが正解なのか問題

ピン留めされたアイテム
okuokuokuoku

Thoughts

... そもそもEmscriptenのランタイムについてライセンスの記述がちゃんと存在するケースを確認できなかった。

もし書くなら

(うち(!= 本業)の基準であって他所ではもっと厳しかったり緩かったりするかもしれない。)

単純なC++アプリで外部のライブラリを他に使用していないなら、Emscripten、Muslのnoticeで十分と考えられる。つまり、

libc++abiおよびlibc++はApache License2.0の例外として オブジェクトコードの埋め込みであれば表記不要 という例外を設けているため、Emscriptenの場合表記は不要になる。

libunwindはライセンス表記が不完全なためかなり難しい。LLVMの一部と解釈して同じライセンスを使うと考えている。

libc++の表記は結局必要なのか問題

LLVMのApacheライセンス例外は、

As an exception, if, as a result of your compiling your source code, portions
of this Software are embedded into an Object form of such source code, you
may redistribute such embedded portions in such Object form without complying
with the conditions of Sections 4(a), 4(b) and 4(d) of the License.

としていて、LLVMのWebページ https://llvm.org/docs/DeveloperPolicy.html#new-llvm-project-license-framework では、

... For example, if an LLVM runtime library like compiler_rt or libc++ was automatically included into your application by the compiler, you do not need to attribute it.

となっている。

現状のEmscriptenの場合、libc++は 常に静的リンク されるため、この例外でカバーされると考えられる。(libc++単独の再配布や、選択的な再利用を伴わない)

Muslの表記をどうすんのか問題

MuslはBSDライセンスのコードを多量に含んでいるので、それらを使った場合、

  • 全員分の著作権表記が必要だよ派 -- 弊社やAppleなど
  • 全体としての代表で十分だよ派 -- MSなど

に大別される。Emscriptenの場合、POSIX向けの実装コードをほぼ使用していないので、COPYRIGHTの最初の表記で基本的にカバーできると認識している。

ちなみにヘッダ類やCRTは、MuslはMITライセンスに例外を設けて表記不要としている。

okuokuokuoku

https://twitter.com/senooyudai/status/1368006471934341122

https://twitter.com/senooyudai/status/1368021483033817089

ライセンス文はEmscriptenのもののみ: https://musv2cloud.cdn.v-market.work/licenselist.html

https://musv2cloud.cdn.v-market.work/heliodor.wasm (実装自体はかなりコンパクトに纏まっている)

libc++を含む。libc++のライセンスは3BSDLまたはUIUCなので、 noticeは必須 。 (EDIT: Apache側を取ることで、LLVM側が設定したライセンス条項の例外により表記不要になる。)

* Redistributions in binary form must reproduce the above copyright notice, 
  this list of conditions and the following disclaimer in the documentation 
  and/or other materials provided with the distribution.

... なのでlibc++(と、Musl)のnoticeも必要なんだけど、 それと分かる記述がEmscriptenのサイト側にない 。気がする。