定義から見るオープンソースに至るまでの歴史

「オープンソースの定義」はDebianフリーソフトウェア・ガイドライン(DFSG)を流用したことは周知の事実であるが、何故Debianプロジェクトは一般的にはFree Softwareという用語の祖とも管理者ともみなされるFree Software Foundation(FSF)とは別に自由なソフトウェアの定義を定めたのだろうか?この疑問を解き明かすため、用語の定義から見た自由なソフトウェアの歴史についてここで述べる。

(本稿は「オープンソースとは何か? Open Source Definition逐条解説書」の付録の一つとして収録されている文書である。)

FSFの自由ソフトウェア

いわゆる自由ソフトウェア(Free Software)運動の開始は、1983年9月にRichard StallmanがUSENETニュースグループに「GNU(Gnu’s Not Unix)と呼ばれる完全なUNIX互換システム」の開発開始を宣言するメッセージを投稿したことが起源とされることが多い。ただし、この時のRichard StallmanによるメッセージにはFree Softwareという用語は出てくるものの、その意味の定義は特になく単に文脈に沿って自由な状態にあるソフトウェアを漠然と意味していたように考えられる。当時は米国においてソフトウェアに著作権が認められることが確定して間もない頃であり、機密保持契約やソフトウェア使用許諾契約に署名することへの怒りのほうが目立つ文章であった。この時にはFree Softwareが指す領域を明確に指し示すことについては特に考えが及んでいなかったのだろう。

その後の1985年にGNU Manifesto(GNU宣言)が発表された。これはGNUプロジェクトの目標を説明した文書であり、自由ソフトウェア運動の哲学的な基盤と考えられているが、自由ソフトウェアというよりもGNUが目指す世界の哲学が述べられた文章であり、自由ソフトウェアが何であるかについてはここでもはっきりとはされていなかった。

自由ソフトウェアが何であるか?という問いへの回答になりえるような文章として最古と認識されているものは、GNUプロジェクトの会報であるGNU’s Bulletin 1986年2月号の中での下記の記述である。

The Free Software Foundation is dedicated to eliminating restrictions on copying, redistribution, understanding and modification of software.
(Free Software Foundationは、ソフトウェアの複製、再頒布、研究、改変に関する制限を撤廃することに専心しています。)

The word “free” in our name does not refer to price; it refers to freedom. First, the freedom to copy a program and redistribute it to your neighbors, so that they can use it as well as you. Second, the freedom to change a program, so that you can control it instead of it controlling you; for this, the source code must be made available to you.
(私たちの名前にある “Free”という言葉は値段のことではなく、自由のことです。 第一に、プログラムを複製し、あなたの隣人に再頒布する自由。 第二に、プログラムを改変する自由です。そうすれば、プログラムがあなたを制御する代わりに、あなたがプログラムを制御することができます。)

https://www.gnu.org/bulletins/bull1.txt

GNU’s Bulletinの8ページ目からのFSFという団体を説明する文章の冒頭にてこの記述が出てくるのだが、この時点でソフトウェアに関係する著作権上の権利における自由を意識していることが分かる。そして、その自由である条件として第一として「複製と再頒布の自由」、第二として「改変する自由」を挙げていることも分かる。ただし、これがFree Softwareであるとははっきりと書かれておらず、そもそもFSFという団体の目的を説明する長い文章の中の一節に過ぎないことから、これをFree Softwareの定義として強く認識している者はさほどいなかったのではないかと考えられる。むしろ、GNU Manifestoによるソフトウェアがあるべき哲学や倫理観のほうが強く意識されていただろう。

当時のGNU’s Bulletinは半年に一度発行される会報だったのだが、最初の号からほどなく同じFSFという組織を説明する文章の中で第二の条件は「ソースコードへの完全なアクセスと改変する自由」となり、長らくGNU’s Bulletinに掲載され続けることになった。これが変化するのは1996年7月号である。ここで「third, the freedom to distribute a modified version and thus help build the community.」(第三に、改変されたバージョンを頒布する自由であり、それによってコミュニティの形成を助ける自由である)という一節が加わり、改変後の頒布について触れられるようになった。当時は現在につながるLinuxディストリビューションや様々なプロジェクトが大きく台頭し始めた頃であり、その成長を意識していたのではないかとは推測している。そして、この1996年頃にGNUプロジェクトの情報配信はwww.gnu.orgでのWeb提供へと徐々に移行を始め、この「三つの自由」がWhat is Free Software?というページで常時公開されるようになった。

これが自由ソフトウェアの定義とされるものがWeb上で公開されるまでの経緯であるが、長期の間において自由ソフトウェアとは何であるかという点を明確に示す文書が常時分かる状態ではなく、またGNUの哲学やコピーレフトの思想が目立つことでそれらに隠れた状態であったことは確かだろう。さらに、1990年代の中頃はRichard StallmanによるX ConsortiumやBSDといったパーミッシブなライセンスを支持する勢力への攻撃的な文書が目立つ場所に置かれていたこともあり、その傾向に拍車をかけていたとも考えられる。

Debianのフリーソフトウェア

ここで自由なソフトウェアの定義の歴史はDebianへ移る。Debianプロジェクトは1993年にIan Murdockによって開始された。彼はDebian Manifestoという文書を作成し、その中でDebianはLinuxとGNUの精神に則り、誰でも自由に利用可能なソフトウェアのみで構成し、オープンで民主的な組織でLinuxディストリビューションを作り上げることを企図することを宣言していた。ここで自由の原則に触れられたと考えられるが、ただし、その自由の定義がされていたわけではない。

このようなDebianの思想とGNUとしてのLinuxディストリビューションの必要性により、翌年の1994年からDebianはFSFの支援を受けることになり、0.9系時代までのDebian GNU/LinuxディストリビューションはFSFにおいても頒布が行われた。Ian MurdockもGNUプロジェクトのメンバーとなり、この時期のDebianはFSFの関係組織であったとみなすこともできるだろう。しかし、このFSFとDebianプロジェクトとの蜜月は、1996年3月にDebianのリーダーがIan MurdockからBruce Perensに代替わりすることで終了した。Bruce PerensはDebianの独立性を重視し、リーダーとなって早々にFSFからの支援を打ち切ったのである。

そして、DebianとFSFとの関係が途切れた翌年の1997年、Debian開発者のEan SchuesslerがあるイベントでRed Hat社の社員らと行った議論の中で事件が起きた。Ean Schuesslerが、Red Hatが会社を拡大していくことで考え方が変わる可能性を危惧し、コミュニティに対してフリーソフトウェアの理想にコミットし続けることを保証する文書を出すべきだろうという提案をRed Hat側の人々へ行った所、Red Hatの創業者であるBob Youngが「That would be the kiss of death.」(それは死のキスだ)と答えたのである。

Bob Youngにとってはそのような制約が将来の利益を生み出す能力を狭めるかもしれないとその場で漠然と考えたのだと思われるが、Debian開発者らにとっては単純な話ではなく、自分達のDebianの思想が変質化しないことをどのように保証するかを考えさせられることになった。この直後から一ヶ月の間にBruce Perensと当時のDebian開発者らの侃侃諤諤な議論が行われ、1997年7月、コミュニティに対して完全に自由なソフトウェアの提供を続ける約束であるDebian社会契約(Debian Social Contract)が策定された。そして、このDebian社会契約を定めるにあたり、この契約でのDebianプロジェクトとしてフリーソフトウェア(Free Software)とは何であるかを明確化するため、同時にDebianフリーソフトウェア・ガイドライン(DFSG)も策定されたのである。

このDFSGの公開後、Debianの組織内に留まらず、フリーソフトウェアの範囲を指し示す定義としてDFSGは広まり始めた。当時自由なソフトウェアを頒布する中心的なサイトとして利用されていたSunSiteでは、即座にSunSiteでの受け入れ基準としてDFSGを採用するということも起きた。このような普及があったのは、Debianプロジェクトが基本的にはLinuxディストリビューションのプロジェクトであり、Linuxディストリビューションが様々な自由なライセンスが付与されたソフトウェアの複雑な集合体であることにも起因するだろう。ライセンスに個々の哲学や思想が含まれていたとしても、コミュニティが自由と考えるソフトウェアを過不足なく、かつ矛盾なく自由なソフトウェアの集合物として扱える基準をDFSGは示したのである。

なお、Debian社会契約とDFSGの策定の議論の間、FSFによる「三つの自由」が参照されたことはないと考えられ、リーダーのBruce Perensもその存在を認識していなかった。また、Bruce PerensはDFSGの策定後にその内容をRichard Stallmanへメールで送付しているが、その返答は「this is a good definition of Free Software.」(適切な自由ソフトウェアの定義である)と返ってきただけとされている。もし、DebianとFSFの関係が希薄になっていなければDFSGが三つの自由に置き換わっていた可能性も考えられるが、これらの時系列を考えると当時はRichard Stallman自身も明確には自分たちが自由ソフトウェアの範囲を定義しているという自覚を持っていなかった可能性もあるだろう。

オープンソースの定義へ

DFSGが策定された1997年はEric Raymondが「伽藍とバザール」を発表した年でもある。Linuxが徐々に一般にも認知され始め、自由なソフトウェアを志向するコミュニティの中には様々な企業もその中へ取り込んでいくことを模索する人々も現れた。

ここからの流れは拙作の「オープンソースの誕生」https://shujisado.com/2017/05/17/612085/ に繋がるので詳しくは書かないが、先ず1998年2月3日にVA Linux Systems社において行われた会議でFree SoftwareをOpen Sourceという用語で代替していく方針が決められた。この会議にはVA Linux Systemsの面々、Foresight Institute、Linux InternationalからJohn “maddog” Hall、SUSE、そしてEric Raymondが加わっていたとされている。そして、当日中にその方針がBruce Perensへ連絡され、2月9日までにDFSGから固有名詞を入れ替える形でオープンソースの定義が策定された。その後、4月7日に自由なソフトウェアを代表する人々が集められたサミットが開催され、投票でOpen Sourceという用語を使用する方針が採択された。この時の出席者は、Tim O’Reilly、Eric Raymond、Linus Torvalds、Brian Behlendorf(Apache)、Larry Wall(Perl)、Guido Van Rossum(Python)、Eric Allman(Sendmail)、John Gilmore(Cygnus Solutions), Michael Tiemann(Cygnus Solutions)等である。

以降のオープンソースという用語の受容は敢えてここで書くようなことはないが、当時の自由なソフトウェアに対する期待と用語の考案、定義付け、主要関係者による承認というプロセスが全て別々の場所と人で進められたというある意味でのドラマ的な展開はその後の受容にとって良い影響を与えたのだろう。

四つの自由と自由ソフトウェアの定義化

オープンソースという用語が爆発的に世間に広まっていく中、FSFとRichard StallmanはこのFree Softwareと基本的には同じ領域を指すと考えられる新しい用語に対し、しばらくは距離感を測りかねていた。しかし、オープンソースという用語が広まる中で、自分達が自由ソフトウェアというソフトウェアの区分を明確に定義していなかったことも認識したのだろう。翌年の1999年までにはFSFはオープンソースという用語ではFSFの考える自由の哲学が伝わらないと判断し、オープンソースとは一線を引いた立場であることを明確にするようになった。

そのような中で、さりげなく「三つの自由」だけを示していたWhat is Free Software?のページは大幅に書き直され、自由ソフトウェアの定義と呼べる内容に改められた。そして、三つの自由の前に「The freedom to run the program, for any purpose (freedom 0).」(目的を問わずプログラムを実行する自由 (第零の自由))が加えられたのである。この時点で現在の「Four Freedoms」(四つの自由)であるフリーソフトウェアの定義がほぼ確定し、細かく修正が加えられているものの現在もそれが維持されている。

ここまでが、実質的に同じ自由な状態を指し示すカテゴリを意味する用語として、四つの自由による自由ソフトウェア、DFSGによるフリーソフトウェア、オープンソースの定義によるオープンソースという三つの定義と名称が存在することになった流れである。ソフトウェアのカテゴリの範囲を指し示す定義としての違いは実用的にはないのではあるが、背景となる思想には差異はある。今後、自由と不自由の境界について考えなければならない時がやってくるだろうと考えられるが、そのような時には歴史を振り返ることで正しい道が見えてくるだろう。

注意

本稿では、Free Softwareの訳語として自由ソフトウェアとフリーソフトウェアを意図的に使い分けている。FSFに依拠する文脈では自由ソフトウェアを使用し、Debianに依拠する文脈ではフリーソフトウェアを使用している。

参考

new UNIX implementation (net.unix-wizardsへのRMS投稿):
https://groups.google.com/g/net.unix-wizards/c/8twfRPM79u0/m/1xlglzrWrU0J
GNU Manifesto:
https://www.gnu.org/gnu/manifesto.en.html
GNU’s Bulletin 1986年2月号:
https://www.gnu.org/bulletins/bull1.txt
History Roundtable Discussion @ Debconf4, June 2004:
https://gabriellacoleman.org/debian-history-roundtable-discussion/
Debian Social Contract / Debian Free Software Guidelines:
https://www.debian.org/social_contract.en.html
オープンソースの誕生:
https://shujisado.com/2017/05/17/612085/