> Date: Sat, 10 Aug 2002 14:54:19 +0300 > From: Richard Braakman <[EMAIL PROTECTED]>
> > 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 fact DFSG-free. 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 built? 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? -- Good luck -Boris Experiments must be reproducible; they should all fail in the same way.