やるべきことはいっぱいあるけど気力と体調が追い付かない。
暑くなったり寒くなったりでひどい。どっちかというと寒い方がいいんだけど天気予報が暑い方向に裏切られていく。 しかし夜はだいぶ涼しいのに日が昇ると一気に暑くなるからしんどいな。
PeerCastStationは元のPeerCastがGPLだったのもあって1引き続きGPLにしてんですよ。バージョンは3にしたけど。
今GUIはHTML版とWPF版の両方があるんだけど、両方作っていくのが非常に大変なのでHTML版に統一したい。 そしてGUI的なのはHTML版を表示するだけのウィンドウみたいなのにしたいと思ったんですよ。
HTMLアプリをホストするならNW.jsかElectronかだろうということで検討してたんだけど、別件でElectronのライセンスを確認することがあってどうもChromiumのライセンスが相当めんどいということに気付いてしまった。
Chromium自体のライセンスはまあ大したことないんだけど2、依存しているOSSのライブラリがやばい。 気をつけてるらしいのでGPLこそ入ってないが、LGPL3が入ってたり3Ms-PLが入ってたりApple Public Source License 2.0というのが入ってたりする。こいつらがやばい。
GPLを適用したプログラムを配布する時には、全体をGPLで配布しないといけない。依存するライブラリも含めてね。 でもMs-PLだのApple Public Source Licenseだのは、同じライセンスのまま配布しないといけませんよっていう条件が付いている。つまりGPLとして再配布はできなくて、FSFもこれらはGPLと互換性がない(GPLのプログラムと混ぜて使えない)ライセンスですよと言っている。
なのでChromiumのコンポーネントを使うNW.jsやElectronでGPLのプログラムを組み込んで配布するのはライセンス的に無理なのであった。あばばば。
ちなみにMSは自社OSSに独自ライセンス使うのをもうやめていて、既存のものはともかく最近のやつはほぼ全部ApacheライセンスとかMITライセンスとかの表示すればいいだけのやつで、GPLとも互換性ある。よかった。
他になんとかなるもの無いか探したけど、現代的なWebブラウザコンポーネントを使うようなのは商用かでなけりゃChromiumベースのものばっかりだ4。 WebKitも見てみたがWindows版はビルド大変そうだし、やっぱりAppleのOSSライセンスが含まれてるのでGPLとの互換性が無理そう。 WindowsならEdgeのホストするやつでもいいんだが、Windows 10の1809以降のみなので動作環境が厳しすぎる。それ以外がIE11って……。IE11で動くのも作れないわけじゃないが細かいところで対応してない機能がしれっと出てくるからめんどいぜ。
ということでほぼ諦めていたんだが、.NET FrameworkでFirefoxのエンジンをホストするGeckoFXてライブラリを発見した。FirefoxってXulRunner廃止してからエンジンとしてホストできるもんじゃなくなったと思い込んでたけどそうでもなかったんだ! Firefoxはライセンス的にGPLと互換性ある(わざわざGPLやLGPLでも配布できるトリプルライセンスになってる)し、そのせいもあって当然GPLと非互換なOSSを使ってたりもしないようだ。 これなら使えそう。
GeckoFXをちょこっと試したところ、手軽に使えていい感じだったのでこれでいいかもしんない。HTMLホストしかしないからElectronとかNW.jsみたいにシステムとやりとりする部分は自分で作らないといけないのが問題か。ドキュメントはあんまりないから拡張方法なんかはソース見て調べないといけないが、まあなんとかなるでしょう!
いろんな物がオープンソースになってる今日このごろだけど、ライセンスはほんと難しいなあ。みんなも気をつけてほしい。