2012-04-24

Javaの権利にまつわるまとめがすごい

The Java IP Story | Software Research and the Industry

これはよくまとめてある。

これを読むと、GPLv3の重要性が分かるだろう。

旧Sunは、Javaの実装をGPLv2として公開した。GPLv2は、現在持ち上がっている問題に対処できない古いライセンスである。問題は特許だ。

Sunは、OpenJDKへの貢献は、著作権をSun側に引き渡すことという条件を課した。これにより、SunはGPLv2としてソフトウェアを公開しつつも、すべての著作権は保持しているため、プロプライエタリなライセンスでも提供できるというわけだ。

さらに、SunはJavaという商標も持っている。この商標を使うには、金を払ってJavaが規格準拠しているかどうか確かめる公式のテストをパスする必要がある。

金を払わないオープンソースなプロジェクトに対して、SunはJavaの商標を使うため、環境制限を課している。その実装を一部の環境で使わないという制限だ。一部の環境とは、組み込みとエンタープライズ分野だ。ほとんどのオープンソースライセンスに共通する理念に、ユーザーはソフトウェアをいかなる方法においても使用できる自由を有するというものがある。ソフトウェアの使用方法に制限をつけるのは、オープンソースではない。このため、オープンソース陣営は、この環境制限を受け入れられるはずがない。

しかし、これは商標の問題だ。GPLv2で公開されているのだから、別の名前さえ使えば回避できるのではないか。ここに、GPLv2の欠陥がかかわってくる。特許だ。

Sunとその関連企業はJavaの実装に関する特許を多数保有している。この特許の利用許諾を得るには、Javaという名称を使い、さらに規格準拠度を調べるテストにパスしなければならない。だから、ソフトウェアのライセンス自体はGPLv2なのでいくらでもforkできるが、特許の利用許諾は得られていない。特許侵害となってしまうのだ。

つまりまとめると、Sunが所有している知的財産権とは、

  • Javaという商標。
  • Javaの規格準拠度を調べるためのテスト群
  • Java実装のための特許

オープンソースを取り巻く環境としては、

Sunは邪悪な意図を持ってGPLv2を選択したのだ。GPLv2は特許をカバーしていないので、商標と特許と著作権を組み合わせることで、GPLv2ライセンスの元で公開されているソフトウェアであっても、自由を保証できなくしているのだ。

商標Javaを使うためには、環境制限を受け入れる必要がある。この環境制限はGPLv2に反するので、受け入れた時点でGPLv2違反、すなわち著作権侵害である。受け入れずにJavaの名を冠すれば商標権侵害である。

商標Javaを使わない場合、特許の利用許諾が得られない。特許侵害となる。

これが、GPLv2の問題だ。我々は一刻も早く、特許からの自由を保証するGPLv3に移行すべきである。

というわけで、Ubuntu 12.04への移行をきっかけに、OpenJDKもアンインストールしてみようかと思う。ちなみに、OpenJDKとそれに依存するソフトウェアを完全にアンインストールする方法は、

apt-get purge openjdk-\* icedtea-\* icedtea6-\*

まだ実際にpurgeを実行してはいないが、ためしにこのコマンドを実行して、取り除かれるパッケージを確認してみたところ、Ubuntu 11.10には、openjdkに依存するソフトウェアというのは入っていないようだ。LibreOfficeも、もはやJavaには依存していない。

ちなみに、Monoを取り除く方法は、

sudo apt-get purge cli-common mono-runtime

monoの場合、Ubuntu 11.10のデフォルトインストールでは、Banshee、GBrainy、Tomboyなどが依存するので、まとめて取り除かれる。

1 comment:

Kazuo Moriwaka said...

元を読むと組み込みがダメでエンタープライズはOKそうに読めました。おしらせまで。