Simple Public License, draft

Justin Wells jread at semiotek.com
Wed Sep 1 23:56:11 UTC 1999


On Wed, Sep 01, 1999 at 05:27:52PM -0400, Ian Lance Taylor wrote:

> It's very hard to determine whether two products compete with one
> another.  I wouldn't call a license which puts that burden on me
> ``simple.''

I agree.

I tried to deal with that in this license by defining "competes" 
to mean "has the same purpose", and including at the top of the 
license an explicit statement of what the purpose is. Effectively, 
preventing non-GPL use of the software that matches that stated
purpose.

Maybe it would be better just to say that directly in the license 
rather than trying to define "competes". Something like, "You agree 
not use our software to create software that has the same purpose, 
as defined above."

If this is still considered too complicated, then I am open to 
other suggestions. 

> Suppose you simply release the source under the GPL, and make it clear
> that you will permit a nontransferrable source license which fewer
> restrictions on a case by case basis?

This is exactly what I do now, and it's getting in the way of progress:
it makes accepting contributions rather cumbersome. 

Worse, what if I leave the scene? Then there would be nobody around
authorized to maintain the non-GPL version, and nobody to grant
the case-by-case exceptions. The project should be able to survive
without me, given enough interest from its users.

So it must be possible for users of my software to share their
fixes and updates with one another, and use the software for ordinary
purposes, even if I am dead, or even just on vacation.

That would normally lead to the LGPL or the MPL, but as I mentioned, 
I was not completely satisfied with those.

  - - 

Maybe it would help if I put this all into context--if you know more 
about what I'm doing, then you will have a better understanding of the 
licensing needs that motivated me to propose the Simple Public License.

My software is a back-end Java servlet development library. It helps 
you generate HTML out of a back end program written in Java, and
provides a framework for servlet programming. That puts it roughly
in the arena that JSP, ASP, PHP, etc., live in, in terms of what 
kinds of people would be using it.

A common use of this kind of software is that a consultant wins a 
contract to build the back-end for some clients website. They decide
to use my library as part of this project. Often they can do this
under the GPL, but sometimes they require a less restrictive
license--and I have no objection to people using my software this
way for free.

Another potential use of my software is that some large company might 
integrate it into a development toolkit and charge money for selling 
such a toolkit. I am less sure I want to give this away for free, 
especially if they fork off their own version of my software and 
leave me out of the picture. On the other hand, I have no objection
to someone creating a free development tool under the GPL and
integrating my software library into that.

So I would like to let people use my software to build proprietary 
applications; but restrict people from using it to create proprietary
development libraries or tools. And I would like to let people do 
more or less whatever they want, if they do it under the GPL.

I could handle this particular case by specifically disallowing
use of my software in a proprietary development library, or
proprietary IDE, and so on. However I wanted to generalize the idea
of this kind of prohibition on non-free use, so that it would make
just as much sense in other kinds of software, not just libraries
that are in my particular circumstance.

Therefore I introduced the "non-compete" clause, and caused it to 
depend on the definition of the purpose of the software, and stated
the purpose of the software at the top of the license. A different
software package would state a different purpose there, changing
the restriction imposed on non-free use.

Now that you see what motivated me, perhaps you can think up a better
solution to this problem, or a modification to the SPL that would 
be a bit better. 

Justin




More information about the License-discuss mailing list