web-dev-qa-db-ja.com

オープンソースプロジェクトのライセンスの選択

私はいくつかのオープンソースプロジェクトを行ってきましたが、将来はもっともっと行う予定です。これまでのところ、すべてのコードをGPLでリリースしましたが、GPLは企業環境で使用するコードには制限が厳しすぎると主張する記事をいくつか読んだことがあります。これはおそらく、貢献を減らします。

これが私が達成したかったことです:

完全なアプリケーションの場合:

  • アプリケーションの販売supportを除き、商用利用はできません(つまり、アプリは販売できませんが、その周りのすべてのものは販売できます)。

libraries(コンポーネント、プラグインなど)の場合:

  • 商用プロジェクトに含めることができます変更なし
  • ライブラリ/コンポーネントをオープンソース化する必要がある変更(コントリビュートバック)-プロジェクトの残りの部分(商用かどうかにかかわらず)は影響を受けません

アプリケーションにとって、GPLは依然として論理的な選択のようです。ライブラリの場合、ライセンスについての原始的な理解から、LGPLが適切であると思いますが、確信が持てません。私はMITライセンスを見てきましたが、それは寛容すぎるようです。

ほとんどの場合、改善が提供されている限り、人々はどこでも好きな場所で私のコードを使用してほしい。

これは私に私の質問をもたらします:LGPLはオープンソースライブラリ、コンポーネント、プラグインなどの論理的な選択ですか?より良い代替案はありますか? GPLは私のアプリケーションに適していますか、それとももっと良いものがありますか?

更新:

私の最終的な決定に関心がある人のために、私はMPL、LGPLおよびGPLのマルチライセンススキームの下で私のライブラリをリリースすることにしました。これにより、実質的にeveryoneがMPLの下で変更しない限り、義務なしに私のコードを使用できるようになります。

これは、コードがFSFとプロプライエタリソフトウェアの両方で使用できることを意味しますが、「悪い」商用利用は防止されます(または私は考えたいと思います)。

30
  • アプリケーションの販売supportを除き、商用利用はできません(つまり、アプリケーションは販売できませんが、その周りのすべてのものは販売できます)。

Huperniketesが観察したように、GPLはアプリケーションの販売を禁止していないことに注意してください。これを禁止すると、ライセンスが実際にフリーではなくなります。 GPLが保証する唯一のことは、ソフトウェアを販売する会社がalsoが無料でコードベースを提供する必要があることです。ただし、softwareパッケージをそのまま無料で提供する必要はありません。ソフトウェアのソースコードはすぐに使用できる製品ではないため、これはかなり大きな違いです。

8
Konrad Rudolph

GPLとLGPLはプロジェクトに必要なものだと私には思えます。

8
alternative

ソフトウェアの商用利用を防止したい場合、GPLはそれを削減しません。変更されたソースを再配布する必要があるため、GPLは販売する製品の商用企業によって回避される傾向がありますが、GPLソフトウェアを内部で自由に使用できます。企業がGPLソフトウェアを販売したり、GPLソフトウェア(LinkSysなど)を中心にハードウェアを構築したりしていないわけではありませんが、ほとんどの企業は自社製品を競合他社と共有することを好みません。

Creative Commons Attribution Non-Commercial No Derivativesライセンスがあなたの望むものであるかどうかはわかりません(あなたが述べた唯一の制限は商業的useです)、そうでなければ、あなたは必要かもしれません弁護士があなたのために用意した免許を、ライセンス保持者が持つことを望む権利を与える言語を含むものにする。

また、非商用目的および非変更可能性などの制限を含め始めると、基準を満たさなくなる可能性があります Open Source Initiative によって defined としてopen sourceライセンスの場合彼らのサイトには 他の承認されたOSSライセンス もリストされています。おそらく、あなたの目標に一致するものはすでにあるでしょう。

そして、あなたの目標を適切に定義することは、あなたがあなたのソフトウェアのユーザーに課す権利と制限を選択する前の鍵となります。変更性、配布、使用法より人気は重要ですか?最初にコードをリリースする目的と、それを実行する精神、またはアクセスを許可する条件が逆の影響を与える可能性があることを考えてください。

5
Huperniketes

すべてのコードを記述した場合(つまり、自分のコードを所有している場合)、次のこともできますdual license it:publish your code in e.g. GPLvそして、それをより制限なく使用したい人に(別のライセンスで)販売することを申し出ます。

(GPLに準拠したライブラリはGPLソフトウェアでのみ使用できるため、これは特にライブラリに関連しています)。

コードに組み込む外部のコントリビューションまたはパッチには注意してください(それらを所有していないため)。

あなたが気にしているのは、コードを無料に保ち、改善を取り戻し、誰もがそれを使用できるようにすることです [〜#〜] mpl [〜#〜] はあなたに適切なライセンスです。 LGPLが課すような奇妙で難解なリンクの制限なしに、商用ソフトウェアを含むすべての製品で自由に使用できます。それはあなたのコードを使用し、それを修正する誰もがMPLの下で変更をリリースすることを要求します、しかしそれはプロジェクトの残りのコードのどれにも触れたり制限したりしません。

4
Mason Wheeler

実際にMPLを申請できるか、GPLのみを申請できるかは、1つの重要な違いに依存します。

「本契約に基づく権利」には、MPL「対象コード」を非MPLのプライベートコードとリンクして「より大きな著作物」(MPL 3.7より大きな著作物)を形成するために受信者に付与される権利が含まれます。 GPLは受信者にそのような権利を与えません。したがって、受信者はライセンス条件を変更してMPLの代わりにGPLを適用することはできません。

this を参照してください。

これが意味することは、それ自体がGPL化されているコンポーネントを使用している場合、(おそらく)MPLで(これを使用している)コードをリリースできないということです。 MPLは、不適切なMPLでGPLされたコードの再配布を誤って許可しようとします。依存関係がMITまたはApacheライセンスの順である場合)、これは問題ありません。

一般に、既にMPLを使用している場合を除き、ない場合は、GPLのみよりもMPLを選択する方が良い結果が得られます。 GPLはまた、寄付が公開されることも保証します。

MPLが提供する重要な変更は、無意識に引き起こされた特許侵害からの保護です。ライセンスが言うように:

誰かが特許を取得している変更を作成し、ライセンスの下で必要に応じてその変更を無料で利用可能にしてから、戻って全員に特許権の請求を試みることはできません。

MPLとGPLは完全には互換性がありません。

ここで見ることができます: MIT対BSD対デュアルライセンス デュアルライセンスの意味についての議論。

1
Dipan Mehta

誰も彼らについて話しているようには見えませんが、あなたはクリエイティブ・コモンズのライセンスを検討するかもしれません。 ライセンスの範囲 (または、ニーズに合わせて調整したものを別の方法で見たもの)があります。

0
Frank Shearar