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