簡潔な答え
Eclipse Public LicenseとLGPLの組み合わせにより、希望どおりの結果が確実に得られます。コードの変更を利用可能にする必要がありますが、より大きな製品でコードを使用しても、より大きな製品のライセンスが強制されることはありません。この組み合わせは、コードをGPLプロジェクトと非GPLプロジェクトの両方で使用できるようにするために必要です。
これは、JGraphTなどのプロジェクトが行った方法です。彼らはEPLとLGPLに基づいてプロジェクトを再ライセンスしました。動機と手順は彼らのウィキで説明されています。
長い答え
私が思うに、Mozilla Public License(MPL)またはEclipse Public License(EPL)はあなたが探しているライセンスです。なぜなら、「ライブラリから派生物が作成された場合(たとえば、ライブラリの改善)、 ]同じライセンスの下で誰でも利用できるようになりました。」
MPLとEPLライセンスは、GPLとMITの間です。
MITでは、変更、販売、変更されたコードをコミュニティに返さないなど、ユーザーがMITを使用してすべてを行うことができます。
ライブラリが製品全体の1%にすぎない場合でも、GPLにより、ユーザーはすべてのコードをコミュニティに配布する必要があります。
LGPLは、ユーザーにコードのLGPL部分の変更を提供することを強制します。
MPLとEPLはLGPLに似ています。これにより、ユーザーは変更されたソースを利用できるようになります。「変更されたソース」には、MPL / EPLでカバーされたコードの一部のみが含まれます。つまり、ユーザーはライブラリから新しい製品を作成できます。MPL- / EPL-partの変更を行う場合、彼はそれを公開する必要があります。彼による新しいものを公開する必要はありません。
LGPLは明示的に「ライブラリ」について語り、MPLは単に「対象ソフトウェア」(より広い範囲)について語るだけなので、MPL / EPLはよりふさわしいと感じます。
ただし、EPLを選択すると、ソフトウェアとGPLソフトウェアの組み合わせに問題が発生します。EPLはGPLと互換性がありません。これは、MPLだけを使用する場合には当てはまりません。
コードがGPLプロジェクトとGPL以外のプロジェクトの両方で確実に使用されるようにしたい場合は、短い回答で説明されているように、コードをLGPLとEPLでデュアルライセンスします。
例