The next step
Manuel M. T. Chakravarty
chak@cse.unsw.edu.au
Sun, 03 Jun 2001 23:39:35 +1000
"Simon Marlow" <simonmar@microsoft.com> wrote,
> > > Maybe the right thing to do is to make the choice of license a
> > > fundamental part of the hierarchy? That is, we could have:
> > >
> > > Core -- all under BSD license
> > > Core.Control
> > > Core.Numeric
> > > Core.User
> > > Core.Org
> > > ...
> > >
> > > LGPL -- all under LGPL license
> > > LGPL.Control
> > > LGPL.Numeric
> > > LGPL.User
> > > LGPL.Org
> > > ...
> > >
> > > GPL -- all under GPL license
> > > GPL.Control
> > > GPL.Numeric
> > > GPL.User
> > > GPL.Org
> > > ...
> > >
> > > And then we can impose restrictions like "Core can only import other
> > > Core libraries", "LGPL can import Core and LGPL but not GPL", etc.
> >
> > Doesn't look very attractive to me.
>
> Me neither. The license is meta-information about the source and should
> be entirely separate, so the author can change the license at will
> without breaking programs. Besides, it breaks our convention about
> organising the hierarchy by functionality.
>
> A better way IMO would be to separate licenses at the package level, so
> that within a package all the code has the same license. This gives a
> good separation between code with different licenses, while still
> allowing code which uses libraries from multiple sources to be written
> with minimal hassle.
I agree.
> The restrictions on dependencies between code with different licenses
> are probably important though.
Actually, I don't think that either of you would like this
restriction. For example, assume I write a LGPL library A
and you need an extension to that library that you implement
as an independent second library B linking to A. By this
rule, you would *have* to use the LGPL yourself, although
you probably would have preferred to choose BSD.
In particular, Alastair might later (being fed up with me
and my preference for the LGPL) re-implement A as A' and
release A' under BSD. Now you still have B with LGPL and if
in the meanwhile you accepted patches from other people into
B under the LGPL, you would not be allowed to change B from
LGPL to BSD (unless you get the approval of all
contributors). Now, poor Alastair would have to
re-implement B, too - just because he proposed this
restriction ;-)
Cheers,
Manuel