web-dev-qa-db-ja.com

GPLは二次的著作物に含まれますか?

A、B、Cの3つのソフトウェアプロジェクトがあります。

Aは誰にでも公開され、GPLの下でライセンスされています。

BはAを拡張し、公開もされていますが、ライセンス情報がないか、LGPLで誤ってライセンスされています。基本的に、GPLでないことはAのライセンスに違反します。 Bのソースコードはまだ利用可能です。

CはBを拡張します。CはGPLの下で公開できますか?動機は「AはGPLであり、いかなる派生物もGPLでなければならないので、BはGPLであり、CもGPLである可能性があります」です。

13
Andrej

まず、BはAのGPLに違反しています。しかし、それはあなたの懸念事項ではなく、ここでの質問には無関係です(たぶん、BがLGPLの下でリリースされるように、コードからBがAからLGPLライセンスを取得したのでしょうか? )。

問題は、「LGPLコードに基づいてGPLソフトウェアを構築できるか」ということです。これに対する答えは単に「はい」です。

LGPLはGPLよりも制限が少ないため(他の規定が作成されていない限り、BがAのライセンスに違反している理由です)、GPLプロジェクトに簡単に戻すことができます。

LGPLライセンスから:

  1. ライブラリヘッダーファイルの素材を組み込んだオブジェクトコード。アプリケーションのオブジェクトコード形式には、ライブラリの一部であるヘッダーファイルの内容を組み込むことができます。組み込まれた資料が数値パラメーター、データ構造のレイアウトとアクセサー、または小さなマクロ、インライン関数とテンプレート(長さが10行以下)に限定されない場合は、選択した条件でそのようなオブジェクトコードを伝達できます。次の両方を実行します。

    a)ライブラリがその中で使用されていること、およびライブラリとその使用がこのライセンスの対象であることを、オブジェクトコードのコピーごとに目立つように通知します。
    b)GNU GPLおよびこのライセンスドキュメントのコピーをオブジェクトコードに添付します。

ライセンスの一部。 LGPLコードに基づいてGPLソフトウェアを簡単に構築できます。

いくつかの バージョンの違い があり、GPLの正しいバージョンの下で、コードが正しい方法でライセンスされていることを確認するために注意する必要があります。


ライセンス情報が提示されていない場合、あなたには拡張する権利がありませんそれ。 Bは配布されるべきではありませんでしたが、その貢献はオープンソースライセンスの下でライセンスされたnotです。これは、公開された内部プロジェクトまたはその他のイベントであった可能性があります。

GPLとの拡張と互換性のあるライセンスの下では表示されません。 GPLソフトウェアを社内で使用している(違反ではなく許容できる)会社がリポジトリを誤って公開した状況を考えてみてください。

この場合、プロジェクトC自体が著作権侵害に違反している可能性があります(Bが追加した資料で、最初は配布されるべきではなかったため、GPLの下でライセンスされていません)。

1つできない他の誰かのソースにライセンスを強制することはできません。ライセンスに準拠しているか、ライセンスに違反しています。それが違反している場合は、ライセンスに明記されているとおり:

このライセンスの下で明示的に提供されている場合を除き、対象の作品を伝播または変更することはできません。それ以外の方法でそれを伝播または変更しようとする試みはすべて無効であり、このライセンスに基づくユーザーの権利は自動的に終了します(セクション11の3番目の段落で付与された特許ライセンスを含みます)。

GPLの違反は、そのマテリアルがGPLに準拠していることを意味するのではなく、配布できないことを意味します。

23
user40980

著作権者がいます:Aが作成した作品には著作権があり、Bが追加したものには著作権があり、Cが行った変更には著作権があります。 Cは、AとBが著作権を保持するソフトウェアを使用する許可を持っているかどうかを確認する必要があります。

AはGPLの下でライセンスされました。誤ってライセンスを付与したBから受け取った場合でも、GPLがAの作品をGPLの条件に基づいて使用する許可を与えることは間違いありません。実際的な問題がある可能性があります。たとえば、ソースコードを提供できる必要があります。ソースコードなしでソフトウェアを受け取った場合、GPLの条件に基づいてソフトウェアを公開することはできません。

Bは他のライセンスの下でライセンスされました。 B すべき GPLの下でライセンスされていますが、そうではありませんでした。 BのライセンスでGPLよりも多くの権利が与えられた場合、実際にはAのコードに対してこれらの権利はありません。BはAのコードに追加の権利を与えることはできません。 Aが許可したので、GPL条件の下でAのコードを使用でき、Bのライセンスの下でBの追加コードを使用できます。

BがGPLよりも厳しいライセンスでコードをリリースした場合、Bは著作権侵害を犯している可能性が高いです。 GPLライセンスではBのコードを使用できません。これはよく混乱します:GPLはforce Bで何も実行できません。これは、Bに選択肢を与えるだけです。この方法で公開することは合法であり、別の方法で公開することは違法です。 Bは違法な行為を行い、その結果を被る(著作権侵害で訴えられる)権利があります。 Bから提供されたBのコードに対する権利がありません。

4
gnasher729

技術的には、それ自体がGPLライセンスの対象ではないコードでGPLライブラリを拡張することが可能です。問題は、作成した派生作品を配布するときに、GPLが課すすべての要件を遵守する必要があることです。

あなたの状況では、これは、GPLの下にライブラリAを、LGPLの下にライブラリBにnewコードを置くことが可能であることを意味します。組み合わされた作品(ライブラリB)は、GPLライセンスに基づいて効果的に配布されます。LGPLライセンスはGPLライセンスと互換性があるため、そのように配布できます(GPLライセンスプロジェクトでLGPLライセンスコードを使用できます)。
そのような状況では、ライブラリCのGPLの下にnewコードを配置しても問題ありません。結果としてGPLの下でも作業が行われます。