著者: Jorrit Tyberghein & Richard Stallman
日本語訳: yomoyomo
以下の文章は、Discussion with Richard Stallman about the PS2 Console Port の日本語訳である。本文中にもある通り、これは Jorrit Tyberghein と Richard Stallman の間で交わされたメールのやりとりを、Jorrit Tyberghein が編集して公開したものである。
本文中でも触れられているが、この文章については Slashdot で取り上げられたので、そちらもごらんいただけると、一般の反応がわかると思う。
さて、ごらんいただくのは Richard Stallman と僕の間で交わされた Crystal Space の PS2(ゲーム・コンソール)への移植に関する議論である。ここで主に問題となるのは、NDA (Non Disclosure Agreement:秘密保持義務) にサインしないと、PS2 の API をプログラムできないことである。勿論のこと、こうして PS2 用のオープンソースのドライバを書くのを防いでいるわけだ。以下の Richard Stallman と僕の間で交わされたメールのやり取りの中で、いくつかの問題に触れている。例えば、オープンソースとフリーソフトウェアの違い、といったことなど。また、この PS2 の問題に対して考えられる解決法についても。個人的には、(最後のメールで)とっても面白い結論を引き出したと思う。でもかなりの量読むことになるね :-)
無関係であったり、重複する段落を削除した他は、テキストにはいかなる編集も行っていない。以下の全ての文は、元のメールを編集せずにコピーしたものである。僕から Richard Stallman に宛てたメールがいくつか見つからないので、そのとき自分が書いたことを思い出し、埋め合わせをしなければならなかった。この議論は、Richard Stallman の許可を得て公開されている。
はっきりさせておこう! この文章は、SlashDot で取り上げられた。僕がオープンソースとフリーソフトウェアの違いが分かってないのでは、と何人かがそこで指摘している。議論のはじめの時点では確かにその違いに気付いてなかったけど、RMS からこの件に関して教えてもらったリンク先を読んだ後は、その違いをしっかり認識したつもり・・・だけど、それは重要じゃないんだ。単語の用法に関しては僕はちょっといい加減かもしれないけど、僕は議論をそっち方面に進めようとは全く思ってなかった。僕は主として、LGPL と PS2 に関する技術的な質問に対する回答に興味があったんだ。僕は正しい専門用語を用いてなかったかもしれないけど、僕は正しい専門用語に汲々とするような類の人間じゃない。あまり賢明ではないかもしれないけど、それが僕のやり方なんだ。RMS の側に立って、大目に見ていただけるとありがたい。これが言いたかっただけなんだ :-)
こんにちは
僕は、LGPL(劣等でもライブラリでも、お好きな方をお選びください:-) (訳注:これは、LGPL の L を Lesser(劣等)の略とするか、Library(ライブラリ)の略とするか、ということである。詳しくは GNU のサイトにある「あなたの次のライブラリにはライブラリ GPL を適用するべきでない理由」を参照ください)で公開している、オープンソースの 3D エンジンである Crystal Space のプロジェクト管理者です。URL は、http://crystal.linuxgames.com です。
Crystal Space は、大変移植性がよく(Linux や Windows などで動作します)、現在 PS2 コンソール向けの移植作業を行ってます。しかし、コンソールの場合、API の特定部分にすごく不快な NDA の制限があったりして苦しむことがよくあります。またこのせいで、その部分のコードをオープンソースの LGPL ソフトウェアと組み合わせて公開することが難しくなります。
我々には一つ強みがあります。Crystal Space は、PS2 API の NDA 部分に直接アクセスするモジュールを、プラグインの中に隠匿できるプラグイン・アーキテクチャを採用してます。しかし、今回は当然ながら、そのプラグイン自体をオープンソースにはできません。
この状況に関して、何かご提案、ご意見はありませんか? もしおありでしたら、どうすればこれを LGPL と組み合わせることができますでしょうか? 原則として、プラグインは別モジュールになりますが、もちろんプラグインにより実装されるインターフェースが問題となります。これらインタフェース部分も、現在は LGPL です。もし必要とあらば、再ライセンス発行可能です。
あいにく僕はこうしたライセンスの問題がひどく不得手で、この場合何ができるか、どうやればできるかよく分かりません。
それではよろしくお願いします。
私はオープンソース運動を支援していないので、オープンソースの名においてあなたとは議論はできない。
お望みなら、フリーソフトウェア運動の名においてアドバイスはできる。我々の基本理念はオープンソース運動とは違ったものなので、私のアドバイスは連中から得るアドバイスとは随分違ったものになるだろう。もし私にそうしてほしいのなら、我々は、「オープンソース」でなく「フリーソフトウェア」について語るべきだ。さもなくば、君は道を誤ることになるだろう。(http://www.gnu.org/philosophy/free-software-for-freedom.html(訳注:日本語訳)を参照したまえ)。
これでよろしいかな?
あと、「コンソール」というのが何のことは教えていただけませんか? 単なるコンピュータのコンソールとしてのターミナルのことなら私にも分かるが、それを言っているのではないようなので。
えっと、僕のプロジェクト自体は LGPL ライセンス(訳注:LGPL の最後の L は License なのだからこの言い回しはおかしいのだが、そのまま訳出した)のオープンソースなんです。僕がお尋ねしたいのは、LGPL ライセンスと SONY が PS2 API に課している NDA との適合性に関することなんです。この場合、PS2 API と直接通信する部分のソースを LGPL には「おそらく」できないんだと思います。でも、本当にそうなのか定かでないので。
僕はこうしたライセンスの問題に携わった経験が大変乏しいんです。
個人的には、PS2 API と通信するモジュールのソースをクローズドにするのは、それを自由に入手(この場合はバイナリ形式で)できるようにすれば構わないと思ってます。でもこれを本当に LGPL と組み合わせることが可能なのか確かめなければなりません。
僕としては、そうした問題について、あなたから貴重な意見をいただけるのを期待しておりました。僕が誤解してるのでなければ、LGPL はあなたがお書きになったのですよね?
「ゲーム・コンソール」というのは、ゲームをプレイするのに特化して作られたコンピュータのことです。今ではとてもポピュラーですよ。
オープンソースを話題にしないというのを分かってくれたら、私は喜んでこの件に関するフリーソフトウェア運動としてのアドバイスができるのだけどね。
近頃では、フリーソフトウェアの理念が、中身カラッポのオープンソースの理念のせいでしりぞけられつつある。私がオープンソース運動を支援していると思いこんで、同じ行動をしている人間が何千といるに違いない! 私にはフリーソフトウェア運動が未だ健在であるということを広める必要があって、つまりは私と話すのなら、オープンソースのことは口にしないというのを分かってもらわなくてはならない。
分かってもらえたかな? そうなら、私も返答しよう。
ご意見拝聴しましたが、僕にはよく分かりません。書いたとおり、僕はこうした問題にひどく不慣れなんです。あなたでしたら、その厳密な違いをはっきりできるでしょう?
注意していただきたいのですが、僕はまず何よりも、LGPL ライセンスについて質問をしているのです。オープンソースという言葉が、その質問に関わることかどうか、僕には定かではありません。でも重要なのは、僕には LGPL ライセンスを採用しているプロジェクトがあって、NDA のもとにある API の特定部分を、そうした PS2 向けのプロジェクトで利用することが可能かどうか分からない、ということなのです。
オープンソース運動というのは、私が理解するところでは(私は連中を代表しているのではないからね)、ソフトウェア開発にユーザを参加させることで、よりパワフルで信頼性の高いソフトウェアを作ることを目指している。
フリーソフトウェア運動は、もっと広大で深遠な目標を持っている。すなわち、ユーザにコミュニティにおいて協力、参加する自由を与えることである。自由を得るためには、自由を尊重するソフトウェアを使わねばならない。フリーでないプログラムは、ユーザの自由を奪うので、コンピュータを利用する場合、自由になる唯一の手段は、コンピュータからフリーでないソフトウェアを切り離すことである。
http://www.gnu.org/philosophy/free-software-for-freedom.html というページに、二つの運動の違いに関する詳細な解説がある。読んだことはあるかね? ソフトウェアが道徳上フリーであるべき理由についての解説は、http://www.gnu.org/philosophy/why-free.html というページを見たまえ。
君は、ある企画(X と呼ぶことにしよう)の可能性を育てている。それが不可能だったら有効な選択肢にはならないから、X が可能かどうかは、重大な問題だ。だが我々は、もう一つ同じくらい重要な問題も考慮しなくてはならない。つまり、X が問題の解決になるだろうか? X はユーザに自由を与えるという目標を達成するのだろうか? ということだ。もし、X によって我々の自由が保たれないのなら、その場合はそれが可能か不可能かにかかわらず、それは有効ではない。
私の知る限り、フリーでないドライバを利用するのは、ユーザの自由がそれでは保護されないので、解にはならない。それでは成功でなく、敗北だ。
だからこそ、そのプログラムを 100% フリーなソフトウェアとして動作させる方法を探すべきなのだ。例えば、そのゲームは、GNU/Linux の入った普通の PC 上で動作するのかな?
オープンソース運動というのは、私が理解するところでは(私は連中を代表しているのではないからね)、ソフトウェア開発にユーザを参加させることで、よりパワフルで信頼性の高いソフトウェアを作ることを目指している。
はい、僕も大方そのように理解しています。僕の Crystal Space プロジェクトもこれから恩恵を得ています。
http://www.gnu.org/philosophy/free-software-for-freedom.html というページに、二つの運動の違いに関する詳細な解説がある。読んだことはあるかね?
はい、読んでみました。ご教示ありがとうございました。
君は、ある企画(X と呼ぶことにしよう)の可能性を育てている。それが不可能だったら有効な選択肢にはならないから、X が可能かどうかは、重大な問題だ。だが我々は、もう一つ同じくらい重要な問題も考慮しなくてはならない。つまり、X が問題の解決になるだろうか? X はユーザに自由を与えるという目標を達成するのだろうか? ということだ。もし、X によって我々の自由が保たれないのなら、その場合はそれが可能か不可能かにかかわらず、それは有効ではない。
私の知る限り、フリーでないドライバを利用するのは、ユーザの自由がそれでは保護されないので、解にはならない。それでは成功でなく、敗北だ。
だからこそ、そのプログラムを 100% フリーなソフトウェアとして動作させる方法を探すべきなのだ。例えば、そのゲームは、GNU/Linux の入った普通の PC 上で動作するのかな?
Crystal Space プロジェクトの大きな目標の一つに、様々なプラットフォーム上で、(再コンパイルを除けば)変更を加えることなく動作するゲームを書くことを可能にすることがあります。現在のところ、我々は Linux、Windows、OS/2、BeOS、Macintosh 他をサポートしてます。ゲームのソースコードに変更を加える必要がありません。#ifdef OS_WIN みたいなものさえも必要ありません。
我々は、目下これを PS2 他のコンソール・ゲーム機に拡張しようとしています。しかし、そこで我々は、こうしたコンソールの API を手に入れるのに必要な NDA という障害にぶち当たったのです。つまり、そのドライバの(小さな)一部さえもオープンソースにできないのです。当該ドライバのバイナリを、「無料で入手可能」(つまり、料金を請求しない)にすることならできます。その場合、制限はソースコード・レベルにとどまります。
つまりある意味では、我々がやりたいのは、Crystal Space を利用して作成したゲームをそれらのプラットフォーム上で動かせるようにすることで、Crystal Space パッケージのユーザにもっと自由を与えることなんです。現状では、PS2 などのプラットフォームでは、ソースがクローズドなドライバを配布することが、我々にできる唯一の方策だと思われます。
この状況については、どう思われますか? ソースがクローズドなドライバに依存することなく、Crystal Space をこうしたプラットフォーム上で動かすことにこだわるなら、現時点では他に選択肢が見つかりません。残念なことには違いありませんが。
Crystal Space プロジェクトの大きな目標の一つに、様々なプラットフォーム上で、(再コンパイルを除けば)変更を加えることなく動作するゲームを書くことを可能にすることがあります。
それは技術目標としては有益である。しかし、技術目標は、それが何であれ、社会的な目標や理念という文脈において、正しい、もしくは間違っているという意味を持つ。社会的、倫理的文脈だけが、それが救済になるか災厄になるかを決定する根拠となる。
残念なことに、今回の場合、エンジニアが技術的な目標を追い求め、自分たちが関わっている文脈を見失う際に起きることの典型例のように見える。「問題は解決する」が、結果としては前進してないという。
もしプログラムをフリーにし続けることができるのなら、フリーなプログラムにたくさんのプラットフォームをサポートさせるのはもっともなことである。しかし、自由を放棄することで特定のプラットフォームをサポートするのは意味がない。
あなたが下さった情報を元にすると、フリーソフトウェアのプロジェクトが PS2 をサポートし、ユーザの自由を守る唯一の方法は、API をリバース・エンジニアリングすることのようである。そこで二つの合法的な選択肢が可能になる:
私としては二番目の方がよいと思う。PS2 も独占物だから、それに時間を費やす価値はないように思うし。
当該ドライバのバイナリを、「無料で入手可能」(つまり、料金を請求しない)にすることならできます。その場合、制限はソースコード・レベルにとどまります。
それではまるで、癌にかかった「だけ」であるとか、足を切断する「だけ」ですみそうだ、とか言っているようなものだ。こんな制限を持ったプログラムは、フリーソフトウェアではない。ほぼフリーだとも言えない。
それはオープンソースでもない。君もご存知の通り、大体において私は、プログラムがオープンソースであるか否かということに関心がないので、私はオープンソースを支援はしない。それがフリーソフトウェアであるかということには関心がある。だが、君はソフトウェアをオープンソースにすることを目標に据えてきたのだから、その目標を放棄することについて話し合うのに意味はないね。さらにサポートするのを増やせばいいじゃないか。君にとって本当に重要なのは何なのだ?
君は今選択を迫られているのだよ、価値観についての選択を。君は、一つでも多くのプラットフォームをサポートすることを目標にするか、自由を目標にするかのどちらかを選択しなければならない。
つまりある意味では、我々がやりたいのは、Crystal Space を利用して作成したゲームをそれらのプラットフォーム上で動かせるようにすることで、Crystal Space パッケージのユーザにもっと自由を与えることなんです。
実用本位の柔軟性は自由ではない。束縛を許容するのでは、自由を与えることにはならず、人々が自由を放棄するのに手を貸してしまう。
自由を支援することは、時に誘惑と戦うことを意味する。今回のはそれの一つなんだ。もし私が君なら、PS2 がフリーソフトウェアになるまでは、PS2 をサポートはしないし、それを大衆とユーザに対して強く、そして明確に主張するがね。
Crystal Space の他の開発者にもこのメールを転送してくれないだろうか?
PS2 用ドライバは無料になるでしょうが(Crystal Space を入手できるどこからでも自由にダウンロード可能になるので)、オープンソースにはなりません。
我々がここでどういう自由を放棄しているのか、僕にはよく分かりませんね。
また、Linux(GNU/Linux の方がよろしいですか)、Windows、OS/2 などで動く Crystal Space を利用する人達にとっては、今回の PS2 への移植はどうでもいいことです。
あなたがそうした観点からみているのでしたら、意味はないかもしれません。でも、ゲームの分野においては、PS2 というのは大変重要なプラットフォームなのです。
PS2 用ドライバは無料になるでしょうが(Crystal Space を入手できるどこからでも自由にダウンロード可能になるので)、オープンソースにはなりません。
ここに大きな誤解がある。フリーソフトウェアは、自由に関するもので、値段のことではない -- もしフランス語を解するなら、libre のことで、gratuit のことではない(君の名前はフランドルっぽいね。ベルギーのその二つの間に敵対意識がいくぶんあるのは知っているので、私が例としてフランス語を選んだのに気分を害さないでいただきたい)(訳注:Jorrit Tyberghein 氏は、ベルギーの大学に在籍している。ベルギーの公用語は、フランス語とフラマン語である。まず RMS はベルギーの公用語で、自分もいくらか知っているフランス語を例に出したが、相手の名前がフラマン(フランドル、フランダース)っぽい響きを持つのに気付き、またベルギーでその両派の間に争いがあるのを思い出し(訳者はそのあたりのことは詳しくありません)、フランス語を例に出したのを悪く思わないでほしいと付け加えた、ということなのだと推測する)
我々のフリーソフトウェアの定義は、オープンソースの定義よりもずっと厳格である。よってオープンソースでないものは、間違いなくフリーソフトウェアでもない。このドライバーは、フリーソフトウェアではない。
どうか http://www.gnu.org/philosophy/free-sw.html を読んでいただきたい。そうすれば「フリーソフトウェア」の意味を理解していただけるだろう。
我々がここでどういう自由を放棄しているのか、僕にはよく分かりませんね。
フリーソフトウェアには、変更の自由、複製・再配布の自由、そして改変したものを公開する自由がある。事実上、一番目と三番目の自由には、ソースコードが入手可能であることが要求される。それら二つの自由は、プログラムがソースコードなしに公開されたのでは享受できないものだ。
どうかフリーでないソフトウェアを開発しないでもらいたい。
また、Linux(GNU/Linux の方がよろしいですか)、Windows、OS/2 などで動く Crystal Space を利用する人達にとっては、今回の PS2 への移植はどうでもいいことです。
それはごもっとも。なら、どうして PS2 をサポートする? ゲームをしたいなら、GNU/Linux をインストールすべきだと説けばよかろうに。
今こそ自由のために立ちあがるチャンスなんだ。「我々は PS2 をサポートしない。何故なら、SONY は我々にフリーソフトウェアで PS2 をサポートすることを許さないからだ」とアナウンスできる。
http://www.gnu.org/gnu/the-gnu-project.html(訳注:Omoti 氏による日本語訳。後の引用についても、この日本語訳から引用した)を読んだことはあるかな? それは私の主張の根拠を理解する助けになるだろうし、私が GNU ライセンスを書いた理由を理解する助けにもなる。
あなたがそうした観点からみているのでしたら、意味はないかもしれません。でも、ゲームの分野においては、PS2 というのは大変重要なプラットフォームなのです。
何を目標にするのかは重要でないのか? 君らはどんな価値観を支持しようとしているのだ?
私の価値観においては、単に実用的な意味において「ユーザの役に立つ」ということよりも、自由はもっと大事である。もちろん、多くの場合我々はその両方を達成できるので、そのどちらかを選ぶ必要はない。しかし、時にはそうとばかりもいってられなくなる。
ところで、もし君らが「オープンソース」に投資するつもりなら、「フリーソフトウェア」にもどうか投資していただけないだろうか? 君らがオープンソース運動に対してと同じ敬意をフリーソフトウェア運動にも払ってほしいものだ。
はい、読んでみました。
まず、あなたの文章から引用しますと:
(訳注:このメールでは、以後の自由○の○を間違って、一つずらして書いているのに注意)
PS2 用ドライバに関しては、我々には自由1と3を与えることしかできず、SONY と NDA を結ぶことなしにはソースコードにアクセスできないので、2と4に関しては与えることができません。しかし、それとは別に、我々は別の種類の自由を手に入れます:
僕は個人的には、自由5は自由2や4と比べても重要度が劣るとは思いません。特にこのドライバは、正真正銘面白みのない種類のソフトウェア(基本的には Crystal Space の API と PS2 の API をブリッジするものです)なので、このプログラムを勉強したいという要望は、ほぼゼロです。改良に関しては、この場合 NDA による制限は SONY に対するもので、我々に対するものではありません。またそれはブリッジなので、ドライバの動作に依るものです。それをやるにしても、対した改良はありません。
それが重要な原理であるのは分かりますが、別の見方も考慮すべきではないでしょうか。つまり、Crystal Space は現在 Windows 上でも動きますが、それを可能にするには、3D グラフィックを実現する他の手段がないので、Windows において、独占物である DirectX API にアクセスしなければなりません。そこで、以下の二つのシナリオの間にどんな違いがあるのでしょうか:
Windows OS: Crystal Space -> DirectX API
PS2 Console: Crystal Space -> PS2 Driver -> PS2 API
DirectX API も PS2 用ドライバも共に独占物です。その唯一の違いは、PS2 用ドライバの場合、僕のチームのメンバーの何人か(僕ではないです。僕は PS2 には携わってません)が、それを書こうとしているということです。しかし、Crystal Space の立場からしても、Crystal Space を利用する開発者にとっても、DirectX API というのは PS2 ドライバと同じくブラック・ボックスに過ぎないのです。
これで我々のどこがいけないんです?
しかし、それとは別に、我々は別の種類の自由を手に入れます:
5) PS2 を含むあらゆるプラットフォーム上で、Crystal Space を使って開発したゲームをコンパイルし、動作させる自由
それは自由ではない。それは実用本位の利便性に過ぎない。人々は、PS2 上でプログラムを動かすことができるだろうが、自由にそうすることができない。
一般に、自由は追加オプションを持つということで、より自由になるというものではない。二つの独裁のいずれかを選ぶのでは、自由ではない。
そこで、以下の二つのシナリオの間にどんな違いがあるのでしょうか:
Windows OS: Crystal Space -> DirectX API
PS2 Console: Crystal Space -> PS2 Driver -> PS2 API
似ているかもしれない。私は Windows ユーザであったためしはないので、「DirectX」という名称は聞いたことはあるが、それについては何も知らない。メジャーな Windows API が秘匿されているなんてショックだな。けれども、Windows のケースで、君は API と通信する相手側のドライバを記述していない。それが二つのケースでの違いになりうるが、私にはその違いは完全には分からない。
いずれの場合でも、私はフリーでないプログラムを書くために NDA にサインなんて決してしないし、他の誰かにそれをやるように頼んだりもしない。もしフリーなプログラムが書けないなら、私はプログラムなんて書かないね。フリーソフトウェアでそのプラットフォームをサポートできないなら、そのプラットフォームはサポートしない。それこそが、私の良心が求めるものなんだ。
君はそうした良心の決めるところに同意してくれないかもしれないが、それを斥ける前に、GNU/Linux システムが、そうした良心の決めるところのためにこそ存在しているという真実をどうか考えてみてくれないだろうか。
似ているかもしれない。私は Windows ユーザであったためしはないので、「DirectX」という名称は聞いたことはあるが、それについては何も知らない。メジャーな Windows API が秘匿されているなんてショックだな。
いえ、API は秘匿されてません。でも、API の実装のソースはクローズドです。でも続きを読んでください。以下にちょっと整理して状況を説明しますので。
けれども、Windows のケースで、君は API と通信する相手側のドライバを記述していない。それが二つのケースでの違いになりうるが、私にはその違いは完全には分からない。
そうですね、Crystal Space の場合では、実際には違いはありません。Crystal Space は、インタフェース一組でハードウェアの抽象化を行います。Crystal Space 自体は、そうしたインタフェースと通信するだけであって、その実装が API との「規約」に従う限りは、それが何で/どのように実装されるかということを問題にはしません。
だからこそ、我々は多様なシステム用に Crystal Space API を実装するドライバを作っているのです。だからこそ、我々は(DirectX の実装自体はオープンソースでないのに) Crystal Space 用に、オープンソースの DirectX ドライバを作っているのです。OpenGL ドライバも作り、Macintosh 用ドライバも作り、他にも作ってます。今我々は、PS2 ハードウェアの抽象化を行なう相手側のドライバを書きたいと思っています。我々が所有するインタフェース部分は LGPL ですし、(基本的には純粋な抽象 C++ クラスの)LGPL インタフェースを実装するのに、ソースをクローズドにできるとは思ってませんので、そのドライバ自体はオープンソースにする必要があります。
よってこれは解決法ではありません。以下に代替として我々が提案するものを書いておきます。依存関係を説明するのに、木構造を使わせてもらいます。
我々としては、Crystal Space 自体をソースがクローズドな製品で汚染したくはありませんので、オープンソースの PS2 ドライバとクローズドな PS2 API の間に追加モジュールをかませることにするのです。
そこでその PS2 ラッパーについて解説します。法律的には、PS2 API に関する NDA に直接抵触することになるので、それのソースコードを公開するわけにはいきません。しかし、バイナリなら公開できます。
Crystal Space の立場からこの構成を見ていただければお分かりの通り、状況は Windows と PS2 の関係によく似ています。Windows の場合、公開されている API(DirectX API)を通して秘匿された実装と通信する、オープンソースのドライバが存在します。PS2 の場合、別のところで公開された API(PS2 ラッパー)を通して秘匿された実装と通信するオープンソースのドライバがあるというわけです。
唯一の違いは、DirectX は Microsoft に書かれたのに対し、PS2 ラッパーを書くのが我々(僕のチームのメンバー)であるということです。
これで片付くとよいのですが。
いずれの場合でも、私はフリーでないプログラムを書くために NDA にサインなんて決してしないし、他の誰かにそれをやるように頼んだりもしない。もしフリーなプログラムが書けないなら、私はプログラムなんて書かないね。フリーソフトウェアでそのプラットフォームをサポートできないなら、そのプラットフォームはサポートしない。それこそが、私の良心が求めるものなんだ。
重要なのは、我々のアプローチを採れば、PS2 上で動くゲームを開発するために、あなたが NDA にサインする必要がなくなるということです。つまり、PS2 に関する NDA を回避する特別な選択肢を開発者に与えることになるのです。
NDA にサインする必要があるのは、PS2 ラッパーを開発する人間だけということになります。
だからこそ、我々は(DirectX の実装自体はオープンソースでないのに) Crystal Space 用に、オープンソースの DirectX ドライバを作っているのです。
もしそのドライバがオープンソースであると同時にフリーソフトウェアであるなら、君はフリーでないソフトウェアを書いてもいないし、フリーでないソフトウェアを配布してもいないということになる。Windows や DirectX の実装が悪いのは勿論だが、その犯人はマイクロソフトであり、君ではない。
PS2 に関する状況は異なります。
Crystal Space (オープンソース): -> DirectX Driver (オープンソース)
私は、「オープンソース」の見地から、このことを議論できない。君は、意見が合わず、支援もしてない運動のスローガンを私に認めさせようと圧力をかけているような感じがするよ。どうかフリーソフトウェアについての話をしていただけないだろうか?
私は、「オープンソース」の見地から、このことを議論できない。君は、意見が合わず、支援もしてない運動のスローガンを私に認めさせようと圧力をかけているような感じがするよ。どうかフリーソフトウェアについての話をしていただけないだろうか?
うーん、そうですか。「フリーソフトウェア」の資格のあるソフトウェアには、あなたがウェブページに書かれている四つの基準を満たす必要があると僕は思ってます。その基準のうち二つは既に満たしています。つまり、自由0(どのような目的であろうとも、PS2 ラッパーを実行できる自由)と自由2(誰に対しても、複製物を配布できる自由)です。そこで問題として残るのは自由1と自由3ですが、これはソースを入手可能にするだけで満たすことができます。つまり、オープンソースにすることによって、です。
だからこそ、僕はここではオープンソースについて話をしているのです。というのも、PS2 ラッパーをオープンソースにすれば、それを「フリーソフトウェア」にする唯一の障害も取り除けると思うからです。この仮定は間違ってますか?
自由1と3に問題があるという君の見方は正しい。しかし、君は「オープンソース」の定義をどうやら誤解しているようだ。それは「ソースコードが入手可能」という意味ではない -- それこそが、私が http://www.gnu.org/philosophy/free-software-for-freedom.html でも指摘したありがちな誤解なんだな。
オープンソース運動に言わせると、「オープンソース」の定義は実際には、「フリーソフトウェア」の我々による定義に非常に近いものとのことだが、連中はそれをいくらか緩く解釈するので、フリーソフトウェア運動に属する我々にはあまりにも制限があると思われるライセンスをもいくつか認めてきた。
そこでその PS2 ラッパーについて解説します。法律的には、PS2 API に関する NDA に直接抵触することになるので、それのソースコードを公開するわけにはいきません。しかし、バイナリなら公開できます。
私自身は、有益な技術情報だろうと NDA にはサインなどしない。私にはそれは不道徳なことに思える。しかし、他のマシンでも利用される標準的なインタフェースをサポートする PS2 ラッパーが、人々を PS2 用に特化したものでなく、移植性のあるソフトウェアを書くように促すものになることで、SONY を極めて不幸な状況においやるかもしれないのは想像できる。連中を不幸にすることは、現環境下においては良いようだ。
私は SONY の真意について考えを巡らしているところだ。SONY が PS2 API を秘匿する真の目的が何であるか知っている人をご存知ではないだろうか? 私には誰に尋ねてよいか分からないのだ。