Let me try to briefly set the record straight as to what I believe are
the technical facts relevant to determining whether XEmacs packages
are conformant to the GPL requirement to distribute source.
From the legal point of view, we distribute *two* derivative versions
of each package.[1] The first derivative version is distributed only
as source (and therefore has no problem with that requirement), as
part of the collective work known as the "XEmacs package CVS
repository." This is the preferred version for development activity.
The second version of each package, which is a separate derivative
Work (see footnote 1), is a *binary-with-source distribution* that has
the following properties:
1. The files that need processing (ie, Lisp) are in the right
place.
2. The objects produced by processing them (ie, the .elcs)
automatically are installed in the right place (ie, next to
the corresponding .el). The required processor is part of
the core XEmacs binary and its associated Lisp.
3. The auto-autoloads.el file is produced by a processor which is
part of the core XEmacs binary and its associated Lisp.
4. Other data files are in the right place; they can be edited to
the user's taste in place.
5. We provide prebuilt auto-autoloads and .elcs for convenience.
There is no need for a Makefile, because everything that needs to be
edited or rebuilt is already in place. If a new entry point has been
added, M-x update-autoload-files rebuilds the auto-autoloads file.
Then M-x byte-recompile-directory will do everything that is needed.
Installing other than to an installed XEmacs package tree is not
required; our *binary-with-source distribution* is restricted by
design to use in that context. Installing, other than by unpacking
the tarball, is not required; our *binary-with-source distribution* is
designed to be unpacked in the installation destination. Creating the
tarball, whether upstream-style or an XEmacs *-pkg.tar.gz, is not
required, because the tarball is the *medium*, not the *message*. If
you want any of those features (and they are all desirable, of
course!), you would be well-advised to use either the XEmacs CVS
repository version or the upstream AUCTeX version.
In other words, you have to look at what we actually *do* distribute
as a "binary-with-source" distribution to see whether it really is
necessary to distribute Makefiles etc for it. The GPL doesn't say
"you must provide all the infrastructure needed to set up as a
competing distributor". The GPL doesn't say "you must provide a
source package in the same format that you received it". The GPL
doesn't say "you must provide sources that can be used to build all
the configurations imaginable." It says "you must provide the sources
for the executable you distribute, as well as the scripts used to
build it." We do. It happens that AFAICS no scripts are needed to
build the executable.
Furthermore, in practice *no scripts are used* to build from the
"binary with source" distribution. I do edit and rebuild packages in
the installed tree frequently, and have never felt a need for a script
(with the single exception of rather old versions of VM---for which we
*do* provide the Makefile!)
It's possible that the generic description above doesn't apply to the
AUCTeX package in particular, but I've seen no specific description of
such features of AUCTeX.
It is true that a script is used in building the distribution, and
therefore the specific instance of the executable in the tarball. The
literal interpretation of "scripts used to build it" as meaning "in
the physical history of the distributed executable" is plausible, of
course. But I think the interpretation of "used" as hypothetical (ie,
"scripts used to build it [in case you had modified it]") is more in
keeping with the intent and spirit of the rest of the GPL, which tries
to give maximum freedom for creating derivative works attuned to user
needs, without sacrificing those users' freedoms to "change the
software or use pieces of it in new free programs".
Footnotes:
[1] This is trivial. If you change one comma, you have produced a
derivative work. So, actually, we are trivally able to distribute
hundreds of different derivative versions of AUCTeX, at least two for
every patch in the CVS repository. To be pedantically precise, I
should say not "two versions" but "two classes of versions".
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta