TeXのライセンスはオープンソースか?

このところ忙しかったので反応の時期を逸してしまったが、南方司さんの「雑種路線でいこう」11/22付のコメント欄で、sodaさんが以下のように述べていた。

TeX については、そのライセンスがオープンソースの定義に適合しないからでしょう。TeX 本体に対する改変は禁じられていて、Knuth本人以外による改変は、パッチファイルのような形で配布しないといけないので…
soda のコメント (2006/11/25 17:45) – 雑種路線でいこう

以下を読めば明らかなように、案外ややこしい話なので間違いと言い切るには酷な面もあるのだが、普通はTeXのライセンスはオープンソースの定義に適合すると考えられている。よくある勘違いなので、ここで論点をまとめておこう。ちなみに、ここで問題にしているのはあくまでオリジナルTeXのライセンスであって、LaTeXの話ではないことにも注意して欲しい(LaTeXのライセンスはそれはそれでややこしく、teTeXだのTeXLiveだのといったTeX頒布物はさらに頭の痛い問題を含んでいたりもするのだが、その話はまた別の機会に)。

まずは肝心のTeXのライセンスだが、たとえばtex.webの冒頭にはこうある。

% This program is copyright (C) 1982 by D. E. Knuth; all rights are reserved.
% Copying of this file is authorized only if (1) you are D. E. Knuth, or if
% (2) you make absolutely no changes to your copy. (The WEB system provides
% for alterations via an auxiliary file; the master file should stay intact.)

% See Appendix H of the WEB manual for hints on how to install this program.
% And see Appendix A of the TRIP manual for details about how to validate it.

% TeX is a trademark of the American Mathematical Society.
% METAFONT is a trademark of Addison-Wesley Publishing Company.
tex.web、強調引用者

確かにクヌース先生本人ではない限り、改変したものの再頒布は許可されていない(しかし、他にたまたまD. E. Knuthという名前の人がいた場合、この書き方ではまずいのではなかろうか…)。なのでsodaさんのようにオープンソースの定義第3項に抵触、と即断したくなるが、強調部分で示したように「WEBシステムの仕組みを使えば補助ファイルによる改変は可能である」とも書かれている。なおWEBシステムと言うのはクヌースがTeXを書く際使った「文芸的プログラミング」の支援システムで、当然WWWとはなんの関係も無い。そのあたりも含めて、馴染の無い方は増井俊之さんが書いたWeb上での「文芸的プログラミング」を眺めてみると面白いだろう。

あいにく増井さんの文章では触れられていないのだが、ここで言う「WEBシステムの仕組み」というのはチェンジファイル(change file)のことだ。ASCII pTeXなどもこれを使っているので、pTeXの頒布物の中を覗いたことがある人は*.chと言う拡張子が付いたファイルがいくつかあったことに気づいているだろう。*.chの中にはマスターとなるWEBソースの該当部分とその置換内容が併記されていて、WEBに含まれるtieというプログラムに食わせると、マスターを置き換えてくれるのである。ようするに、*.chは「パッチファイル」なのだった。今ならdiff/patchを使うのだろうが、それと同じことを自前でやっているのである(ラリー・ウォールがpatchを書いたのは1984年ごろなので、当時はまだ存在していなかったのだろう)。ようするに、改変したマスターそのものを頒布してはいけないが、チェンジファイルを使っていじる分には構わないよ、と言っている(ように解釈できる)わけだ。

これだけではチェンジファイルでビルド時に改変されたマスター(から生成されたCなどのソース)由来のバイナリの頒布に関して、あいまいな点が残る。というか、何も書かれていないのでよく分からない。そこでよく言及されるのが、クヌースが1990年に書いた有名なThe future of TeX and METAFONT(PDF)の一節である。

I have put these systems (引用者注: TeX、METAFONTとComputer Modern) into the public domain so that people everywhere can use the ideas freely if they wish.

[…]

As stated on the copyright pages of (引用者注: TeXブックの)Volumes B, D, and E, anybody can make use of my programs in whatever way they wish, as long as they do not use the names TEX, METAFONT, or Computer Modern. In particular, any person or group who wants to produce a program superior to mine is free to do so. However, nobody is allowed to call a system TEX or METAFONT unless that system conforms 100% to my own programs, as I have specified in the manuals for the TRIP and TRAP tests.
The future of TeX and METAFONT (PDF)

ようするにここでクヌース先生は、TeXその他はパブリック・ドメイン扱いにする、何をしても構わないが、(改変したものの頒布など)何かしたければ名前は変えてくれ、と言っているわけだ。パブリック・ドメインだと言うなら本来は(改変したマスター自体の頒布も含めて)どうしようと構わないはずなので若干おかしいのだが、まあクヌースの希望は明らかだし、ASCIIやteTeX、TeXLive、ひいてはDebianなど私が知る限り全てのTeX開発者/頒布者はこのクヌースのコメントを尊重していると思う。

そしてオープンソースの定義では、このような改変部分のパッチでの頒布と名称変更の強制は明確に許可している。

4. 作者のソースコードの完全性(integrity)

バイナリ構築の際にプログラムを変更するため、ソースコードと一緒に「パッチファイル」を頒布することを認める場合に限り、ライセンスによって変更されたソースコードの頒布を制限することができます。ライセンスは、変更された ソースコードから構築されたソフトウェアの頒布を明確に許可していなければなりませんが、派生ソフトウェアに元のソフトウェアとは異なる名前やバージョン番号をつけるよう義務付けるのは構いません
オープンソースの定義、強調引用者

というわけで、TeXのライセンスはOSD的にOK、ということになるのです。

そもそもはQtのQPLをどうにかしてオープンソースの範疇に入れたいからこんな例外を作ったのだが(ちなみにQPLで引っかかるのは第3項)、たまたまTeXも該当するというわけだ。私が言うのもなんだがオープンソースは御都合主義の産物なので、このあたりは融通無碍なのだった。こう書くと誤解する人がいそうなので補足しておけば、融通無碍なのはソフトウェアの普及や流通を不当に阻害しない限りにおいて、ではあるが。