web-dev-qa-db-ja.com

クライアントソフトウェアのみを配布する場合、サーバーでGPLライセンスソフトウェアを商用利用できますか?

I ルールを理解する GPLコードを使用してソフトウェアを配布する場合、そのコードはmustGPLでライセンスされている であると述べているGPLの。

ただし、この場合のルールは何なのかと思います。クライアント側ソフトウェアを販売および配布するサービスを作成しています。

クライアント側のソフトウェアには、GPLコードは一切含まれていません。 100%自分のコードです。

ただし、クライアントソフトウェアは内部でGPLコードを使用するサーバーに接続します。

サーバー側のソフトウェアを配布していません。サーバー側のソフトウェアは私が単独で制御する専用サーバー上に存在しますが、クライアント側のソフトウェアはそのサーバーに接続しないと機能しません。

これは1つのソフトウェアとしてカウントされますか?これを行う場合、クライアント側のソースコードをGPLとしてライセンスする必要がありますか?または、ソースコードをリリースせずにクライアント側のソフトウェアを販売できますか?

15
Steven Jeffries

これは明確な問題ではありません。スペクトルの両端を考えてみましょう。

  1. 独自のクライアントソフトウェアはHTTPクライアントであり、HTML応答をレンダリングします。任意のHTTPサーバーで動作します。サービスに使用するHTTPサーバーは、たまたまGPLコンポーネントを使用します。

  2. GPLライセンスのコンポーネントを使用するプログラムがあります。そのプログラムの操作で任意のポイントを選択し、プログラムを2つのプログラムに分割します。 2つのプログラムは、まったく不要なネットワークホップを介して通信します。すべてのGPLライセンスコンポーネントを最初のプログラムとGPLに基づくライセンスに入れ、他のプログラムはGPL非互換ライセンスにライセンスします。

最初のケースは明らかに大丈夫です。 2番目のケースは明らかに大丈夫ではありません。あなたはあなたの特定の事件について多くの情報を与えていません、そしてあなたが与えたとしても、あなたが正しいかどうかを決定的に決定できるのは裁判所の判決だけです。

GPL FAQには これは、相互運用可能な、個別にライセンスされたプログラムで言うと

ただし、多くの場合、GPLで保護されたソフトウェアを独自のシステムと一緒に配布できます。これを有効に行うには、フリープログラムと非フリープログラムが腕の長さで通信することを確認する必要があります。それらを効果的に単一のプログラムにします。

これとGPLでカバーされるソフトウェアの「組み込み」の違いは、部分的には実質の問題であり、部分的には形式です。実質的な部分はこれです:2つのプログラムが結合されて1つのプログラムの2つの部分になる場合、それらを2つの別個のプログラムとして扱うことはできません。したがって、GPLはすべてをカバーする必要があります。

クライアントがサーバーであると考えるかどうかは、「同じプログラムの2つの部分」の標準を満たす(したがって、それぞれがGPLでライセンスされる必要がある)かどうかを判断する必要があります。 GPL FAQいくつかの このトピックに関する別の質問での詳細な説明

2つの別々のプログラムと2つの部分を持つ1つのプログラムの境界はどこにありますか?これは法的な問題であり、最終的に裁判官が決定します。適切な基準は、通信のメカニズム(exec、パイプ、rpc、共有アドレス空間内の関数呼び出しなど)と、 通信のセマンティクス(どのような種類の情報が交換されるか)。

...

対照的に、パイプ、ソケット、コマンドライン引数は、通常2つの別々のプログラム間で使用される通信メカニズムです。したがって、それらが通信に使用される場合、モジュールは通常別々のプログラムです。しかし、通信のセマンティクスが十分に親密で、複雑な内部データ構造を交換する場合、それも2つの部分をより大きなプログラムに結合したものと見なすための基礎となる可能性があります

したがって、ネットワーク通信は確かに「通信のメカニズム」テストに合格しますが、クライアント/サーバーのペアが「通信のセマンティクス」テストのどこに当てはまるかは不明です。

12
apsillers

ネットワークを介して通信する2つのプロセスは、実行可能ファイルとライブラリのリンケージが行うような派生作業の作成を伴いません。したがって、サーバー上のGPLコードはクライアントコードには適用されません。

GPLでは、バイナリを配布するときに、変更されたソースコードを配布する必要があります。サーバーのバイナリを配布するわけではないので、サーバーのソースコードを配布する必要はありません。

GNU Affero GPLはGPLに似たライセンスであり、この非常にループホールを利用するために設計した追加の冗長性を備えています(参照: http://www.gnu .org/licenses/why-affero-gpl.html および http://en.wikipedia.org/wiki/Affero_General_Public_License#Examples_of_web_applications_under_GNU_AGPL )。

免責事項:私は弁護士ではなく開発者です

4
J. Lenthe

クライアントソフトウェアは、適切に機能するためにサーバーソフトウェアに依存していますか?つまり、クライアントソフトウェアはサーバーに接続しなくても機能しますか?

それに対する答えが「はい」であり、サーバーがクライアントソフトウェアにコアサポートではなく追加機能を提供しているだけであれば、おそらく問題はありません。サーバーソフトウェアがクライアントソフトウェアの不可欠な部分であり、クライアントソフトウェアにコア機能を提供する場合(つまり、クライアントソフトウェアはサーバーなしでは機能しません)、組み合わせは派生作業でカバーされますGPL。

2
Robert Harvey