Software licenses are an vital topic for all developers, though industrial developers are often more acutely aware of them. It is therefore appropriate to give consideration to licenses as part of discussions for recommended standard OCaml libraries and Camlp4 extensions.
Developers are, of course, at liberty to release their code under whatever license they wish so long as it is compatible with the license terms of any other software the have leveraged in developing their own code. That said, the community is also at liberty to consider the terms under which a library or extension is licensed when deciding whether or not to recommend it as a standard.
The requirements that the community may have with regard to the licensing of libraries and extensions included in the standard could run the full range from minimal to prescribing a particular license. Some possible options are described below.
- The license of a contribution be clearly stated and that the contribution itself meet the terms of the nominated license. As Jim Miller writes:
- At a minimum, the requirement must be that the license type and version is specifically stated and that the requirements of the license are met by the developer (i.e. GPL and LGPL require that each source file have wording and a link to the license).
- The license be judged as complying with criteria agreed by the community. As an example, Eric Cooper suggests we consider the criteria adopted by Debian:
- The license be some existing well-known license. Jim Grundy notes that those who work for large corporations may not use software without having the license approved by corporate legal. Lawyers are expensive, and so companies don't hire spare legal capacity - the lawyers are always busy. Using an existing well known license that has likely already been analyzed by corporate legal makes the difference in this environment between being able to use a software component and not.
- The license be one of an collection known to be compatible with one another. It would be inconvenient if the standard contained two components with incompatible license terms so that no component could meet the license terms of both, and hence new components that leveraged both of them could could not be distributed. For example, the free software foundation notes on its license analysis page a number of licenses that it considers incompatible with the terms of various of its own licenses. This would appear to include, for example, the original (4 clause) BSD style licenses like the one available for OCaml for OCaml Consortium Members.
- The license be some particular required license. The seemingly obvious choice here would be the same license as available to all people for the OCaml Standard libraries, namely the LGPL with linking exception. Several people on the mailing list indicated that they feel this is too strong a requirement.