[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RFC: proposed GPLv3 license exception draft
Re: RFC: proposed GPLv3 license exception draft
Fri, 24 Apr 2009 19:56:35 +0200
First off, thanks for everyone who provided comments on this issue,
on this list or off-list!
Below, I try to summarize the issues that have been brought up, and
will ask the FSF legal dept. about them; I'm writing the text mostly
as I will send it to them, adding some explanations. If I missed out
anything important, or formulated wrongly, then please by all means
correct me. Thanks!
1) The Exception does not take into account some types of outputs from
programs that Autoconf distributes, namely Autotest testsuite scripts
which are generated in a similar fashion as configure scripts; maybe
even other current or future script products; and also the output of
the autoheader, autoupdate, and autoscan programs.
Autotest testsuite and other scripts are created by the autom4te program
similar to configure scripts (the autoconf program is just a wrapper
around autom4te). It is our intention that all scripts be treated
similarly to configure scripts. Would it be sufficient to change
"configure scripts" to just "scripts" in the Exception, or would that be
The autoheader program generates, from the same input files as Autoconf,
a template header file config.h.in which contains stubs for symbols.
This template is then converted by the configure script into a header
file config.h containing system-specific details. The template should
be treated just like its accompanying configure script.
The autoscan program produces, from information gathered about project
source files, an initial stub configure.ac file that then serves as
input file to autoconf. The autoupdate program takes an existing
configure.ac file, and change somes constructs in them for conventions
and names which change from one version of Autoconf to a newer one.
For these two programs, it too would be desirable that their output be
covered by the Exception as well: the user should be able to use their
output in the same way as she would be able to use self-written
2) The definitions of both Covered Code and Eligible Output Material
could used some clarification, maybe informally. Recall that the text
for them was:
"Covered Code" is any source code and/or object code of Autoconf that is a
covered work under this License.
"Eligible Output Material" is Covered Code that is included in the
standard, minimally verbose, non-debugging and non-tracing output of the
version of Autoconf distributed to you under this License. Moreover,
"Eligible Output Material" may be comprised only of Covered Code that (a)
must necessarily appear in Autoconf-generated configure scripts and (b) is
required for those configure scripts to function.
It is not clear what "minimally verbose" means, and whether that may
just be a generalization of "non-debugging" and "non-tracing". More
generally, it is not clear that the "verbosity" concept deals with the
contents of the produced script, as opposed to, say, warning messages
output during on standard error a run of the autoconf program.
The "must necessarily appear" makes for several questions:
- What about trivial additions like comments and white space, which
aren't necessary for the functioning of a script, but certainly
helpful to have; it would not be good if the Exception required us
to remove them. Are they Covered by the Exception?
- It may even be construed that any extra code added to configure.ac
besides AC_INIT and AC_OUTPUT (two macros that cause a minimal
configure script to be generated) may fall outside of this, if the
meaning of "necessarily" is read suitably narrow. So it seems some
kind of dependency upon the user- and third-party-provided input to the
configure script should be acknowledged, as in: "must necessarily appear
in Autoconf-generated configure scripts that provide the functionality
desired by the user/specified in the input files" or similar.
Further, it is unclear whether the formulation is strict or specific
enough to really prevent abuses. More precisely, could it be necessary
to specify the intended semantics of the script produced by autoconf,
for example as "functionality required to configure a software project"
or so, in order to prevent that a third party takes Autoconf, modifies
its purpose as "to create a configure script and also copy all of its
input to its output" and thereby circumvent the Exception.
3) It is unclear whether configure scripts which fall under this
Exception really can be treated as they could with the old GPLv3
exception clause. Specifically, while the second introductory sentence
of the Exception states
The purpose of this Exception is to allow distribution of Autoconf's
typical output under terms of the recipient's choice (including
clause 1. only speaks of "permission to propagate output". Is that
enough to allow
- distribution of the relicensed configure script without having to
distribute alongside a copy of the GPLv3 and of the Exception text,
if only to make it clear that this distribution is permitted?
A requirement to provide a copy of these texts alongside would be
very undesirable for users, as their project may not otherwise need
to contain any GPL-related text at all.