第 24章ライセンスに関するアドバイス

24.1. GStreamer を使って作成したアプリケーションのライセンス方法

GStreamer のライセンスは、GTK+ や glibc など、ほかの多数のライブラリと変わりません。LGPL です。ただ、GStreamer で厄介なのは、GStreamer がプラグインベースの設計になっていること、そして多くのマルチメディアコーデックが、特許で保護されていたり、プロプライエタリな性格が非常に強かったりすることです。ソフトウェアを対象とする特許は現在、世界のなかでもごく少数の国 (そのうち最も大きな存在は米国とオーストラリアです) でしか認められていませんが、問題は、米国が世界経済とコンピューティング産業において中心的な地位を占めているために、自分がどの国にいる場合でも、ソフトウェア特許を無視することがむずかしい点にあります。こうした状況から、主要 GNU/Linux ディストリビューションの配布元を含む多くの企業は、好ましからざる状態に置かれています。というのは、初期状態でメディア再生機能が備わっていなければ、製品に対して良い評価を得られず (これまでのところ、評価する側を教育する試みもほとんど成功していません)、かといって、メディア再生機能を充実させれば、自身が (そしてフリーソフトウェア運動が) 追求する、プロプライエタリなソフトウェアを使わないという立場に逆行する行為をせざるを得なくなるからです。こうした中で、ほとんどの企業は、競争圧力に負けて、プロプライエタリなソフトウェアもある程度サポートするという選択をしています。純粋なフリーソフトウェアソリューションでこのようなことを行えば、非常に面倒な係争に巻き込まれたり、特許権者から訴訟を起こされたりするリスクがあります。したがって、特許で保護されたコーデックのサポートを含めるという決断を下した時点で、プロプライエタリな特別なアプリケーションを使うか、またはプロプライエタリなプラグインを通じて、該当するコーデックのサポートを、GStreamer が提供するマルチメディアインフラに統合するという 2 つの選択肢が残ることになります。いずれも最善とは言えないこれら 2 つの選択肢のうち、GStreamer コミュニティが好ましいと考えるのは、もちろん後者の方です。

このとき生じる問題は、これまでに開発されているほとんどのフリーソフトウェアおよびオープンソフトウェアアプリケーションは、ライセンスに GPL を使っているということです。これは一般的には好ましいことなのですが、いろいろなソフトウェアをディストリビューションにまとめようとする人々にとってはジレンマになります。これらの人々が直面するジレンマは、プロプライエタリなプラグインを GStreamer に含めて、特許で保護されたフォーマットを合法的な方法でサポートする場合、こうしたやり方と、アプリケーションの GPL ライセンスとが衝突するリスクがあるというものです。GStreamer コミュニティでは、このことが実際に問題になるのかどうかについて、弁護士に問い合わせてみましたが、見解は弁護士によって異なっていました。しかし、フリーソフトウェア財団 (FSF) の公式なスタンスは「問題である」というものです。GStreamer コミュニティは、FSF をこの問題に関するオーソリティとみなしているので、GPL ライセンスについても FSF の解釈を尊重したいと考えます。

では、このような事情は、アプリケーション開発者にとってどのような意味を持っているのでしょうか。簡単に言えば、アプリケーション開発者は、作成するアプリケーションをプロプライエタリなプラグインと一緒に使用できるようにするかどうか、よく考えて自分で決断する必要があるということです。この決断は、商用ディストリビューションおよび Unix ベンダーが、あなたの開発したアプリケーションを取り込んで出荷することに前向きになるかどうか、その可能性にも影響します。GStreamer コミュニティとしては、あなたが作成するソフトウェアでは、GStreamer とアプリケーションにプロプライエタリなプラグインをバンドルすることを許可するライセンスを使用することを推奨します。こうすれば、できるだけ多くのベンダーに GStreamer を採用してもらうことができ、フリーなソリューションの選択肢を少なくすることを避けることができます。GStreamer コミュニティでは、このような方法を通じて、Xiph.org が提案しているフォーマットなど、さまざまなフリーのフォーマットの普及役を GStreamer が果たせるのではないかと期待しています。

もし、ノンフリーのプラグインをアプリケーションと一緒に使用できるようにするという決断を下した場合には、さまざまなライセンスを選択できます。最も簡単なのは、作成するアプリケーションでは、GPL ではなく、LGPL、MPL、または BSD といったライセンスを使うことです。あるいは、GPL ライセンスに除外条項を追加して、GStreamer プラグインについては GPL の制約から除外することもできます。

この種の GPL 除外条項のよい例として、Totem 動画プレーヤープロジェクトがあります。このプロジェクトでは、ライセンスに次のような条項を付け加えています。「Totem 動画プレーヤープロジェクトの作者は、このライセンスにより、GPL 互換ではない GStreamer プラグインについて、これらを GStreamer および Totem とともに使用ならびに配布することを許可する。この許可は、Totem がその対象となっている GPL ライセンスによって付与される許可より優先されるものとする。(The authors of the Totem video player project hereby grants permission for non-GPL-compatible GStreamer plugins to be used and distributed together with GStreamer and Totem. This permission goes above and beyond the permissions granted by the GPL license Totem is covered by.)」

さまざまな選択肢がある中で、GStreamer コミュニティが推奨するのは、LGPL ライセンスです。LGPL は GPL に最も近く、GNOME や KDE といったメジャーな GNU/Linux デスクトッププロジェクトとも、ライセンス面でうまく折り合いがつきます。また、互換ライセンスを持つその他のプロジェクトとも、よりオープンにコードを共有することができます。もちろん、上のような除外条項を持たないピュアな GPL のコードは、作成するアプリケーションの中ではそのまま使うことはできません。LGPL を使えば、例外条項を用意することもなく、コードもより自由に共有できます。

以上、あなたの作成するアプリケーションでノンフリーなプラグインを一緒に使えるようにすることを GStreamer コミュニティが推奨するのはなぜなのか、その具体的な理由を説明しました。マルチメディア分野では、フリーソフトウェアコミュニティはまだ支配権を握れるほど力を持っておらず、自分たちが使用しているインフラ上でノンフリーなプラグインを使用することを禁止すれば、特許権者や関係者たちを害する以上に、自分たちを害することになると考えます。

この見解は、必ずしも全員の一致した意見ではありません。FSF は、ノンフリーなプラグインを使いたいという誘惑に抗するために、あなたの作成するアプリケーションでは、改変していない GPL を使用するよう求めるでしょう。FSF の立場は、非倫理的であるという理由でノンフリーなプラグインを拒否する勇気は、必ずしも誰もが持っているわけではないので、そのようにすることの合法的理由を FSF に与えるために、自分たちに協力してほしい、というものです。

このアドバイスは、GStreamer ウェブサイトにある FAQ の付いたより長いアドバイスの一部です。