9

GPL ライセンスのアプリケーションを Python で開発していますが、GPL が私のプログラムでプロプライエタリ プラグインの使用を許可しているかどうかを知る必要があります。この問題についてFSF は次のように述べています。

GPL の下でリリースされたプログラムがプラグインを使用している場合、プラグインのライセンス要件は何ですか?

プログラムがプラグインを呼び出す方法によって異なります。プログラムが fork と exec を使用してプラグインを呼び出す場合、プラグインは別個のプログラムであるため、メイン プログラムのライセンスではそれらの要件はありません。

プログラムがプラグインを動的にリンクし、それらが相互に関数呼び出しを行い、データ構造を共有する場合、それらは単一のプログラムを形成すると考えられます。これは、メイン プログラムとプラグインの両方の拡張として扱われる必要があります。つまり、プラグインは GPL または GPL と互換性のあるフリー ソフトウェア ライセンスの下でリリースする必要があり、それらのプラグインを配布するときは GPL の条項に従う必要があります。

プログラムがプラグインを動的にリンクしているが、それらの間の通信がプラグインの「メイン」関数をいくつかのオプションで呼び出し、それが戻るのを待つことに限定されている場合、それは境界的なケースです。

fork/exec と動的リンクの違いは、人為的であることに加えて、インタープリター型言語には引き継がれません。importまたはを介し​​てロードされる Python/Perl/Ruby プラグインはexecfileどうですか?

(編集: fork/exec と動的リンクの違いの理由は理解できますが、GPL に準拠したいが「精神」に反する人のように思えます。ほとんど何でもするためのプロセス間通信)。

最善の解決策は、ライセンスに例外を追加して、独自のプラグインの使用を明示的に許可することですが、 GPL であるQt / PyQtを使用しているため、そうすることができません。

4

3 に答える 3

7

fork/exec と動的リンクの違いは、人為的であることに加えて、

決して人工的なものではないと思います。基本的に、彼らは統合のレベルに基づいて分割を行っているだけです。プログラムに API レベルの統合がなく、基本的に起動して忘れる「プラグイン」がある場合、結果として得られる作業は派生作業とは見なされません。一般的に言えば、フォーク/実行されるだけのプラグインはこの基準に適合しますが、適合しない場合もあります。このケースは、「プラグイン」コードがコードとは独立して機能する場合に特に当てはまります。

一方、広範囲にわたる API の呼び出しや緊密なデータ構造の統合など、コードが GPL 対象の作品に深く依存している場合は、派生作品と見なされる可能性が高くなります。つまり、「プラグイン」は GPL 製品なしでは単独では存在できず、このプラグインがインストールされた製品は本質的に GPL 製品の派生作品です。

したがって、もう少し明確にするために、解釈されたコードにも同じ原則を適用できます。解釈されたコードが API に大きく依存している場合 (またはその逆)、派生作品と見なされます。それが、ほとんど統合されていない単独で実行される単なるスクリプトである場合は、そうではない可能性があります。

それはもっと理にかなっていますか?

于 2008-08-28T00:33:04.157 に答える
1

@ダニエル

fork/exec と動的リンクの違いは、人為的であることに加えて、インタープリター型言語には引き継がれません。インポートまたは execfile を介して読み込まれる Python/Perl/Ruby プラグインはどうでしょうか?

区別が人為的なものかどうかはわかりません。動的ロードの後、プラグイン コードは実行コンテキストを GPL コードと共有します。fork/exec の後はそうではありません。

いずれにせよ、importing によって新しいコードが GPL 適用されたビットと同じ実行コンテキストで実行されるのではないかと思います。動的リンクの場合と同様に扱う必要があります。いいえ?

于 2008-08-28T00:32:59.693 に答える
0

プラグインとメイン プログラムの間でどの程度の情報を共有していますか? それらを実行して結果を待つ以外のことをしている場合 (プロセス内のプログラムとプラグインの間でデータを共有しない場合)、それらがプロプライエタリであることを回避できる可能性が最も高く、そうでない場合はおそらく GPL である必要があります。 d.

于 2008-08-28T00:33:40.737 に答える