Re: TeX Licenses & teTeX (Was: Re: forwarded message from Jeff Licquia)
> Date: Sat, 10 Aug 2002 14:54:19 +0300
> From: Richard Braakman <firstname.lastname@example.org>
> Are you talking about a compilation copyright here? Those are tricky
> beasts. I've never before seen a compilation copyright with a license
> that allows modification, and I wonder how it would work.
Excuse my ignorance, but what is a compilation copyright? I've never
heard about this before.
I must say, however, that your letter gave an insight to me. I've
reread DFSG-4 once more and I think I see how TeX, CM and LaTeX ARE in
The license may restrict source-code from being distributed in
modified form _only_ if the license allows the distribution of
"patch files" with the source code for the purpose of modifying
the program at build time. The license must explicitly permit
distribution of software built from modified source code. The
license may require derived works to carry a different name or
version number from the original software. (This is a
compromise. The Debian group encourages all authors not to
restrict any files, source or binary, from being modified.)
Now this gives specific references to source code, build time and
built programs. To see whether this applies to TeX, we need to
determine, what is source-code, what is building and what is a built
program in TeX world.
There is several binaries in TeX: /usr/bin/tex, /usr/bin/mf etc. For
them source code are tex.web, mf.web, etc. Everybody is allowed to
distribute patch files with them and distribute the modified versions
(thanks to Thomas for reminding this), so they are DFSG-free.
What are the other parts of TeX-the-system? They are fonts and macro
packages like plain.tex. If you call these pieces source code, you
must determine, what is building. If this is source code, when is it
The creation of plain.fmt and cmr10.tfm might be considered
compilation. However, I now see it is not *building* because it is
actually something like packing. When iniTeX creates plain.fmt, it
actually reads the source and saves the memory state for future
use. On a faster machine you can probably dispense with this step,
reading plain.tex instead of plain.fmt. The same is true for creation
of cmr10.tfm: here you pack the information from cmr10.mf for a future
TeX run; this is *not* a complete build.
What is then a build time for TeX? The usual usage of the word
"compilation" in our community refers to a TeX run, which takes a file
foo.tex and produces a file tex.dvi. This is reasonable because it has
all features of compilation: you have source code (foo.tex+a number of
.sty or .tex files), you have binary .dvi files and you have even log
files. You can have compilation errors, compilation warnings, aborted
compiles etc. Therefore TeX documents are NOT documents in the sense
.txt documents -- they are PROGRAMS.
However, there is a big difference between TeX programs and, say, C or
Perl programs. The innards of the C compiler or Perl interpreters are
hidden from the user program. You cannot patch your compiler or
interpreter DURING the run. TeX is different by design. You can patch
it from the program it runs. Everything defined in plain.tex, cmr10.mf
(or latex.ltx and article.sty) can go under knife from
foo.tex. Therefore you obviously CAN patch the sources during the
build and CAN distribute both the built files AND patches.
I think it makes TeX, TeX fonts and LaTeX DFSG-free not by the virtue
of the licenses, bu by the design of the software itself. It was
*designed* to be free.
Am I not right?
Experiments must be reproducible; they should all fail in the same way.