I have a number of concerns about wording of the ConTeXt license (as given
in the readme file), which I'd like to bring up. In virtually all cases,
my concern is simply that the actual wording of the license does not appear
to be sufficient to provide the permissions that it intends to -- that is,
the letter of the license does not live up to its spirit.
(Note that I am not a lawyer, and that none of the below comments should be
construed as legal advice.)
I'm going by the text on http://wiki.contextgarden.net/Read_Me, which I
believe to be the current version.
----
First, starting with section 3.1: "ConTeXt is available as free software in
the spirit of the gnu general public licence."
"In the spirit of the GPL" is not really useful in a license -- my idea of
what's "in the spirit of" may be vastly different from Hans's idea of
it. So this unfortunately offers nothing solid with regards to
permission. It is, at best, a statement of intent.
So, what else is there in the license that actually and clearly offers me a
grant of permission to redistribute? I can find only the following:
"2.7: ConTeXt is available for free for everyone who want to use it.
Distributors are free to choose between the latest official release and the
(in most cases stable) beta version."
"7.2: We hereby grant permission to the de facto official TeX distributors
teTeX, fpTeX and TeXlive to replace this licence with their own, i.e. their
licence may supersede or enhance this one."
"7.3: ConTeXt may be distributed as part of a public distribution in the
spirit of free distributions."
In addition, there is the following comment, which appears to be a
restriction, but is relevant here:
"3.3: The official version (i.e. the original zipped archive recognized by
the prefix cont-) may only be redistributed as a whole and under this licence."
To analyze those in turn: 2.7 does not offer any permission to
redistribute; all it appears to offer is that ConTeXt will not charge for
downloads. It implicitly offers "distributors" the opportunity to
distribute the latest official release and the beta version, but it does
not offer permission for any other versions.
Of the items in section 7, 7.2 is not useful to the end user, as teTeX seem
to incorporate the existing license rather than superceding it. Section
7.3 is, again, merely a description of intent with "in the spirit of"
language rather than a clear grant of permission.
Finally, 3.3 appears to restrict all distributions of any part of ConTeXt,
as there is no "unofficial" version available from Pragma, and there is no
provision for anyone else creating one -- we can only redistribute the
"official" version as a whole, and thus it remains the official version.
Thus, in sum: there is what appears to be an implicit grant for people to
distribute the latest release or the current beta version, so long as it is
complete and unchanged.
There is nothing that I see as a clear grant of permission to distribute an
unofficial modified copy, nor of permission to extract a portion of the
code for use in another project, except for the "in the spirit of the GPL"
language, which is IMHO very insufficient for this.
Further, there is not even a clear grant of permission for the distribution
of non-current official versions, aside again from the "in the spirit of"
language.
----
Suppose that we consider the above issues to be addressed, by treating
section 3.1 as saying effectively "The permissions granted under the GPL
are also granted by this license."
Let us now consider how the rest of the license actually agrees with that
(and with section 4.1: "This sections will not introduce limitations in use
that conflict with the gnu general public licence.").
First, section 2.7, as quoted above. The GPL would allow distribution of
any released version, whether current or not. It is not clear whether 2.7
is supposed to be a restriction of this or merely a statement about what
Pragma offers.
Section 4.2: "However, the interface of such modules should fit the general
scheme philosophy." In the context of a file which purports to be a
license file, this appears to be a legal requirement, not merely as a
friendly guideline. If treated as a requirement, this would not be in the
spirit of the GPL.
Section 4.3: "Keywords and command names should conform to the already
defined ones and therefore not clash with existing functionality." Again,
same problem as 4.2.
Section 4.5: "This also means that for instance in the texmf directory
structure, the context/base, context/extra and context/sample locations are
reserved for the official distribution." This prohibits the distribution
of a modified unofficial version, which is contrary to the spirit of the
GPL, though perhaps in the spirit of the LPPL. It also appears to restrict
what I can personally do on my own computer, which is definitely contrary
to the spirit of the GPL.
Section 4.8: "When adapted versions of ConTeXt are distributed, these
versions must contain the original distribution as a separate item." This
prohibits me from taking, say, thirty lines of ConTeXt code and using them
in a LaTeX package I'm writing (with, of course, appropriate citation),
unless I distribute the entirety of ConTeXt with the package. This is very
much contrary to the spirit of the GPL.
Section 4.8, again: "The runtime versions (format files) must have
different names...." See all the discussions on the Debian mailing list
about whether this is in the spirit of Free Software. The latest version
of the LPPL backs off slightly on the "no using the same filename"
restriction, for this reason. It is also unclear whether the
"\mycntxt\base\cont-xxx.tex" is a "different name" from
\context\base\cont-xxx.tex" or not; I think this should be addressed.
Section 4.8: again: "... and changed files must have an additional
\writestatus message, expressing that something is changed." This, at
present, would seem to apply to anything that uses any ConTeXt code, even
if it is very obviously not part of ConTeXt (e.g., the hypothetical LaTeX
package mentioned earlier). If taken as a general restriction, this is not
in the spirit of the GPL, in my opinion; the restriction should apply only
to things that could otherwise be mistaken for an official distribution.
Section 4.9: "Those who write extensions or change files, must make sure
that the original ConTeXt does not suffer from loading the wrong
files." This is a restriction on parts of my system that may not be
derived from ConTeXt at all, which is definitely against the spirit of the
GPL. It is fair to place this as a restriction on "systems that include an
Official distribution of ConTeXt", however.
Section 4.11: "The functionality however must not be changed." Again, this
is contrary to the spirit of the GPL, unless it is restricted only to
things that are described as official releases of ConTeXt.
----
Some miscellaneous comments on things that are otherwise unclear.
Section 4.7: "Distributers may add configuration settings to cont-usr and
cont-sys." It's not clear who qualifies as a "distributor" in this statement.
Section 4.11: "The auxiliary programs may be adapted to local conditions,
such as operating systems specifics. The functionality however must not be
changed." It is not clear here what is an auxiliary program.
Section 7.4: "Each distribution of ConTeXt should include a copy of this
text." Is a "distribution" the entirety of ConTeXt, or is it anything that
includes any ConTeXt code? Does this mean that I need to include the whole
text about Pragma's ConTeXt philosophy with anything that uses any ConTeXt
code?
----
Some final notes:
The redistribution requirements include the requirement that the text of
the README file/license be included in the distributed version. This is
incompatible with section 3.2, which says "This is the official version".
For that reason, and a number of others, I think that the license and the
readme should be separated -- and, in particular, there should be a clear
delineation between what are Pragma's statements about the official release
(including any promises of support), what are restrictions for
redistributing ConTeXt as an "official release", what is part of the
redistribution-as-free-software license, and what are friendly but
non-binding suggestions for making modifications in the spirit of ConTeXt.
My particular recommendation would be that the ConTeXt license should
explicitly offer me the following three options for redistribution, in
order to live up to its intent of being "in the spirit of free software":
1.) Redistribution of the entirety as an "official version of
ConTeXt". This requires that all of the compatibility and completeness
requirements be met. If the redistribution is part of a system, the entire
system must meet the compatibility requirements -- e.g., no overriding
ConTeXt functionality improperly. Redistribution must use the same license
as the official version, with exceptions for teTeX et al.
2.) Redistribution as an "unofficial version based on ConTeXt". This
permits redistribution of the system as a whole with modifications, but
requires that the distribution clearly distinguish itself from the official
version, and that it not call itself "ConTeXt" or be presented as
such. (This may also require inclusion of an official version as well as
the unofficial version.) The unofficial version must not install itself on
the /context directories of a TeX distribution, all changed files must
explicitly declare themselves to be changed, and so forth. Modifications
must include all source code, when appropriate. These redistributions
(including modifications) must use the same license as the original, again.
3.) Redistribution and reuse of portions of ConTeXt in other
projects. This permits reuse of up to (for example) 30% of the ConTeXt
code in other projects, without the requirements of distributing a full
version. These portions can be taken as licensed either under the GPL or
the LPPL, with no additional requirements other than provided by those
licenses.
I would be quite willing to elaborate on these suggestions, if requested.
- Brooks
_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context