LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Lars Hellström <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Thu, 11 Jul 2002 12:57:48 +0200
text/plain (147 lines)
At 12.15 +0200 2002-07-09, Javier Bezos wrote:
>I'm reading the discussion and I must confess that
>I'm finding it quite frustrating (except the amusing message
>by Tim). I don't understand the schizophrenic obsesion
>about the name, which is irrelevant in most of cases, but
>that in LaTeX can be important; as a poster said
>> Those compatibilities reasons evoqued by the latex project seems
>> to me nonsense: no one can forbid me to write a book.cls, from
>> scratch, that would be incompatible with the standard book.cls.
>That makes sense, but afaik the LPPL doesn't say that. However,
>I think a clear distinction should be made between the LPPL
>and the CTAN policy. CTAN won't accept a class/package whose
>name clashes with the name of an existing class/package, except
>if the author cannot be reached, etc.

Is that actual CTAN policy, or you just thinking loud?

The problem of someone creating an incompatible book.cls from scratch is
probably only theoretical. Anyone who does this will is all likelihood
_want_ people to understand that this is not the standard book.sty (but
probably something better). The natural way of doing this is to at least
pick a different name for the file (mybook, book2, newbook, betterbook,
etc. --- the possibilities are infinite).

What the license tries to prevent is that people create incompatibilities
by making "minor" modifications to the standard book.cls, thereby
exploiting the open source status of the file.

>> The LaTeX Project Public License. [...]
>> This license contains complex and annoying restrictions on how to
>> publish a
>> modified version, including one requirement that falls just barely
>> on the good
>> side of the line of what is acceptable: that any modified file must
>> have a new
>> name.
>> The reason this requirement is acceptable for LaTeX is that LaTeX
>> has a facility to allow you to map file names, to specify ``use
>> file bar when file foo is requested''. With this facility, the
>> requirement is merely annoying; without the facility, the same
>> requirement would be a serious obstacle, and we would have to
>> conclude it makes the program non-free.

Is there such a mechanism in LaTeX, or is he just talking nonsense? I'm
certainly not aware of anything like that.

Could perhaps some middle ground be reached by abstracting the exception
made for .fd files? The reason these may be modified is that their names
are completely determined by their use, whereas the name (minus extension)
of any other file in a LaTeX system that I can think of right now is
explicitly specified by whatever command causes them to be loaded. Putting
it in writing could be something on the lines of changing condition 3 to:

  A modified file may only be distributed with the filename of
  the original file if the name of the file is uniquely determined
  by its use. If a modified file can be used even if its name is
  not exactly the same as that of the original then the modified
  file must be distributed under a different name.

It probably needs some additional clarification. For example
self-references inside the modified file (\ProvidesPackage commands and the
like) are not grounds for that a modified file must be used under the
original name, since these can easily be changed.

A trickier matter is that of _other_ files referencing the original file,
and this is maybe the crux of the matter. We have presumed that all such
files can be modified to reference instead the modified file under the new
name, but that is not necessarily the case; these other files could come
under a non-free license that prohibit all modification, and in that case
the reference to a name is essentially hard-wired.

On the other hand we wouldn't want the mere existence of a non-free file
somewhere that says \documentclass{book} to be grounds for that the book
name can be reused. The LGPL license ends up in a similar dilemma.
Apparently the right to replace an original LGPLed package with a modified
version thereof---even when it is part of a program that as a whole may not
be modified---is an important part of the freeness of the LGPL. Some
paragraphs related to that (in Section 6 of LGPL Version 2.1) are:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Use a suitable shared library mechanism for linking with the
    Library.  A suitable mechanism is one that (1) uses at run time a
    copy of the library already present on the user's computer system,
    rather than copying library functions into the executable, and (2)
    will operate properly with a modified version of the library, if
    the user installs one, as long as the modified version is
    interface-compatible with the version that the work was made with.

Could it be possible to include something on the lines of that a program
which uses The program must also support to instead of The program use
something (interface-compatible with The program) that has a different
name. The main way of doing this would be to permit that the calling file
is modified, but in lack of that, it must provide a mechanism for
specifying a different names for the file to call.

>I must confess I don't understand why that makes a program non-free.
>But I agree that in some cases a variant of book could be useful
>-- a prepress house could have a book which loads, say, hyperref
>because the target document is always pdf, and why not to allow
>its distibution if, as stated in the GPL, this files is
>clearly identified as a modified file. (Maybe by requiring
>a \ModifiedPackage macro, in the same line as the proposal by
>Hans. However, I don't know if that's compatible with GPL.)
>This class, of course, won't be accepted in CTAN.

I think this argument is rubbish. Primarily because it is a trivial
operation for any person to replace `book' in the \documentclass header by
`ourbook', hence you don't gain anything by reusing the name but adds a lot
of confusion. Furthermore all publishing houses I have been in contact with
use document classes that are not 100% compatible with the standard classes
--- there has always been a certain amount of modification that I, as the
author, was expected to do. For that reason I (and any other author) had to
be able to distinguish between the standard class and the in-house class.

>> The LPPL says that some files, in certain versions of LaTeX, may
>> have additional restrictions, which could render them non-free.
>> For this reason, it may take some careful checking to produce a
>> version of LaTeX that is free software.
>I think, again, that makes sense. If LPPL can be extended freely,
>it's more a "draft of license" than an actual license.

It's rather a license framework than a "draft of license", but it does seem
likely that such additional conditions on specific files could render those
files non-free. OTOH, are there cases in which this option to add
conditions has been used?

Lars Hellström

PS: Feel free to reuse any of my arguments above in the license discussions
elsewhere, if they are still going on.