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