Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ライセンスの変更をしたい #247

Open
kumaryu opened this issue Jan 24, 2016 · 6 comments
Open

ライセンスの変更をしたい #247

kumaryu opened this issue Jan 24, 2016 · 6 comments
Labels
RFC ご意見募集中

Comments

@kumaryu
Copy link
Owner

kumaryu commented Jan 24, 2016

現状のライセンスは GPLv3 ですが、これを LGPLv3 に変更したいと思います。

理由

GPLv3 が厳しすぎて他のライブラリなどを導入するのが難しいため、より緩いライセンスにしたい。

GPLv3 は GPLv3 互換でないライブラリやプログラムと組み合わせて使えません。
多くのオープンソースのプログラムは MIT や Apache ライセンスなど GPLv3 互換ですが、ブラウザコンポーネントとしてよく使われる Chromium は実は GPLv3 互換でないので組み合わせることができません(MS PL や Apple の OSSライセンスのものが使われている)(誰も気にしてねえみたいだけど)。
また、 Chromium 自体がオープンソースですが、Windows で Chromium ベースの Edge のコンポーネントを使う WebView2 は OSS でないので確実に非互換でこれは使えません。
それ以外にも何かライブラリを組み込もうとすると、間接的に組み込まれるプログラムも含めて全部 GPLv3 互換であることを調べないとならず結構な負担があり、また使えないことが発覚することもままあります。

主に上記のことを解決するのにライセンスの変更を提案します。

変更候補

メジャーなのならまあなんでもよさそうなんですけど、 LPGLv3 を候補に考えています。

理由としては、

  • ほっとくとみんな改造したやつのソースを出さないので、改造したやつのソース公開は必須なライセンスにしたい。
  • .NETでは基本的にライブラリは動的リンクになので、 LGPL の再リンク可能な状態にしなくてはならないという制限はほぼ影響がない。
  • 元々の PeerCast が GPLv2 だったことから、あまり離れないほうがいいかなと思う。まあこれは元々の PeerCast がそんなにライセンスにこだわりあったようには思えないのであんまり気にすることはないです。

というあたりです。

懸念点

以前は、

GPL の旧 PeerCast からほぼ移植したようなところがある(ASFのパーサあたり)

という懸念がありましたが、ここは一から書き直したので自分の一存でライセンス変更はできます。
他はプロトコルなどのインターフェース的なものは互換性のために参考にしましたが、コードをC#に移植したようなところはないので GPL でなくてはならないところはありません。

残りは、

  • パッチくれた人に変更していいか確認する必要がある。
  • ライセンスは LGPLv3 でいいのか?

という点があります。

パッチくれた人にはメンション飛ばすんで、よければ 👍 押してください。
なんか意見あればコメント書くか 👎 を押してください。
全員は反応無いんじゃないかと思うので適当な期限切って反対意見出なければ変更しようと思います。

ライセンスは特に意見なければ LGPLv3 にするつもりなので、もっと緩いのが良いとか、MPL2の方がいいんじゃないかとかいう人がいたらコメントください。

@kumaryu kumaryu pinned this issue May 27, 2022
@kumaryu kumaryu added the RFC ご意見募集中 label May 27, 2022
@kumaryu
Copy link
Owner Author

kumaryu commented Jun 6, 2022

過去にPull Requestを取り込んだ方達にメンションしておきます。
@plonk @progre @niwakazoider @shinji3 @ha2ne2 @mozsh
LGPLv3 への変更に賛成(もしくは異論がなければ)であれば 👍 を押してください。
なんか思うところがあればコメントをつけるか 👎 を押してください(できればなんかコメントの方がよい)。

ひとまず6月いっぱいくらいを目処にコメント募集します。
全員賛成か、6月中になんも意見がなければとりあえず変更する方向で進めます。
できればみんな納得した状態で変更したいなーと思っているのでよかったらなんか反応ください。

@kumaryu
Copy link
Owner Author

kumaryu commented Jun 6, 2022

あ、メンションした人以外でもなんか思うところあったコメントください。

@progre
Copy link
Contributor

progre commented Jun 25, 2022

👍 しましたが、懸念、というかモヤモヤしているので記載しておきます。

LGPL にするとプロプライエタリコードからの動的リンクを許すことになるので
それでいいのかというのが一つ。

もう一つは、WebView2 の利用のように、GPL ソフトウェア から プロプライエタリなライブラリ リンクすることが
GPL ライセンスに反するというのが合理的な理屈に思えず、かつ該当する条文がわからないことです。
不勉強なんですが、そうだとすると GPL ソフトウェアの制限をするだけで GPL 側にメリットがあるように思えないので。

とはいえ私がコントリビュートしたの WPF くらいで PeerCast のコア部分は触れてないので、
判断はあれくまさんにお任せします。

@kumaryu
Copy link
Owner Author

kumaryu commented Jun 26, 2022

LGPLにした時にプロプライエタリなプログラムからの動的リンクは許容します。
改造したやつのソースを出さないのは嫌ですが、何かに組み込むのは好きにしていいと思います。
というか、GPLだと、別体であっても実質PeerCastStationを必須とするプログラムはオープンソースでなければいけないという話もあって、真面目に考えると厳しすぎるので緩和したいです。
あと、プロプライエタリなライブラリを使いたいのに逆を許可しないってのはいろいろ無理があるので許容すべきです。

プロプライエタリなライブラリのリンクができないのは GPLv3 (https://licenses.opensource.jp/GPL-3.0/GPL-3.0.html) の第6項に書かれてるバイナリの配布方法によります。
ここでオブジェクトコード(つまりバイナリ)を配布するには、『対応するソース』も同等の方法で取得できるようにすることが要求されています。
で、『対応するソース』については第1項にあるんですが、その作品が設計上明確に必要とする、そうした共有ライブラリや下位プログラムのソースコードなどが含まれる、となっています。(『システムライブラリ』を除く)
つまりライブラリのソースコードも配布できるようにしないといけないのですが、プロプライエタリなライブラリはソースを自由に配布することができないのでGPLのプログラムと両立できません。
例外になってるのは『システムライブラリ』で、それも第1項にありますが、OS自体やOSとのインターフェースやインタープリターなどのプラットフォームと呼べるものやコンパイラなんかのビルドツール自体です。
WebView2のDLL自体『システムライブラリ』と言ってもギリギリ良さそうな気がしますが、しかしそれが使うWebView2のランタイムがOS組み込みじゃないこともあって『システムライブラリ』と呼ぶのは厳しそうに思えます。
.NET FrameworkとやJVMなんかはプラットフォームと呼べるものなのでこれは『システムライブラリ』と言ってよさそうです。

どうしてプロプライエタリなライブラリをリンクすることを制限しているかというと、これを許可すると主要な部分をプロプライエタリなライブラリに詰め込んだ GPL ソフトウェアが成立してしまうからです。
GPL の理念としては全部オープンソースになっててほしいなーなので、それを骨抜きにする方法は制限されています。
(たぶん本当は『システムライブラリ』すらもオープンソースであってほしいんだと思いますけど、それだとつかいどころが無さすぎるので例外にしてるんじゃないかと。)

@darklie
Copy link

darklie commented Jul 14, 2022

ライブラリでなくアプリケーションがLGPLというのはあんまり見ないことも思うとMPL2.0あたりも良いのかなと思いました
GPL互換もあってプロプライエタリ・ソフトウェアとの相性も悪くなくある程度望むものが得られそうな気もします
参考:Mozilla Public License version 2.0 日本語参考訳 | コミュニティ関連文書情報 | Mozilla Japan コミュニティポータル
Mozilla Public License - Wikipedia

@kumaryu
Copy link
Owner Author

kumaryu commented Sep 22, 2022

だいぶ間があきましたが……
とりあえずLGPL3へのライセンス変更自体は異論ないという感じでよいかと思います。

@darklie さんから MPL2.0 の提案もありましたが、これもよさそうなので検討したいですね。
基本的には LGPL とだいたい同じ感じですが、 LGPL3 と比べると若干緩くなっています。

LGPL3(およびGPL3)ではバイナリにソースも配布することだけでなく、実際にLGPL3の部分を改造したものに置き換えて動かせることが要求されています。
機器に組み込んだりバイナリの暗号化とかで改変が禁止されるような場合でも LGPL3 の部分はバイナリを置き換えて動かせるだけの情報(たとえば機器への組込みならバイナリの置き換え方法、バイナリを暗号化とかしてるならその暗号化キー!)も提供すること、となっています。
たとえば PeerCastStation をゲーム機(やそのソフト)に組み込んだ場合に、ソースを出すだけでなくユーザーが改造した PeerCastStation もそのゲーム機で動かせるようにしないといけない、ということです。
これはGPL3/LGPL3の条項ですが、MPL2.0には存在しません。

これが必要かどうかがLGPL3とMPL2.0どっちにするかの判断になるかと思います。
自分としてはこの条項はあってもなくてもいいかなあという感じがするのでMPL2.0でもよさそうです。

なんか意見ある人がいたらください。
LGPL3の方がよさそうという人は→ 👍
MPL2.0の方がよさそうという人は→ ❤️
をリアクションで押してください。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
RFC ご意見募集中
Projects
None yet
Development

No branches or pull requests

3 participants