web-dev-qa-db-ja.com

GPLv2コードはLGPLv3ライブラリにリンクできますか

GPL v2(またはそれ以降、オプションで)の条件に基づいてリリースされたライブラリーを作成する場合、そのライブラリは、暗黙的にGPL v3を強制することなく、LGPL v3(またはそれ以降)でリリースされた別のライブラリに依存依存できます。つまり、私は純粋にそのライブラリにリンクしています。

thisthis を読んで、LGPLv3とGPLv2は「互換性がない」ことを理解しています。しかし、互換性がコードの混合のみを意味するのか、それともリンクにまで及ぶのか(LGPLのライブラリを変更せずに)、私にはわかりません。

2
0__

GNUの ライセンス互換性マトリックス によると、GPLv2(またはそれ以降)ソフトウェアをLGPLv3ライブラリにリンクすると、製品の有効なライセンスはGPLv3になります。

GPLライセンスのコピーレフトの性質は、ソフトウェアが依存するすべてが、実際にGPLライセンスを保持する部分と同じ条件で利用可能でなければならないことを意味します。これには、リンク先のライブラリが含まれます(主要なOSコンポーネントと標準ライブラリの明示的な例外を除く)。
コードはすべてGPLに基づいてライセンスされる必要はありませんが、GPLでは、すべてのパーツを変更する自由がある必要がありますGPLコードを含み、変更の有無にかかわらずアプリケーションを自由に配布できるアプリケーションの場合。


ライセンスXがGPLと互換性があるとは、ライセンスXがユーザーに、少なくともGPLと同じくらいの自由を与えることを意味します。そのため、GPLコードとライセンスXを使用するコードの両方を含む製品では、その製品の配布は、どちらのライセンスの条件にも違反しません。

GPLv3は 追加要件 を設定しているため、GPLv3とGPLv2は相互に互換性がありません。これは、GPLv2では許可されていません。これは、GPLv2(またはそれ以降)とLGPLv3の組み合わせがGPLv2コードをGPLv3に効果的に「アップグレード」する理由でもあります。これは「またはそれ以降」の許可の下で可能です。

Bart の優れた答えについてコメントするのに十分な担当者がいませんが、特にそのような問題を回避するために、GPLとLGPLの下でいくつかの注目すべきオープンソースライブラリのデュアルライセンスについて言及する価値があると思いました。

たとえば、 QtGPLv2、GPLv3またはLGPLv で利用できます(有料の場合は商用ライセンスで利用できます)。これは、GPLv2プログラムが「以降」のアクセス許可を付与していなくても、GPLv2プログラムをQtにリンクできることを意味します。これにより、GPLv2ライセンス条項に基づいてQtを使用することになります。 (ただし、注意が必要です。 すべてのQtモジュールがすべてのライセンスで使用できるわけではありません 。)


ライブラリを作成する場合、ユーザーはそのうちの1つに準拠するだけでよいため、複数のライセンスでリリースする前に慎重に検討する必要があります。つまり、ライブラリがGPLv2 +/LGPLv3 +であり、誰かが変更バージョンを作成し、それらのライセンスの1つだけでリリースした場合、ライブラリのライセンスを変更せずに、変更をライブラリにマージすることはできません。 (そして、すべての寄稿者から許可を得ない限り、ライブラリのライセンスを変更することはできません。)

0
HullCityFan852