Re: Open/Free Licenses (was: propose: `cypherpunks license' (Re: Wanted: Twofish source code)) 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