[Mono-list] System.CodeDom.Compiler licensing issues (was Hmmm...)

James Michael DuPont mdupont777@yahoo.com
Thu, 23 May 2002 04:55:07 -0700 (PDT)


Miguel, 

I have been pretty quiet on this list up to now,
so Please excuse my interruption, 

My thinking on this issue comes from a different
context, but I might have some interesting information
for you to add at this point.

Of course I am not speaking for the GNU, GCC or MONO
project here, just speaking my mind on this issue.

Hopefully you find this topic as interesting as I do.

Garrett Serack wrote :
> > So, I started thinking that Mono has a c#
> compiler, and I wonder if you 
> > think it would take me much work to adapt that for
> use in a scripting 
> > solution.

Miguel de Icaza wrote:
> It is an interesting project, but not a straight
> forward one.

Garrett Serack wrote : 
> > This would go nicely with an open-source(BSD
> License) VSA replacement 
> > I'm currently working on, and I'd like to support
> more languages, 
> > without the need for the end application to rely
> on the full Framework.

Miguel de Icaza wrote:
> The Mono C# compiler is under the terms of the GNU
> GPL, just be aware of
> that.

If I may add my two cents here, 
The mixing of GPLed core and a non-gpl is probably not
what is wanted.

It would open MONO up to people not having to
contribute their changes, taking the wind out of the
project and creating islands of differently licensed
code and people just running away with the ball.

Of course the question is what is linking and what is
a derived product will be quite interesting in such a
dynamic environment like C# and IL.

I wonder how you define the boundaries of the GPL
license in MONO or for any C# program for that matter.

Allowing for invocation of the compiler as a module
would require its embedding, but 
If you have it is as an ASP.NET
System.CodeDom.Compiler provider, then it would make
any web page using that feature somehow derived.

To quote the MSDN page

<SNIP
href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemCodeDomCompiler.asp">
The System.CodeDom.Compiler namespace contains classes
that can be used to manage the generation and
compilation of source code in supported programming
languages based on the structure of Code Document
Object Model (CodeDOM) source code models that contain
elements provided by the System.CodeDom namespace.
</SNIP>
In fact, the entire question of the implementation and
the licensing of the System.CodeDom.Compiler
implementations for GPLed programming language
implementations will become very tricky. 

All of a sudden you are opening a very large whole in
the GPL to create any front and back ends for give
languages with an explicit API for the end user to be
able to generate code on the fly. 

According to the 
http://www.go-mono.com/faq.html#licensing 
"And the class libraries are released under the terms
of the MIT X11 license."
You will have to link then implement the ASP.NET
classes which are under the X11 license then using the
GPL. 
This is a contridiction! Or you will have to
reimplement the entire parser and compiler as X11. 
Or you will have to move that entire part under GPL,
and then you have the linkage problem again.

This could be used to circumvent the GPL on more
levels then we can imagine.

On the other side, non-free software does not have
these problems, you cannot use the code without a
license, and it is very simple. The GPL gives you many
freedoms, but it is very fuzzy on the areas of linkage
with dynamic language and libraries.

That is one of the reasons that the GCC is not
distributed as a DLL, even if technically feasible, it
has been requested at a high level not to do so to
avoid potential abuse.

The MONO project team being closest to this particular
area will have to some serious thinking about how they
want their code to be used/abused and if they are
going to implement some guidelines on how this issue
will be dealt with.

Best Regards,
Mike


=====
James Michael DuPont

__________________________________________________
Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.com