IANAL。覚えておくべきことの 1 つは、いくつかのプロジェクトでは、「派生作品」の概念に明確に線を引いて、それが何を伴うかを制限しているということです。
たとえば、Linux カーネルで実行されるすべてのプログラムは、オペレーティング システムでプログラムが実行される方法のために、カーネル コードをオペレーティング プログラムに組み込むことになります。プログラムを簡単に記述できるようにするために、通常、プログラムをコンパイルするときにヘッダー ファイルを使用して、カーネル ビットを組み込む方法を認識します。Linus Torvalds は、この使用はプログラムをカーネルの派生物にはしないと述べています。
PHP (および程度は低いが C) などの他の場合では、言語がそのライブラリの派生物であると主張することはできません。確かに、呼び出すことができstrlen()
、リンク時または実行時に、プログラムは作成していないライブラリにリンクされます。しかし、プログラム自体は言語やランタイムの派生物ではありません。多くの場合、使用されるライブラリは単に標準の実装を公開するだけなので、プログラムはそのライブラリの派生物ではありません。したがって、呼び出しを行う C プログラムstrlen()
は、 を含む任意の C ライブラリに対してリンクできstrlen()
ます。あなたのプログラムは、自動的に Glibc の派生物ではありません。PHP にも複数の実装があります (Resin Web サーバーには、Java での PHP 実装が付属しています)。したがって、たとえ PHP が GPL だったとしても、プログラムは GPL である必要はないかもしれません。
フレームワークは実際にはライブラリの拡張セットであり、ライブラリの通常のルールが適用されます。たとえば、フレームワークが標準の 1 つの実装である場合、アプリと共に配布することは GPL に違反する可能性がありますが、アプリは標準の派生物であり、フレームワークのこの特定のインスタンスではないため、単純に使用することは GPL 違反にはなりません。 . たとえば、EJB を使用するアプリケーションは、IBM WebSphere、RedHat の JBoss、Bea の Weblogic などで実行でき、JBoss のライセンスに準拠する必要はありません。JBoss とアプリを同じ CD で出荷することは、JBoss のライセンスに違反する可能性がありますが、それ以外の場合、アプリには制限がありません (JBoss の一部が含まれている場合を除く)。
問題のフレームワークが標準ではなく、他の誰もそれを実装していない場合、および/またはフレームワークの一部を独自のコードに含める必要がある場合、アプリは派生物である可能性があります。Linux カーネル モジュールを考えてみましょう。GPL に違反しないモジュールを作成することは困難です。ほとんどのモジュールは、仕事を完了するためにカーネル コードを含める必要があるためです。nVidia は、カーネル コードを含まないが完全に機能するモジュールではない独自の blob を作成することでこれを回避し、それをモジュールにする GPL グルー コードを追加します。ほとんどのカーネル開発者は、カーネルとドライバーの両方を一緒に配布することは GPL 違反であると考えています (モジュールを追加することでカーネルの派生物を作成しますが、そのモジュールは GPL ではないため) が、モジュールを単独で配布しても派生物は作成されません。エンドユーザーが組み合わせるまで作業し、
覚えておいてください: すべてのプロジェクトが、使用するライセンスについて同じ解釈を持っているわけではありません。記載されたライセンスに従って特定の方法でコードを使用する法的権利の範囲内にある可能性がありますが、おそらく訴えられたくないので、疑わしい場合は元の著作権所有者の弁護士に相談してください.