非GPLプログラムとの結合や組み合わせ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/10 02:45 UTC 版)
「GNU General Public License」の記事における「非GPLプログラムとの結合や組み合わせ」の解説
GPLなソフトウェアと別のプログラムが単に結合している場合は、本来、全てのソフトウェアをGPLにすることも要求されない、そしてGPLなソフトウェアを非GPLソフトウェアとともに頒布することも要求されない。しかし、稀な条件において、GPLの権利を保証することを妨げる障害が取り除かれるであろう。次の文は、GNU.org ウェブサイトに存在するGPL FAQからの引用である。これは、ソフトウェアが、バンドルされたGPLプログラムと結合を許される範囲がどこまでかを記述している。 'What is the difference between an “aggregate” and other kinds of “modified versions”? An “aggregate” consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them. Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged). If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program. By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program. このように、FSFは「ライブラリ」と「その他のプログラム」とを、次の2つの観点双方を用いて線引きしている。 データ・情報交換に係る「複雑さ」(complexity)と「親密さ」(intimacy) (「セマンティクス」) セマンティクスだけではなくメカニズム(mechanism rather than semantics) しかし、FSFは、この問題は明確な結論はなく、複雑さの条件について判例("case law")により決められる必要があるだろう、と譲歩している。 GPL FAQでは「結合メカニズム」(「コミュニケーションのメカニズム」)の例として、プロセス間通信、遠隔手続き呼出し (RPC)、カーネル空間・ユーザー空間の通信やシステムコール、パイプ、execによるプロセス起動などを挙げている。これら「結合メカニズム」を用いてGPLなソフトウェアと接続する場合は、個別のプログラムであるため結合ではないとも見なせるが、そのやり取りするデータの如何によって接続先が二次的著作物であると見なされる余地も残されている(「コミュニケーションのセマンティクス」)。これに対する明確な法廷判断はまだない。
※この「非GPLプログラムとの結合や組み合わせ」の解説は、「GNU General Public License」の解説の一部です。
「非GPLプログラムとの結合や組み合わせ」を含む「GNU General Public License」の記事については、「GNU General Public License」の概要を参照ください。
- 非GPLプログラムとの結合や組み合わせのページへのリンク