[MonoDevelop] Licensing concerns.
Bernhard Spuida
bernhard@icsharpcode.net
Wed, 14 Jul 2004 11:30:32 +0200
Hi everybody,
it is somewhat saddening to see this kind of bickering going on.
First of all, I'd suggest
a) reading the GPL - not just skimming, but reading it. In my (sad)
experience most people tend to only look at the short text.
<http://www.fsf.org/licenses/gpl.html>
b) reading the GPL FAQ. <http://www.fsf.org/licenses/gpl-faq.html>
This way I am sure we will all form a common base for constructive
discussion.
Some points I personally find pertinent to the issue at hand are:
1) The definition of what is compatible licensing:
<http://www.fsf.org/licenses/gpl-faq.html#WhatIsCompatible>
"In order to combine two programs (or substantial parts of them) into
a
larger work, you need to have permission to use both programs in this
way.
If the two programs' licenses permit this, they are compatible. If
there
is no way to satisfy both licenses at once, they are incompatible."
For some licenses, the way in which the combination is made may
affect whether they are compatible--for instance, they may allow
linking two modules together, but not allow merging their code into
one module.
What does it mean to say a license is "compatible with the GPL".
It means that the other license and the GNU GPL are compatible;
you can combine code released under the other license with code
released under the GNU GPL in one larger program.
The GPL permits such a combination provided it is released under
the
GNU GPL. The other license is compatible with the GPL if it permits
this
too."
Regarding this it might also be worth reading this
<http://www.fsf.org/licenses/gpl-faq.html#OrigBSD>.
A list of licenses compatible and incompatible with the GPL can be
found here:
<http://www.fsf.org/licenses/license-list.html>
Please note that there seems to be quite a bit of confusion regarding
X-licenses. It is imperative that you set down *exactly* which one
you
refer to and then clear up with the FSF whether this would be
compatible
or not.
2) The licensing status of the monodevelop code as to date:
Monodevelop is derived from a GPL'd work. Therefore *all* code in
monodevelop is GPL'd by default.
<http://www.fsf.org/licenses/gpl-faq.html#IfLibraryIsGPL>
<http://www.fsf.org/licenses/gpl-faq.html#LinkingWithGPL>
Even though the term proprietary is used, this applies to all other
licenses (if not compatible in the sense of the definition above).
3) Licensing of future contributions:
"If I add a module to a GPL-covered program, do I have to use the GPL
as
the license for my module?
The GPL says that the whole combined program has to be released
under the GPL. So your module has to be available for use under the
GPL.
But you can give additional permission for the use of your code.
You
can, if you wish, release your program under a license which is more
lax
than the GPL but compatible with the GPL. The license list page gives
a
partial list of GPL-compatible licenses. "
<http://www.fsf.org/licenses/gpl-faq.html#TOCGPLModuleLicense>
This means in a nutshell that in monodevelop, the code would be GPL,
but
may be used *without* linking to the GPL'd code in other, independent
products under a different license. Or to state this in a different
manner: if your code *does not in any way implement or depend upon
parts
of the GPL'd code (even if they are 'only' data structures,
interfaces or
function calls)*, it may be dual-licensed. For a definition of
linking in
the GPL sense, refer to 5) below.
4) Tainting clauses in the GPL:
There are no 'tainting' clauses in the GPL. The LGPL was created
expressly to allow linking against code under different licenses.
And to adress a specific example given in this discussion:
>The 'Tainting' of non-GPL licensed code only happens when you ship
that
>code as a linked binary. As source, different files can retain their
>different licenses.
The same code cannot be licensed differently in binary or source
form. The code as such is identical, only the expression varies in
form.
5) Plug-in licensing:
"If the program dynamically links plug-ins, and they make function
calls to each other and share data structures, we believe they form a
single program, so plug-ins must be treated as extensions to the main
program. This means they must be released under the GPL or a GPL-
compatible free software license, and that the terms of the GPL must
be
followed when those plug-ins are distributed."
<http://www.fsf.org/licenses/gpl-faq.html#TOCGPLAndPlugins>
This is the case with the #develop/monodevelop plug-in architecture.
This hopefully contributes to a clearer understanding of the issues
at hand.
Regards,
Bernhard Spuida
#develop senior word wrangler
This email is confidential, and now that you have read it you are legally obliged to
shoot yourself. Or shoot a lawyer, if you prefer. If you have received this email in
error, place it in its original wrapping and return for a full refund. By opening this
email, you accept that Elvis lives.