A、B、Cの3つのソフトウェアプロジェクトがあります。
Aは誰にでも公開され、GPLの下でライセンスされています。
BはAを拡張し、公開されていますが、ライセンス情報がないか、LGPLの下で誤ってライセンスされています。基本的に、GPLではないため、Aのライセンスに違反します。Bのソースコードは引き続き利用可能です。
CはBを拡張します。CはGPLで公開できますか?動機は「AはGPLであり、派生物もGPLでなければならないため、BはGPLであり、CもGPLになり得る」です。
A、B、Cの3つのソフトウェアプロジェクトがあります。
Aは誰にでも公開され、GPLの下でライセンスされています。
BはAを拡張し、公開されていますが、ライセンス情報がないか、LGPLの下で誤ってライセンスされています。基本的に、GPLではないため、Aのライセンスに違反します。Bのソースコードは引き続き利用可能です。
CはBを拡張します。CはGPLで公開できますか?動機は「AはGPLであり、派生物もGPLでなければならないため、BはGPLであり、CもGPLになり得る」です。
回答:
まず、BはAのGPLに違反しています。しかし、それはあなたの懸念ではなく、ここの質問とは関係ありません(BがLGPLでリリースできるように、AからコードでLGPLライセンスを取得しているかもしれません。 )。
問題は、「LGPLコードに基づいてGPLのソフトウェアを構築できますか?」です。これに対する答えは、単に「はい」です。
LGPLはGPLよりも制限が少ないため(他の規定がなされていない限りBがAのライセンスに違反している理由)、GPLプロジェクトに簡単に戻すことができます。
LGPLライセンスから:
ライブラリヘッダーファイルから素材を組み込むオブジェクトコード。アプリケーションのオブジェクトコード形式には、ライブラリの一部であるヘッダーファイルの素材を組み込むことができます。組み込まれた素材が数値パラメーター、データ構造レイアウトとアクセサー、または小さなマクロ、インライン関数とテンプレート(長さが10行以下)に限定されない場合、選択した条件でそのようなオブジェクトコードを伝えることができます。次の両方を実行します。
a)ライブラリが使用されていること、およびライブラリとその使用が本ライセンスの対象であることをオブジェクトコードの各コピーとともに目立つように通知します。
b)オブジェクトコードにGNU GPLのコピーとこのライセンスドキュメントを添付します。
ライセンスの一部。LGPLコードに基づいてGPLソフトウェアを簡単に構築できます。
GPLの正しいバージョンの下で、コードが正しい方法でライセンスされていることを確認するために注意する必要があるいくつかのバージョンの違いがあります。
ライセンス情報が提示されていない場合、あなたはそれを延長する権利がありません。Bは配布されるべきではありませんが、その貢献はオープンソースライセンスの下ではライセンスされていません。これは、公開された内部プロジェクトまたは他のイベントである可能性があります。
GPLでの拡張と互換性のあるライセンスの下では提供されません。GPLソフトウェアを社内で使用している企業(容認できる-違反ではない)が誤ってリポジトリを公開したという状況を考えてみてください。
この場合、プロジェクトCが著作権侵害自体に違反している可能性が非常に高くなります(Bが追加した資料は、そもそも配布されるべきではないため、GPLの下でライセンスされていません)。
一つは、することができない誰か他の人のソースのライセンスを強制します。ライセンスに準拠しているか、違反しています。それに違反している場合は、ライセンスに記載されているとおり:
このライセンスに基づいて明示的に提供されている場合を除き、対象作品を宣伝または変更することはできません。それを伝播または変更する試みは無効であり、このライセンス(セクション11の3番目の段落で付与された特許ライセンスを含む)に基づく権利を自動的に終了します。
GPLの違反は、素材がGPLの下にあることを意味するのではなく、配布できないことを意味します。
著作権所有者がいます:Aによって作成された作品には著作権があり、Bによって追加されたものには著作権があり、Cが行った変更には著作権があります。Cは、AとBが著作権を保有しているソフトウェアを使用する許可を持っているかどうかを確認する必要があります。
AはGPLの下でライセンスされました。GPLは、誤ってライセンスを付与したBからAの作品を受け取ったとしても、GPLの条件の下でAの作品を使用する許可をあなたに与えると確信しています。実際的な問題があるかもしれません:たとえば、ソースコードを提供できなければなりません。ソースコードなしでソフトウェアを受け取った場合、GPLの条件の下でソフトウェアを公開する方法はありません。
Bは他のライセンスの下でライセンスされていました。B は GPLの下でライセンスされるべきでしたが、そうではありませんでした。BのライセンスがGPLよりも多くの権利を与えている場合、実際にはAのコードに対するそれらの権利は一切ありません。BはAのコードに対する追加の権利を与えることはできません。Aが許可したためGPL条件でAのコードを使用でき、BのライセンスでBの追加コードを使用できます。
BがGPLよりも厳しいライセンスの下でコードをリリースした場合、Bはおそらく著作権侵害を犯しています。GPLライセンスではBのコードを使用できません。これはしばしば混乱します。GPLはBに強制的に何かをさせることはできません。Bに選択肢を与えるだけです。この方法で公開し、法的に問題ないか、別の方法で公開し、それは違法です。Bは、違法行為を行い、その結果(著作権侵害で訴えられる)を受ける権利を有します。あなたは、Bがあなたに与えたBのコードに対する権利を持っていません。
技術的には、GPLライセンスでカバーされていないコードでGPLライブラリを拡張することが可能です。ひっかかったのは、作成した派生作品を配布するときは、GPLが課すすべての要件を遵守する必要があるということです。
あなたの状況では、これはライブラリAをGPLの下に、ライブラリBの新しいコードをLGPLの下に置くことができることを意味します。結合された作品(ライブラリB)は、GPLライセンスの下で効果的に配布されます。LGPLライセンスはGPLライセンスと互換性があるため、そのまま配布できます(GPLライセンスプロジェクトでLGPLライセンスコードを使用できます)。
そのような状況では、GPLの下でライブラリCに新しいコードを入れて、GPLの下でも結果の作業を行うことはまったく問題ありません。