http://lwn.net/Articles/343608/rss
新しいgccで、GPLv2のプログラムをコンパイルすると再配布不可能になるよ。という話。よく知られているように、gccはコンパイル時に(勝手に)libgccをリンクする。これは除算のサポート等が含まれている。うろ覚えだけどC++の例外の補助コード等もここ。
んで、勝手にリンクされる都合上、あんまりきつい制約に出来ないのでGPLなんだけど、特別免除としてプロプラなライセンスとリンクしてもOKということにしてあげるよ。ということになっている。
で、このGCC runtimeのライセンスが、gcc 4.4からGPLv3になった。で、プロプラなライセンスは従来の特赦条項で救われるのでOKだけど、GPLv2は再配布時にライセンス変更しちゃダメ条項があり、かつ、GPLv2とGPLv3はincompatibleなので、自動的にライセンス違反になる。
ということのよう
これはディストリが困りそうだよね。彼らはGPLv2プログラムを全捨てという選択肢はない
新しいgccで、GPLv2のプログラムをコンパイルすると再配布不可能になるよ。という話。よく知られているように、gccはコンパイル時に(勝手に)libgccをリンクする。これは除算のサポート等が含まれている。うろ覚えだけどC++の例外の補助コード等もここ。
んで、勝手にリンクされる都合上、あんまりきつい制約に出来ないのでGPLなんだけど、特別免除としてプロプラなライセンスとリンクしてもOKということにしてあげるよ。ということになっている。
で、このGCC runtimeのライセンスが、gcc 4.4からGPLv3になった。で、プロプラなライセンスは従来の特赦条項で救われるのでOKだけど、GPLv2は再配布時にライセンス変更しちゃダメ条項があり、かつ、GPLv2とGPLv3はincompatibleなので、自動的にライセンス違反になる。
ということのよう
これはディストリが困りそうだよね。彼らはGPLv2プログラムを全捨てという選択肢はない
コメント
コメント一覧 (5)
libgccから見てGPLv2のコードはGCCランタイムライブラリ例外で利用可能で、
GPLv2のコードから見てlibgccは第3節の例外
しかし特別な例外として、そのコンポーネント自体が実行形式に付随するのでは無い限り、 頒布されるものの中に、実行形式が実行されるオペレーティングシステムの主要なコンポーネント(コンパイラやカーネル等)と通常一緒に(ソースかバイナリ形式のどちらかで)頒布されるものを含んでいる必要はないとする。
にあたるので問題ないのでは
ちなみに従来の特赦条項はlibgccとlibstdc++で別の条件(libgccはリンクを許可しているが、c++のテンプレート展開はリンクではカバーできないため)でしたが、gcc4.4ではGCCランタイムライブラリ例外(COPYING.RUNTIME)に一本化しているようです。
However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
しかし特別な例外として、そのコンポーネント自体が実行形式に付随するのでは無い限り、頒布されるものの中に、実行形式が実行されるオペレーティングシステムの主要なコンポーネント(コンパイラやカーネル等)と通常一緒に(ソースかバイナリ形式のどちらかで)頒布されるものを含んでいる必要はないとする。
の unless that component itself accompanies the executable がディストリが gcc を同じCDの中に同梱して配布した瞬間に unless じゃなくなってしまい、gcc runtime を GPLv2 で再配布する義務が発生してしまう。
言葉遊びのような気もするが、FSFはこういうところ、容赦しないからな
同一CD-ROMメディアでの配布について
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
http://www.gnu.org/licenses/gpl-faq.html#MereAggregation
と言ってる
gcc側のライセンスに抵触してるなら、GNUが問題ないと解釈すれば問題ないのは間違いないんですが、アプリ側のライセンスに抵触してしまうので、GNUの解釈だけでは安心できないという状況になっているんじゃないんでしょうか。
想像で書いてるけど