Open/Free Licenses (was: propose: `cypherpunks license' (Re: Wanted: Twofish source code))
shap@eros.cis.upenn.edu
shap@eros.cis.upenn.edu
Thu, 15 Oct 1998 14:22:34 -0400
The following comments are made in connection to deciding licensing
for EROS. Mark will of course make his own determination for E.
> The GNU GPL is a true copyleft: it says that modified versions of the
> program must be distributed *as a whole* under the GPL....
> The MPL is incompatible with the GPL because it does not give
> permission for this.
It seems to me that there are two entirely separate issues here:
1. Does a given open source license require that a modified program
be distributed as a whole under that license -- this is the issue
of ``contamination.''
2. Does a given open source license require that a modified program
be compatible with GPL.
In the case of EROS, it is my present intention to be incompatible
with GPL because my goals in distribution are not consistent with
those of FSF. My view is as follows:
1. I'm happy to have people use and enhance this stuff.
2. I'm happy to see people have the source code and modify it.
3. I'm happy to see third parties make money by performing
modifications.
4. Given that I've seeded $1.5M into the EROS effort and I'm giving
it away, the quid pro quo is that I want to use certain kinds of
modifications any way I want -- even to distribute them IN
PROPRIETARY FORM. This will not prevent the originators from
giving those same modifications away, and as a practical matter I
will also redistribute them without charge under most
circumstances.
The last term is incompatible with GPL as I understand it. Under GPL,
I would not have any right of proprietary sale in regard to
third-party modifications.
The particular areas that I especially wish to retain rights around
relate to subsystems that are part of the trusted computing platform:
the kernel and a few vital objects. In a trusted system, there are
code qualification issues in integration that have considerable cost;
significantly higher than in most development activities. Also, I
want to be able to incorporate new drivers as they come along -- here
I am glad to see them in free form but need to be able to incorporate
them in the system sold in proprietary form.
I suppose the bottom line is this: I've put $1.5M+ into EROS. If
people use and modify this stuff, and I don't charge them, I feel
entitled to some alternate payback (albeit not in cash). I'm willing
to consider other approaches to encourage collaboration and public
good, but arguments predicated on the notion that anyone has a
``right'' to my work are at this point likely to result in loss of
arguer teeth. [Sorry, Richard -- not personally directed. It
sometimes seems that most of the people who want me to GPL this stuff
are kids who won't make the investment to do it themselves, don't
understand the sacrifice involved, and somehow feel entitled to a free
ride on my much-depleted bank account. I'm very tired of those
people. I *do* recognize that they don't speak for FSF or for you.]
I presently have in mind to use a license based closely on MPL. Under
the modified license, new code that gets linked into existing programs
and distributed is *granted* on a non-exclusive but unrestricted basis
to me, and I am free to sell that modification in binary-only
non-redistributable form if I can convince anybody to pay for it.
If I permit GPL contamination, I give up rights to second generation
modifications, which I am unwilling to do. If this issue were
resolvable, or if there are ways to achieve some of my market goals
under GPL, I would be willing to use GPL.
All that being said, there are a number of parts of the system that I
would be willing to distribute under LGPL or GPL. I shall give some
thought to where the benefits of this outweigh the complications of
multiple licenses.
As a practical matter, my constraint is less onerous than it might at
first appear. Most parts of the EROS system are isolated by program
boundaries, and people writing new parts are encouraged to adopt such
program boundaries in any case. New effort of this form can be GPLd
without conflict. Libraries distributed with EROS by me will be
distributed under LGPL or similarly non-contaminating licenses. Mere
use of a restrictive (in the sense of granting me proprietary
redistribution rights) object in the original system will not be
deemed to contaminate the using program (conceptually think LGPL with
the unit of contamination moved to the process boundary).
Jonathan