I'm going to try this one more time. A long while ago I suggested a mechanism that would allow the multiple licencing of source files whilst ensuring the avoidance of doubt in any particular use.
The problem is that trying to apply the licence choice in each and every file results in a licence which is ambiguous, the three (or 4) licences are mutually incompatible and regardless of the merits of any one of the licences the combination is confusing and confuson in the matter of agreemments and contracts should be avoided at all times. So here is the mechanism. All specific licence language is removed from individual files and replaced with the following wordage, or similar. /************************************************************************** mozilla.org licenced file. This file is licenced under one of the approved licences as part of the mozilla.org organisation. The actual licence in force for this use of the file is contained in the file mozilla/licence/licence.txt or mozilla\licence\licence.txt. To comply with the mozilla.org approved licence and to allow Modifications and Amendments to be accepted by mozilla.org this header must be present and be intact and identical to mozilla/licence/standardheader.txt or mozilla\licence\standardheader.txt. Exceptions to this are certain files which have a NPL or MPL compatible licence and have been contributed using a different licence that has been accepted will not have this header. The current list of files excepted from including the header is in the file mozilla\licence\exceptions.txt or mozilla/licence/exceptions.txt The list of approved licences is in the file mozilla\licence\approvedlicence.txt or mozilla\licence\approvedlicence.txt A developer may choose a specific licence by setting the appropriate environment variable. SET MOZ_LICENCE= The current list of legitimate values are NPL-MPL,GPL,LGPL,ALL Depending upon the value of the environment variable the correct licence header is copied to the licence.txt file. Note this indicates the choice made it may not wholly comply with anyone licence. For example, to distribute the source file under the GPL licence alone the GPL licence language should be included in every file. ******************************************************************************************/ The ALL licence choice would copy the combined current licence language for when moving source trees and repositories. The NPL/MPL would need to be modified so that it could be indicated with a single licence file rather than in every single file but this is a small modification given the advantage it gives. Certainly it doesn't help GPL licencees that would have to add in the GPL licence language to every file but then they have to do that with the existing structure as well. The major advantages are, the licence in use is completely without doubt, the default would of course be ALL, The complication is really the NPL/MPL dualism since identifying which file is NPL and which MPL is a pain. To cope with this the licence.txt should indicate that the actual licence is either NPL.h or MPL.h and the file included in the source file itself. If its a file which is not preprocessed then the include can be a comment at the head of the file the name indicating which licence is in use. This is not ideal but the same kind of script as adding the GPL language could also add either NPL or MPL language if required. GPL/LGPL licencees can contribute back without specifically using any licence so long as the header was intact and no GPL language was in the file. It achieves the stated aim of having the source available to as many as possible whilst at the same time controlling mozilla.org's contributors and original developers. I'd like serious comment on this. Simon
