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



Reply via email to