This email is mostly aimed at Miguel and Dick, but if anyone else has any
thoughts, I'd be glad to hear them.
So a few of Miguel's recent commits reminded me of one issue that I
haven't really addressed in MBuild: its license. Right now I haven't
explicitly assigned it anything. The Mono SoC guidelines say that
contributions should be licensed X11, but I'm pretty sure that that's not
the best choice for MBuild. My overall instinct is that its libraries
should be licensed LGPL and its programs GPL, because it is basically a
standalone system -- no one is going to be linking to its libraries except
to hook into the MBuild build system.
I also don't know if there needs to be any language about the output of
MBuild. I seem to recall that the autotools explicitly mention that,
basically, you don't have to GPL things built with the autotools. That
point seems unnecessary to me, but maybe it's not.
So: any thoughts?
Also, as a side note, do I really have to put a boilerplate copyright
notice in every source file? That just seems idiotic.
Peter
Here's a breakdown of the pieces of MBuild in finer grain for those
interested in the details:
* Mono.Build.dll, the basic build system backend. Linked to by everything
else. So maybe it should be licensed X11, but everything up the stack I
think should be licensed (L)GPL, and no one's going to link to this
outside the context of MBuild, so I think this could be LGPL too.
* Bundles. These are the build rule implementation modules (eg, there is a
C# compilation bundle and a Jay bundle). They link to Mono.Build.dll. The
fronted program loads these modules and uses them to execute a build.
Again, since a bundle is really only useful to an MBuild frontend, I think
they can be licensed LGPL.
* Monkeywrench.dll. This houses the code that builds the graph of targets
and actually runs the build. This is pretty much the most interesting part
of MBuild. Any program that wants to interact with an MBuild-built tree
will have to use this library, so LPGL.
* mbuild.exe: The main fronted program. No one would link to this. GPL.
* mb-bundlegen.exe: This program takes a bundle specification file and
uses it to construct a bundle DLL via CodeDom. I think this is also
GPL-able, but there might have to be a clause about what you can do with
the output it generates.
* Other frontend tools: might as well GPL.
--
Peter Williams / pe...@newton.cx
I Don't want to go into a licensing argument, but unless you
strongly want your
code to be (L)GPL, you should use MIT X11. It is a very simple license, and
doesn't require any thinking like the one below about whenever
somebody will need link to it or not. Also, you will never be asked by
anybody to relicense it, with GPL
code, it happens sooner or later.
Zoltan