フリーソフトウェアの定義

「オープンソースの定義」については、さすがに最近では知らない人はいなくなった。実は「フリーソフトウェアの定義」も存在するのだが、ご存知だろうか?
IPAが、OSSiPediaというものを始めたらしい。「オープンソース情報データベース」とのことである。しばらく眺めていたのだが、フリーソフトウェアの項を見ると、以下のように書いてあった。

開発者と利用者の自由が守られているソフトウェア。利用者はソフトウェアのソースコードを参照することができ、そのソースコードを基に新たな開発ができ、新たに開発あるいは改変されたソフトウェアもまたフリーソフトウェアとなる(「自由」が引き継がれる)のを基本とする。なお、フリーソフトウェアは必ずしも無料ではない。

問題なのは自由だ、というあたり、惜しいところまでいっている。「無料ではない」というのを強調しているあたり、うるさい奴に噛みつかれないよう慎重を期しているふしもある。だが、残念ながらこの定義はやや不適切だ。同じような勘違いをしている人は意外に多いようなので、以下で簡単にご説明したい。

そもそも「フリーソフトウェア」とは何か。FSFの定義は非常に簡明である。

  • 目的を問わず、プログラムを実行する自由
  • プログラムがどのように動作しているか研究し、そのプログラムに必要に応じて修正を加え、採り入れる自由
  • プログラムのコピーを再頒布する自由
  • プログラムを改良し、自らの改良点を公衆に発表する自由

この4つの自由を満たすソフトウェアは全てフリーソフトウェアである。その時点でソースコードが入手できることは前提条件だが、コピーレフトという話は定義中には全く出てこない。出てこないということは、必須ではないということだ。ゆえに、GNU GPLがフリーソフトウェア・ライセンスであるのと同様に、BSDライセンスもフリーソフトウェアのライセンスであるということになる。もちろん、フリーソフトウェアのライセンスは他にも星の数ほどあるのは言うまでもない。言い換えれば、コピーレフトはフリーソフトウェアの十分条件だが、必要条件ではないということだ。

ゆえに、OSSiPediaが言うように「新たに開発あるいは改変されたソフトウェアもまたフリーソ
フトウェアとなる(『自由』が引き継がれる)のを基本とする」わけではない。フリーソフトウェアを改変したものがフリーソフトウェアではなくなるというのは大いにありうることだし、そうして構わないのだ。たとえば、SSHは当初フリーソフトウェアであったが、バージョン1.2.12以降はプロプライエタリ・ソフトウェアになった。このことが、OpenSSHの登場を促したのである。

コピーレフトを主張するGNU GPLの印象があまりに強いせいか、往々にしてフリーソフトウェア、すなわちコピーレフトを主張するソフトウェアだと思っている人が多い。そういう方にとっては、以下でご紹介するようなRMSの行動は奇異に感じられるのではなかろうか。

Ogg Vorbisは、ソフトウェア特許の問題が常につきまとうMP3形式と同等以上のクオリティを誇り、かつ完全にフリーなオーディオ圧縮形式である。最初のころはライブラリも含めてGNU LGPLの下で公開されていた。LGPLは、GPLと比べればプロプライエタリなプログラムとのリンクを許可するなど十分に緩いライセンスなのだが、たとえばリバースエンジニアリングを明示的に許可しなければならない(第6項)など、ハードウェアへの組み込み用途に使うにはそれなりに厳しい条件を課している。Ogg Vorbis形式を、携帯音楽プレーヤ等にまで普及させることを考えるとなかなか辛い条件と言わざるを得ない。このためOgg Vorbisの開発者たちは、 beta4のリリースと共にライセンスを(さらに緩い)BSDライセンスへ変えようと考えた。意見を求められたRMSは、なんとこの動きを支持したのである。

ふだんプロプライエタリ・ソフトウェアを目の敵としているRMSにしては、敵に塩を送るようで不思議な行動に見えるかもしれない。しかし、この件に関するRMSの発言を読むと、彼の趣旨は極めて明解である。ようするに、コピーレフトか否かよりも、ユーザの自由確保にどれだけ資するかのほうがはるかに重要だということだ。コピーレフトは手段であって目的ではない。目的はあくまでも、フリーソフトウェアの4つの自由を確保し保証することなのである。このケースでは、コピーレフトが主張されているとか、GNUのライセンスであるとかいうことよりも、まずはOgg Vorbisを(フリーソフトウェアでありつつも)急速に普及させて、MP3への有力な対抗馬とすることのほうがはるかに重要だったのだ。実際、最近ではCOWONのiAUDIOなどいくつかの携帯音楽プレーヤがOgg Vorbisをサポートしている。

以上の話を、逆の方向から考えるとやや心が重くなる。先日の記事で、コピーレフトが主張されるプログラムであっても、サーバ上で実行する分には改変点を公開しなくてもライセンス的な問題はないと述べた。残念ながらそれは正しい。しかしそういった用途では、フリーソフトウェアの定義における4つの自由がユーザに保証されているとはお世辞にも言えないと筆者は思う。オープンソースなら、それでも良いのかもしれない。しかし、オープンソースとフリーソフトウェアはニュアンスが違う。フリーソフトウェアで最も重要なのはあくまで自由なのである。フリーソフトウェアの自由を「実質的に」確保するには定義をどう変えたらよいか、再考しなければならないときが来ているようだ。

投稿者: mhatta

A rapidly-aging old-school geek in Japan.