web-dev-qa-db-ja.com

GPLv2プログラムはApacheライセンスのライブラリに依存できますか?

GPL(バージョン2)でライセンスされたソフトウェアプログラムは、GPLに違反することなく、APLv2でライセンスされたライブラリに依存できますか? here という言葉は、おそらく私には示唆していない。

私の特定のケースでは、APLv2ライセンスの外部ライブラリを使用するデーモンを探しています。

[〜#〜] update [〜#〜](回答/コメントに応じて)

  1. この質問のために、メインプログラム(デーモン)のライセンスを再取得することはできません
  2. メインプログラムは、apr-utilおよびおそらく他のAPLv2コンポーネントを使用する機能で拡張されました

私の質問は、拡張デーモンをGPLv2の下で解放できるか、またはこれを自分自身に保つ必要があるか(ディストリビューションなし)、および/またはコミットした場合にAPLv2なしで再実装する必要があるかどうかです (a)この拡張機能をリリースし、(b)デーモンをGPLのままにしますか?

12
pilcrow

最初にいくつかの用語を明確にしましょう。 [〜#〜] fsf [〜#〜]licenseがGPL と互換性があると言ったとき、それらは多くの人々がそれを解釈することを意味しません平均。多くの場合、「互換性がある」とは、2つのソフトウェアが同じアプリケーション内で共存できることを意味します。

これはFSFが意味するところに近いですが、GPLのコピーレフトの規定は、少し先に進みます。

GPL FAQ から、私の強調。

これは、他のライセンスとGNU GPLに互換性があることを意味します。他のライセンスでリリースされたコードとGNU GPLでリリースされたコードを1つ大きいサイズで組み合わせることができます。プログラム。
すべてのGNU GPLバージョンは、そのような組み合わせを非公開で許可します。また、そのような組み合わせの配布も許可します組み合わせが同じGNU = GPLバージョン

したがって、ライセンスがGPLの下で吸収される場合、ライセンスはGPLと互換性があります。


それでは、APLv2とGPLv3を見てみましょう。

  • APLv2_Lib + GPLv3_Lib => GPLv3が問題ないのでlibを結合しました。
  • APLv2_Lib + GPLv3_Lib => APLv2としてのlibの組み合わせは問題です。

そして、Apacheは here と言っています:

GPLv3の作者は派生的な作品を作成するためにGPLv3にリンクするだけであると見なされているため、GPLv3ソフトウェアは使用しません。私たちは彼らのライセンスを尊重したいと思います。


ただし、v3ではなくGPLv2でライセンスされたデーモンを使用しているとします。

FSFはかなり clear であり、あなたがしたいことは公共のディストリビューションでは受け入れられません。

このライセンスはGPLバージョン2と互換性がありません。そのGPLバージョンにはない要件がいくつかあるためです。これには、特定の特許の終了および補償規定が含まれます。

だから、あなたの質問に答えるには:

いいえ、GPLv2とAPLv2のライセンスが必要な資料を使用して、結合されたデーモンを配布することはできません
FSFは、その組み合わせを公に配布することは許可されていないことを明示的に示しています.

代替案:

  1. あなた個人的に使用することを許可されています。

  2. また、APLv2の機能を書き直してから、新しい作業とGPLv2の作業を組み合わせてもかまいません。

  3. デーモンをGPLv3に変更できるかどうかを確認できます。そうであれば、APLv2の作業を現在のGPLv3デーモンにマージすることは明白です。

7
user53019

私の見解は、OPのASFリンクのテキストに基づくOPと一致しています。

ASF(Apache Software Foundation)は、ASFv2コードがGPLv2を使用するシステムの一部であるという考えを、あなたのケースの限られた情報とさまざまなFOSSライセンスの私の理解に基づいて好まない:包括的プロジェクトにGPLv2があるかどうかに関係なく、または包括的プロジェクトがGPLv2であり、ASFv2を含めようとしている。

さらに、GPLv3コードを含むASFv2アンブレラプロジェクトは発生してはならないようですが、GPLv3アンブレラプロジェクトはASFv2コードを含むことができます。

おそらく(Gnuによれば)秘密は、それらが互いにどのように相互作用するかです。リンクされている場合、実行中にデータの同じコピーを共有すると、それらは同じプログラム内の1つになります。ただし、異なるプロセス間でデータを受け渡す別のプロセス(つまり、fork)として動作している場合は、別のプログラムであるため、実行していることは許容される場合があります。実行中に共有データスペースを使用し、個別のプロセスで動作しない場合、それらが同じであるか、結合が強すぎて個別または独立していないため、実行していることが許可されない可能性があります。

2
JustinC