GPLの本旨と特許「保険」について

例のMSとNovellの話でGPLと特許の関係がにわかに注目されているが、どうも勘違いをしている人がいるようだ。

まず、話の前提として、GPLというライセンスの機能が何なのかを理解しておいてほしい。GPLの機能はフリーソフトウェアを普及させること、ではない。それは目的のひとつである。そもそも目的は私たちGPLを使う人間が勝手に考えればよいことであって、あくまでGPLはそれを達成するための道具に過ぎない。トンカチの機能は家を建てること、ではなくて、あくまで釘を打つことでしょう。それと同じで、GPLというライセンスそのものの機能は、GPLの下で誰かに渡ったコードは、相手がGPLに違反しない限り、いかなるときでも何人たりとも、GPLの下で自由に利用できることをどうにかして保証するということである。言い替えれば、GPLのライセンシー間で、行使できる権利に差があってはならないということだ。

具体的に言えば、GPLが適用された全く同じコードを持つ人が2人いたとして、GPLが認めている行為、例えば頒布を、片方は(合法的に)出来るのにもう片方はできない、こうした「分断」が生じないようにしたい、というのがGPLを貫くそもそもの狙いである。これはライセンスである以上自明なことのように思えるかもしれないが、実はそうではない。確かに著作権法の範囲なら、コピーレフトさえ盛りこんでおけば何も考えなくても(ほぼ)保証できるが、著作権法の外で別途工夫する余地は依然残っているからだ。具体的にはNDAを結んだり、あるいは今回のケースのように特許で縛るというやり方が考えられる。ライセンス的にはフリーソフトウェアであっても、実質全然フリーでは無いということは大いに有り得るのである。これに対し、著作権に立脚したライセンスである以上限界はあるものの、出来るだけのことはしたいともがいた結果がGPLの第6項や第7項なのだ。もがいた結果とは言え、GPLの本質はコピーレフトと並んで真にこの2つに宿っているのである。ちなみに、「分断」を生じさせるくらいなら最初からGPLの下で頒布するな、というのも、GPLが主張するところである。

なお、当り前のことだが、GPLが保証する範囲を越えたところまで平等にせよと言っているわけではない。お金を出して追加的に特別な契約を買っている人は、買っていない人よりも特別扱いされて当然である。ただ、それはあくまでGPLが保証する範囲プラスアルファの話で、誰かにとってマイナスになってはならない、というのがポイントだ。

いよいよ本題に入ろう。先日も書いた通り、自分が頒布する、GPLが適用されたコードに含まれる特許のうち現在把握済みのものに関して、特許権者と二者間でパテントライセンスなりクロスライセンスなりを結ぶと、結んだ当事者(今回のケースだったらNovell)からそうしたコードを頒布された第三者(例えば私)は、正当なGPLのライセンシーであるにも関わらず、結んだ当事者やその対象(同様にエンドユーザ顧客)と違って特許権者(同様にMS)の承諾無しに合法的にコードを頒布できない。これは先ほど述べたような「分断」にあたる。よって、コードを頒布する人、すなわち結んだ当事者がGPL第7項にひっかかるというわけだ。当り前だが、もちろんここで問題になる特許はあくまで「自分が頒布する、GPLが適用されたコードに含まれる」特許のみである。

さて問題は、将来特許侵害が発見された場合に備えて、今見返りとしてお金を払いますから後で見付かっても私や私の顧客だけは訴えないでください、というような形態の、いわば「保険」とでも言うべき契約を結ぶとどうか、ということである。今回のMSとNovellのケースは、「現時点で把握している特許侵害は無い」というNovellの言い分を信じる限り、基本的にはこちらのほうだろう。この場合、現時点では第三者(私)も受領したコードをGPLの下で再頒布するのに何の問題もない(まだ具体的に見付かっていないのだから当然特許権者に訴えられる心配はない)ので、将来実際に特許侵害が判明するまで「分断」は起こらず、よってGPL違反ではない、と主張する人がいるようだが、私が思うに、このような契約は将来実際に問題が起こったときではなく、結んだ時点、すなわち今の時点でGPL違反となる。

なぜかと言うと、結局このようなタイプの「保険」は、「特許侵害が判明した時点で、あなたが私か私の顧客でない限り、あなたの意志や行動に関わらず私がGPLに基づいて与えた許諾は(少なくとも一部)無効となります」というライセンサーからの一方的な許諾終了条項をGPLに持ち込んでいるに等しいからだ。さもなくば、GPL第7項の

特許侵害あるいはその他の理由(特許関係に限らない)から、裁判所の判決あるいは申し立ての結果としてあなたに(裁判所命令や契約などにより)このライセンスの条件と矛盾する制約が課された場合でも、あなたがこの契約書の条件を免除されるわけではない
GNU 一般公衆利用許諾契約書、強調引用者

というのを今の時点で満たせないのである。

そもそも、GPLで明示的に規定された許諾終了の要件は、ライセンシーが何らかのGPL違反を犯した場合のみである(第4項)。裏を返せば、それ以外の理由でライセンサーがライセンシーにいったん与えた許諾を打ち消すことはできない。そして第6項を見れば明らかなように、ライセンサーは「受領者がここで認められた権利を行使することに関してこれ以上他のいかなる制限も課してはならない」のである。ライセンシーの権利行使に対して、すでにGPL内で言及されている以外の留保を後から付けてはならないのだ。結果として、後で取り消せない権利は今取り消すしか無く、今取り消すのはGPLに違反、というしくみになる。なお、今まで述べてきたような「保険」を結んでいない場合は、特許侵害訴訟で負ければライセンシーは全員雁首揃えてコードを利用できなくなるわけで、少なくとも「分断」は発生しない。それはそれで情けない事態ではあるが。

ちなみに、Red HatがOpen Source Assurance Programで提供しているような「特許侵害訴訟が起こっても頒布側たるウチが全責任を引き受けますから、あなたがたライセンシーは何が起ころうと今まで通りGPLに従ってリスクフリーに利用できます」という意味での「特許保険」は、特許侵害によって行使できなくなったユーザの自由を頒布者が補填するわけで、当然GPL第7項に違反しない。権利の取消と補填で、いわば方向が逆なのである。

ようするに、現時点で特許侵害が分かっていようがいまいが、自分が頒布するGPLが適用されたコードに含まれる特許に関して二者間で排他的なパテントライセンスなりクロスライセンスなりを結ぶのはまずいのである。だからこそMSやNovellの法務スタッフは血眼になって抜け道を探し、ついには「いやあれは(代価と特許不行使がセットの)パテントライセンスではないんです、お金は単になんとなく払っただけで、特許を行使しないというのは相手が勝手に言っていることでして」というウルトラCを発見したのであろう。だからこそ、バルマーが「いやちゃんとNovellからは特許の代価をもらったよ」と口走った意味が大きい、ということになるのだ。