The next step

Simon Marlow simonmar@microsoft.com
Sun, 3 Jun 2001 11:34:16 +0100


> > Maybe the right thing to do is to make the choice of license a
> > fundamental part of the hierarchy?  That is, we could have:
> >  =20
> >   Core   -- all under BSD license
> >      Core.Control
> >      Core.Numeric
> >      Core.User
> >      Core.Org
> >      ...
> >  =20
> >   LGPL   -- all under LGPL license
> >      LGPL.Control
> >      LGPL.Numeric
> >      LGPL.User
> >      LGPL.Org
> >      ...
> >  =20
> >   GPL   -- all under GPL license
> >      GPL.Control
> >      GPL.Numeric
> >      GPL.User
> >      GPL.Org
> >      ...
> >=20
> > And then we can impose restrictions like "Core can only import other
> > Core libraries", "LGPL can import Core and LGPL but not GPL", etc.
>=20
> 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.

The restrictions on dependencies between code with different licenses
are probably important though.

Cheers,
	Simon