この質問はgstreamerに関して尋ねられますが、アドオンベースのアーキテクチャに適用できます。
すべてのLGPLパーツで変更されていないGstreamerを使用しているため、プロプライエタリとして出荷できるGstreamerベースのアプリケーションがあります。ただし、1つのGstreamerプラグインがGPLであるバージョンを発行する必要がある場合もあります。私が知る限り、それはプログラム全体を汚染するでしょう。
プログラムにGstreamerパイプライン仕様を含める代わりに、外部ファイルからパイプライン仕様を読み取る機能を使用して公開する場合(つまり、GstParseLaunch()対応の仕様として)、プログラムをリリースできますか?独自仕様のファイルとGPLのパイプ仕様ファイルこれらのアイテムを公開する必要がある距離はどれくらいですか。つまり、プログラムは1つのディストリビューションにあり、仕様は別のディストリビューションで個別にリリースされますか?
プログラムが実際にリリースされることはなく、代わりにアプライアンス内で販売される組み込みアプリケーションであり、アプライアンスがプロプライエタリ部分と非プロプライエタリ部分の両方がプリロードされて販売される場合はどうなりますか?
答えのほとんどは GPL FAQ にあります。
GPLと非フリーソフトウェアの間の相互作用については、基本的なルールは、両方がスタンドアロンプログラムとして実行できる場合にのみ共存できるということです。これらは、標準のプロセス間通信機能を介して相互に通信できますが、OSに関する限り、別個のプログラムである必要があります。これにおけるGPLとLGPLの主な違いは、LGPLでは動的にリンクされたライブラリを非フリープログラムで使用することもできるということです。
プラグインに関しては、ライセンスステータスに影響を与えるのは、プラグインの形式と、プラグインがロードされた後のプラグインとメインプログラムの相互作用の方法だけです。プラグインが別個のプログラムである場合、またはアプリケーションがそれらをそのように扱う場合、GPLプラグインを非フリープログラムに含めることができます。プラグインが何らかの種類の通信を行うライブラリである場合、無料でないプログラムでGPLプラグインを使用することはできません。
私の知る限り、ロードするプラグインの外部仕様は、(ライセンスの観点から)非フリープログラムでGPLプラグインを使用することを容認することにはなりません。 1つのGPLプラグインがプログラム全体を汚染するのは正しいことです。
(L)GPLソフトウェアと組み込みデバイスはそれ自体のトピック全体です。
ここでの短いバージョンは、GPLソフトウェアがロードされたデバイスを配布する場合、ソフトウェアを配布するため、デバイスの購入者がソースを利用できるようにする必要があるということです(デバイスを物理的に変更せずにソフトウェアをアップグレードできると仮定します) )。
GPLの意図は常に、エンドユーザーがデバイスのソフトウェアを独自のバージョンに置き換えることができるようにすることでしたが、GPLv2には明らかに抜け穴があります。 GPLv3は、その意図を明確な要件にしています。