ライブラリをプロセス外に移動してGPL違反を回避する


21

GPLの下でライセンスされているライブラリがあると仮定します。使用したいのはクローズドソースプロジェクトです。私は次のことをします:

  1. ソケットをリッスンするGPLライブラリの周りに小さなラッパーアプリケーションを作成し、メッセージを解析してGPLライブラリを呼び出します。その後、結果を返します。
  2. ソースをリリース(GPLに準拠)
  3. メインアプリケーションでこのラッパーのクライアントを作成し、ソースをリリースしないでください。

これにより、静的/動的リンクに比べて大きなオーバーヘッドが追加されることは知っていますが、理論的な方法に興味があります。


6
作成するラッパーは、GPLの下でライセンスされます。したがって、ラッパーを使用するプログラムは、リンクなどのGPLの条件の対象となります。
TZHX11年

4
まず作者に連絡して、代わりにLGPLまたは同様のライセンスを取得できるかどうかを確認してください。
jk。

8
@TZHX彼は、ラッパーがサーバーとして動作する別のアプリケーションになることを意味すると信じています-彼の独自コードはクライアントにあります
jk。

クローズドソースアプリも誰に配布されるのでしょうか?また、ライセンスであるGPLのバージョン
jk。

2
明確に質問を@jwentingすることは、プロセスが不足していると言う
JKを。

回答:


32

法的に、私はそれがOKだと言うでしょう(しかし、私は弁護士ではありません-法律相談のために弁護士に相談してください)。

道徳的に、それはかなり非難です。GPLが気に入らない場合、「適切な」解決策はGPLライブラリを使用しないことです。

編集:ダイナミックリンクが許可されるかどうかに関するGPLの法的地位を明確にするために、LGPLは、ライブラリの場合にダイナミックリンクを許可することを目的として作成されました。したがって、LGPLよりもGPLを選択することにより、ライブラリの作成者が動的リンクを許可しないように明示的に行っていたことは明らかです。私の意見では、著者のコードに対する明示的な意図を表現する法的制限を回避するために技術的な手段を使用することは、非難できることです。

記録のために、私は個人的にGPLのファンではありません(MITやBSDなどのより寛容なライセンスを好みます)。しかし、私は他の開発者の仕事を尊重することの大ファンであり、彼らがあなたのライブラリをクローズドソースのソフトウェアとリンクさせたくないのであれば、それは特権です。


12
GPLは、明示的に彼のユースケース許可するようだ-私はここで道徳的な問題があるとは思わない
JKを。

3
ここでの@vartecは、公式のGPL FAQからの引用です:「静的または動的に他のモジュールとリンクすることは、に基づいて結合された作業を行っています。したがって、GNU General Public Licenseの契約条件は、結合全体をカバーします。」ストールマンがオープンソースとは異なるビジョンを持っていたとしても、それが嫌いというわけではありません。彼はこの運動の主要なイデオロギー家です。
アンドレイ

8
@vartec:アプリケーションでSOMEONE ELSEのコードを使用する場合、彼はHISコードの使用に関する条件に従う必要があることを理解していないという印象を受けます。気に入らない?他人のGPL化されたコードを使用しないでください。簡単です。
ジョンR.ストローム

3
私の提案は次のとおりです。あなたがとても依存していると思われるGPLコードから地獄を導き出し、裁判がどうなるかを見てください。GPL3は、GPL2のまさにそのような合法的な穴を塞ぐために作成されたので、多分あなたはそれで逃げるでしょう。あなたが合法的な手段で逃げたので、人々があなたの名誉でパレードを投げるのではないかと疑います。結局、それはこのようなスレッドを避けることで世界を改善するかもしれません。
ゴデケ

3
私はそれが道徳的に非難できるという主張に強く反対します。道徳的に非難できるのは、GPLで許可されていることを行う権利がないことを人々に伝えることです。GPLのもとで作品を置くとき、GPLのルールを適用したいのでそうします。GPLが彼らに与えた権利を行使すべきではないことを人々に伝えることは非難されます。これはGPLが許可するものです。GPLの下で作業を行う人は、これを許可したいのでそうします。
デビッドシュワルツ

6

IANALでも大丈夫だと思います。GPL3の関連セクションはセクション5の最後にあります。

他の独立した作品とのカバーされた作品の編集。それらは本質的にはカバーされた作品の拡張ではなく、ストレージまたはディストリビューションのボリューム内またはボリューム上でより大きなプログラムを形成するために組み合わされません編集物とその結果の著作権が、個々の作品が許可する範囲を超えて編集物のユーザーのアクセスまたは法的権利を制限するために使用されない場合、媒体は「集合」と呼ばれます。対象作品を集合体に含めることにより、このライセンスが集合体の他の部分に適用されることはありません。

これはおそらく、あなたの「クライアント」が何をするかに正確に依存するでしょう。

あなたのアプリがそれと集約されたものではなくライブラリの拡張だと思うなら、おそらく正しいでしょう(あなたはこれを知るのに良い場所にいるべきです)その場合、あなたの最善の策は著者に連絡して取得しようとすることです別のライセンス

これは、適切に行われたと仮定して、これがGPLによって明示的に許可されているという私の見解を裏付けるように思われます。


私はそれを読みましたが、問題はGPLテキストが開発中ではなく、法的な言語で書かれていることです。ラッパーの秘trickは、商用アプリを「派生」ではなく「集約」することです。しかし、私はそれが「対象作品の自然の延長」に該当すると思います。
アンドレイ

法律用語のサポートには弁護士が必要です。あなたのアプリがそれと集約されたものではなくライブラリの拡張だと思うなら、おそらく正しいでしょう(あなたはこれを知るのに良い場所にいるべきです)その場合、あなたの最善の策は著者に連絡して取得しようとすることです別のライセンス
jk。

1
@Andrey:プログラムの「性質」がGPLコードに直接結び付けられている場合、上記のセクションは適用されません。あなたの質問から、そうであるように聞こえます。反例としては、ネットワーク侵入分析プログラムがありますが、これはたまたま、提案したメカニズムを介してGNU readlineを使用しています。(Readlineは、BSDライセンスのドロップイン代替手段があるため、興味深いテストケースです。)
フレッドナーク

「集約」句は、同じCD-RomまたはLinuxディストリビューションに存在することで派生物が作成されないことを明確にすることです。
ショーンマクミラン

6

独自のシステムにGPLでカバーされたソフトウェアを組み込みたいを参照してください。これはできますか?

問題は、ラッパーアプリケーションはそれ自体で使用できるのかということです。GPLであるプログラムのコマンドラインバージョンを作成した場合は、別のライセンスでGUIをリリースできます。たとえば、クローズドソースであるgccのIDEや、diffに基づく視覚的なdiffツールを作成できます。

ただし、ライブラリをラップしてプログラムで使用する以外の用途がなく、プログラムがこのライブラリなしでは使用できない場合、派生した作品であり、GPLの下でリリースする必要があります。


私の理解では、ラッパーはMITでライセンスを取得でき、それでも問題はありません。
トースター14年

2
コリン、絶対に違う。ラッパーは、GPLライブラリと明確に結合されて単一のバイナリになります。1つのバイナリ内でGPLコードを使用するには、ライセンスに準拠するために独自のコードをGPLする必要があります。
コンクリートガネット

5

IMO、合法的には大丈夫です。(IANAL)問題の道徳面を改善するために、「FooBarをMyClosedAppで合法的に利用できるようにするFooBarラッパー」とは呼ばず、サーバーと呼びます。「ネット上でFooBarを実行できる」素敵な小さなオープンソースプログラムにします。SourceForgeに置くか、プロジェクトページと手順などを備えたWebサイトを専用にします。次に、「MyClosedApp」が「FooBarサーバー」を使用するようにします。


2

私が理解している限り、GPLライブラリなしで動作できる限り、ソフトウェアをクローズドソースのままにしておくことができます。GPLライブラリは、プラグインがなくてもソフトウェアが役に立たないプラグインと見なされます。


1
それは間違いです。プラグイン(別名動的リンク)として使用すると、結果のアプリケーションが「派生」し、GPLの主題になります。
アンドレイ

プラグインが常に動的リンクと同義語であるかどうかはわかりません。そして、確かにこの場合にはOPは私がmouvicielのアドバイスが立つと思うので、何かを結ぶ動的に提案されていません
JKを。

@jkよく、プラグインを1つだけ作成し、それがGPLライセンスに基づいている場合、これは違反として悪臭を放ちます。
アンドレイ

4
AGPLは、ソケットがネットワーク経由でない限り、これを禁止しません。かなり具体的です。また、それは有用性のテストではなく、GPLが適用されたプロプライエタリなソフトウェアがどれだけ近いかをテストするものです。静的リンクは間違いなく近すぎて、ソケット(特定のAGPLの場合を除く)は間違いなくOKです。動的リンクはそうであるかもしれないし、そうでないかもしれません(私はそれぞれの側で合法的な議論を聞いたことがあり、まだ米国の判例法はありません)。
デビッドソーンリー

1
@Andrey:あなたは、PhotoshopのようなクローズドソースソフトウェアがGPLコンポーネントなしで作業を行える限り、GPLにせずに配布できると言っています。それがまさにこの答えが伝えることです。
ドックブラウン

1
  1. オープンソースの代替手段を見つけようとします。ない場合は、GPLのものを探します。
  2. GPLv3がAffero句であるかどうか確認します。そうでない場合は、何もする必要はありません。
  3. GPLv2の場合は、提案どおりに行うことができます。

議論の余地のあるオプションもあります。ほとんどの議会では、動的リンクは「派生著作物」の境界となるはずです。この背後にあるロジックは、動的にリンクしている間は、ヘッダーファイルをプログラムに含めるだけです。多くの法律では、ヘッダーファイルはAPI定義と見なされ、著作権の対象から明示的に除外されています。一方、動的リンクでは、GPLライブラリとの実際のリンクはエンドユーザーのシステムで行われます。しかし、私が言ったように、それについて多くの論争があります、ストールマンはこれに対して強くFUDしています。


私のハックを不可能にするGPL v2とv3の違いは何ですか?動的リンクではなく、できる限りそれらを分離します。
アンドレイ

GPLv3の目標の1つは、「迂回」のその方法を防ぐことでした。
バルテック

4
まず、GPLのバリアントは、OSIが承認した公式のオープンソースライセンスです(広告条項のないBSDライセンスは、ストールマンが承認したフリーソフトウェアライセンスです)。第二に、GPLバージョン(Afferoを含む)は、GPLおよびプロプライエタリなソフトウェアがソケットなどの標準的なプロセス間通信方法と通信する能力を制限しません。
デビッドソーンリー

たとえば、DRM句を許可するIMO GPLv3は、オープンソース定義opensource.org/docs/osdの
-vartec

1
@vartec:DRMは「エンデバーの分野」ではありません。「たとえば、[商業ベンチャー]でのプログラムの使用、または遺伝子研究での使用を制限することはできません」を参照してください。OSIは、GPL3はオープンソースであり、GPL3を承認したため、定義のすべてのポイントを満たしていると考えています。
トーマスエドルソン

0

Adam BrownがGPLライブラリを使用し、「サーバー」として機能するプログラムを作成することは合法でしょうか。関連するすべてのソースコードをすべてリリースしましたが、彼がリリースした唯一のクライアントコードは非常に脆弱です。彼はクライアント側を書いたのですか?私はそれがそうではないと考える根拠は全くありません。

チャールズドーバーがアダムブラウンの「サーバー」を見つけ、それと通信するためのクローズドソースプログラムを作成することにした場合、GPLは彼の行動を何らかの形で制約しますか?彼がGPLのソフトウェアを使用するのは彼がAdam Brownから受け取ったバイナリとしてのみだからです。Adamのバイナリを配布した場合、ソースへのリンクも含める必要がありますが、GPLの他のコードはCharlesのコードに影響しません。

GPLライセンスのサーバーを作成し、そのサーバーを自分のクローズドソースの目的に使用する1人については、サーバーを作成する際に彼がそれを行うための真正な努力をしたとしても法的問題はないと思います。提供されたGPLコードを同じ方法で使用したい人にとっては便利です。特に、公開されているインターフェイスのドキュメントは、有能なプログラマーが、クライアントプログラムで受け入れられるサーバーのコードを、オリジナルと同じように記述し、クライアントプログラムを使用して、作成者のアプリケーションと同じ方法でサーバー。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.