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


15

私は、GPLコードを使用してソフトウェアを配布する場合、そのコードはGPLの下ライセンス供与される必要があるというGPL の規則理解しています

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

クライアント側のソフトウェアには、GPLコードはまったく含まれていません。それは100%私自身のコードです。

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

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

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

回答:


12

これは明確な問題ではありません。スペクトルの2つの極値を検討してください。

  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つの部分を組み合わせてより大きなプログラムにすることを検討する基礎となります。

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


プログラム間のインターフェースが公開されている程度に基づいて区別することは合理的でしょうか?たとえば、独自のチェスエンジンと通信するGPLユーザーインターフェイスプログラムを使用するチェスプレイシステムを実装し、独自のチェスエンジンを作成したい人が同じUIフロントエンドを使用できるようにする方法を文書化すると、誰かがたまたま代替エンジンを記述しない限り、UIフロントエンドには独自のプログラムと対話する以外の目的はないものの、GPLの精神(そしてできれば手紙)を満たす必要があると思います。
-supercat

うーん。私はGPL全般に興味があったので、この質問を漠然と質問しました。しかし、私は今その違いを理解していると思います。サーバーにクライアントソフトウェアの実行に必要なユーザーアカウント情報がある場合、それは明らかにGPLに違反しています。私のサーバーが、パケットリレーサーバーのようなもので、クライアントソフトウェアの2つのバージョンが相互に通信できるだけの場合は、それで問題ありません。これらの仮定は正しいですか?
スティーブンジェフリーズ

4

ネットワークを介して通信する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)。

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


3
警告のメモ:クライアントがこのサーバーソフトウェアと特に通信するように設計されている場合、FSF サーバーとクライアントソフトウェアを1つの製品と見なす可能性があります。参照してくださいここにGPLのFAQで
バートバン隠元Schenauに

一方、サーバーソフトウェアやライセンスを見たことなく、サードパーティがサーバーと通信するクライアントソフトウェアを作成する場合、その議論はばかげているように見えます。また、たとえば、MicrosoftはOutlookサーバーに接続するソフトウェアを書いている人を誰でも訴えることができるということです。
gnasher729

2

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

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


私は注意を怠って、サーバーでGPLコードを使用しないでください。
スティーブンジェフリーズ

2
@StevenJeffriesこの答えは、現在の慣行とGPLの要件の両方に反しています。ソフトウェアまたは派生物を配布しない限り、Linux、GCC、WordPressなどのサーバーでGPL化されたソフトウェアを自由に使用できます。ソフトウェアを使用するだけでは、派生著作物は作成されません。GPLの場合、少なくともプロセスレベルの分離が関係している場合(共有メモリなし、共有データ構造なし)でも問題ないと見なされます。正しい解決策と参考資料については、J。レンテの回答を参照してください。
アモン

@amon:サーバーとクライアント間でデータ構造を共有していなければ、その通りです。しかし、そうだとは思わない。私が描いている区別(クライアントソフトウェアは、その適切な実行のためにサーバーソフトウェアに依存しています)はarbitrary意的ではありません。FSFが「派生著作物」ではないと見なすものに対する2つの必須要件の1つです。もう1つは「腕の長さの通信」です。私の言葉を信じないでください。FSF Webサイトで自分用に読んでください。
ロバートハーヴェイ

@amon:詳細については、こちらご覧ください
ロバートハーヴェイ

別の非常に関連したGPLのFAQ項目(ロバートのリンクを読んだ後のフォローアップとして良い)@amonこの1、特に最後の3つの段落です:gnu.org/licenses/gpl-faq.html#MereAggregation
apsillers
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.