M5Paper公式ライブラリのOSSライセンス違反について
M5Paperの公式ライブラリであるM5EPDのコードを読んでいたところ、ソフトウェアライセンス的にまずい点を見つけたので記録しておく。なお、issueは以下の通り約1か月前に投稿済みだが、返答なし。
まずい点は、MITライセンスで公開しているにもかかわらず
を含んでいることである。いずれもコピーレフト型ライセンスなので、MITライセンスは使えない。
※ライセンス周りはあまり詳しくないので、間違っていたら指摘してください。
GPL-3.0配布のソフトウェア
SHT3x.hとSHT3x.cppが該当すると思われる。元リポジトリはおそらくhttps://github.com/Risele/SHT3x。GPL-3.0を含むということは、M5EPDだけでなくM5EPDに依存するソフトはすべてGPL-3.0で配布する必要がでてくるため、影響範囲が大きい。
CC BY-SA 3.0配布のソフトウェア
Button.hとButton.cpp。CC-BY3.0SAの資料を改変したり、加工した場合には、同じくCC-BY3.0SAで配布する必要がある。CC-BY4.0SAはGPL-3.0に対して一方向の互換性があるが、CC-BY3.0SAには互換性はないので、上記のGPL-3.0と両立するのか不明。ちなみに、Arduino Button Libraryの最新版はGPL-3.0で配布されている。
なお、CC-BY3.0SAをincludeしたコード(すなわち、GPLでいうところの「派生物」)はCC-BY3.0SAで配布する必要があるのか、私はよくわかっていない、、(CCはコードへの適用を想定していないのでグレーゾーンか?)
LGPL-2.1配布のソフトウェア
CommUtil.hとM5Timer.h。他コードからincludeはされていない。なお、M5Stackライブラリは上記ファイルをincludeしている。
M5Stack製品はハードの出来はものすごくよいと思うので、ソフトウェア周りも頑張ってほしいと思う次第である。
なお、私が公開しているM5Paper-Dashboardでは、自身でフォークしたM5EPDを使用している。
上記ファイルをすべて削除しているため、ライセンス的にはクリーン。ボタンにはezButtonライブラリを使用している。この影響で、ボタンに関するAPIが変わっている。また、画面描画にはLovyanGFXを使用することを想定し、もともとM5EPDに入っていた描画系コードも削除している。