M5Paper と m5paper-dashboard でも言及の通り、どうも M5Paper の SDK である M5EPD のライセンスの扱いが怪しい。
(詳細は https://github.com/m5stack/M5EPD/issues/21)
一方でライセンスの扱いはよく分からなくて、
* M5EPD はリポジトリ全体のライセンス表記 (LICENSE ファイル)として MIT ライセンスにしていて、かつコピーライト表記を M5Stack としている。
* ただし、リポジトリ内のファイルには GPL 3.0 のファイル(GPL3.0 で公開されているリポジトリからの転載物)が含まれている。
* 他にも MITライセンスだけれど、コピーライト表記が別の人のライセンスが含まれている。
* M5EPD 自体はソースコードの形態で配布されている。
* なので、各ファイルのライセンスやコピーライト表記は確認できるわけで、これはライセンス違反か?
と聞かれるともうなんとも言えない。むずい。
さらに、ぼくが M5EPD を使ったソフトウェアを作ってそのソースコードを MIT ライセンスで公開した場合、そのソースコードには「M5EPD に依存しているからビルドするときには M5EPD をもってこい」と指示が書いてあるだけで、直接 M5EPD 自体が含まれるわけではなく、もちろん前記で問題になっていた GPL3.0 のファイルもそのソースコード一式には含まれない。これは実際問題になるの?という話になると、とんと検討もつかぬ。
確実にわかるのは、そのソフトウェアをビルドして、バイナリを配布して、そのときにライセンス&コピーライト表記として自分のライセンス&コピーライト、あと「M5EPD の LICENSE の中身」だけを表記したとすると、これは確実にアウトになる。それだけはわかる。
その点では、M5EPD には「このライブラリを使用する場合には最終的にこのコピーライトが必要だよ」という表記を行うのが親切であることは間違いない。そして親切と違反の間のギャップは判断がつかない。
そしてさらに根本的な問題を言うのであれば、「バイナリを配布する」って言うけれど、PlatformIO でビルドしたときにバイナリはどこにあるんだろう。そもそもあるのかないのか自分で分かっていないものを配布するという仮定自体がすでに異次元の話ではあるのであった。
ライセンス本文を読んでみたけれども、MIT ライセンスは短いからまだ読めるとして、GPL となると長くて読めなくはないけれども、途中を読んでいる間に先頭の方のことは忘れ始める体たらくでどうにも理解が及ばないのであった。
ググってみていろんな記事を見てみたけれど、ズバリなことは書いていないし、そもそも書いてあることをどの程度信用していいかも分からない。「MIT ライセンスの場合、ライセンス表記が必要なのはソースコード配布の場合のみ」というような記述まで見つかるのであった。MIT ライセンス記載を見る限りそんなことはなくて、バイナリであってもライセンス表記は必要なはず。
そういう経緯で信頼できそうなソースとして本を買うのでした。
単純に各ライセンスの扱い方だけではなく、ソフトウェア事業をする上での OSS に関する考え方の指針なども載っていてとても参考になる本です。
です、というのはまだ読み終わっていないからですね。
ライセンスの事例として TOPPERS → MIT → BSD → Apache と順に説明があるのだけれども、Apache の著作権の話で急激に難解になってきて、10日でわかる〇〇が4日めくらいから急激に難しくなるアレですね。
ざっくり読んだ結論としては
* 基本的に再配布時のライセンス表記の条件に「substantial portion」と記載があるので、多分、「各ソースコードでライセンス表記があるからオッケー」とはならないような気がする。
* この本では「ライセンスについて考える時は、開発者がそのライセンスによって期待していることを尊重することが大切」という趣旨のことを言っていて、その趣旨で考えると、ファイルだけ持ってきてリポジトリに突っ込んで、全体の LICENSE や README.md で言及しないのはナシな気がする。
と思うのでした。
そんなわけで自分用にライセンスが怪しいところを再実装することに。
なにぶん API のちゃんとしたドキュメントがないので、元のとおりに動いているのかはよくわからないのだけれど。
とりあえずなんとなく動いているからよしとしよう。
ちなみに元のチケットで指摘されていた部分以外にも、FreeType ライセンスのコードや、コピーライトが異なる MIT ライセンスのコード、あと「MIT ライセンス」って書いてあるけれど、コピーライト部分がなくなっているコードも見つかったりもするのでした。