Simple Public License, draft

Justin Wells jread at semiotek.com
Thu Sep 2 16:12:07 UTC 1999


On Wed, Sep 01, 1999 at 11:41:55PM -0000, bruce at perens.com wrote:

> Do you really have someone pressuring you, or is this some internal pressure?
> I'd like to hear more about what factors (including other available software
> and its licenses) brought you to this point.

It's not someone pressuring me. It's external pressure. There are several 
different OSS programs available in the same area, none of which really 
do exaclty what WM does, but they are close enough, and a few of them are
under much less retrictive (BSD/Apache/LGPL) style licenses.

About 20% of the people who use my software do things the GPL forbids, 
which is a lot of special exceptions to have to make. And of the rest, 
many probably think they might need to do that as well. 

It's becoming clear I need to move to a library-style license. I can't 
use the GPL to force people to make more free software, since they would
just switch to an alternative way of doing things.


> I am not convinced that this is an improvement over other licenses available
> to you, particularly the LGPL. First, it has some clear problems with OSD
> conformance - making me question whether it is in truth less restrictive than
> the GPL.

(I've attached the latest SPL to the bottom of this message, including 
the changes I've made so far in response to this list.)

I'd like to hear more about the OSD conformance issue. What I posted is 
a draft, and I am certainly willing to change and adapt it--which is why
I brought it here.

It's trivial to show that my license is less restrictive than the GPL, 
since: (a) it allows you to use the GPL, and (b) there are things
you can do under the rest of my license that are forbidden by the
GPL (which in the case of my software, include things that 20% of
the user base is doing, and most of the rest think they might
someday do.)

> Second, by creating another license, you add to the general confusion
> about licenses because there's one more license for programmers to read and
> deal with. Thus, it's important that there be a strong justification for every
> new license. 

I realize this. The strongest points are:

  a) Something like a third of my users have never heard of the
     GPL/LGPL before, and many have never used free software (my
     software is a Java development framework, half my users run
     NT). The GPL and LGPL are very difficult to read, and many
     people give up in frustration and email me, asking what it
     means. This costs me time, subtracting from the amount of time
     available to write software, play Go, go to movies, and have fun.

     So I do have a substantive concern about the readability of 
     the GPL/LGPL, based on actual hours I've lost to the problem,
     hours of my life which I will never get back. 

     I now insist that any license my software appear under be 
     easy to read by average humans, and not too long either.

  b) I want to allow some non-free use of my software, but I am not 
     really willing to open up the flood gates and allow any non-free
     use. It doesn't seem that the LGPL is a complete help here--its 
     way of restricting proprietary use does not really fit what I am
     trying to do.

  c) I want to guarantee that I get access to any modifications in
     some convenient form; the LGPL only requires that the modifications
     to the library be available under the LGPL to the people who
     received a copy of it (which may not include me).

  d) I want the right to include some or all of the modification in 
     my software, and have the ability to loosen the license again 
     in the future. The LGPL would prevent me from loosening.

I view (d) as a "would be nice to have" issue, and (a), (b), and (c)
as being important.

Obviously (b) needs more explanation. In my particular case, I want to 
allow people to include my software, link against my software, and use 
my software as part of proprietary applications--but I do not want them
to be able to make it available as a library to users of those non-free
applications at all.

The LGPL only goes part way. It prohibits making the library itself 
proprietary, but it does not prohibit making the LGPL'd library available
as a library within a non-free product. 

The non-compete stuff I added to the SPL was one way of trying to 
accomplish what I wanted; I would be happy enough to change it to 
some other mechanism.
      
One problem is that most of those other mechanisms would require 
enumerating the rights that apply under different circumstances. That
would make the license longer and harder to read. What I've done is 
enumerate a single universe of rights, and then imposed restrictions
on that universe under some circumstances. (Grep through the license
for the term "basic rights" and you'll see what I mean--I use that 
term a lot, rather than enumerating rights everywhere.)

> I'm also inclined to discourage non-attorneys to produce licenses this
> complex without the advice of an attorney, as you may be leaving lots of
> room for interpretation and problems with enforcement that can come back
> and bite us later.

I'm certainly not going to have an attorney look at it, however I have 
access to a good barrister who specializes in electronic intellectual
property law. I'm not going to waste his time, though, until I have 
something that has the right ideas in it. At which point I'll have it
reviewed for correctness, loopholes, etc.

I think an additional advantage of a license written in plainer English
than most is that it is more likely to survive across jurisdictional 
boundaries, by not relying so heavily on specific legal terms such as 
"attorney" and "barrister", which have very different implications
under different legal systems.

I'm being pedantic about the term attorney only to make a point.


> >   Finally, you agree not to use our software to create a competing
> >   product, meaning one which includes some part of our software, and
> >   which has, at least in part, a similar purpose.
> 
> Sorry, this clause isn't compliant with the Open Source Definition. It's a
> restriction on both use and distribution. I don't think you can prohibit
> forks without breaking the OSD, _but_ you can assure yourself of getting
> access to any good software that is in the fork so that you can put it
> in your own source thread.

I'm not only interested in forbidding forks, and this paragraph is really
aimed at people who want to make a competing *non-free* application; 
anyone who wants to make a competing free application can do so under
the GPL, and they are allowed to fork via the GPL as well.

Obviously it doesn't specifically say "non-free applications", but since
I don't provide any other rights that the GPL doesn't provide, it's 
equivalent. (Or so I think, always worth saying :-)

I am curious to know exactly which OSD property is violated by this
term. It does NOT restrict the distribution of my software, it only 
restricts what you are allowed to do if you modify or use it. 

Derived works: 
  The license DOES allow derived works and modifications, though
  it does not permit ANY derived work or modification. The LGPL
  also does not permit ANY modification, and restricts some kinds
  of use, so this term alone is not sufficient to raise an objection.

No discrimination against person or groups:
  The license does not discriminate against any person or group of 
  people; all persons and groups are similarly restricted

No discrimination against fields of endeavor:
  The license does not discriminate against any particular field of 
  endeavor, such as "in a business", or "for genetic research". All
  fields of endeavor are similarly restricted.

It's not immediately obvious to me what restriction this term violates,
though I may have missed something.

Also, hopefully by now you have an understanding of why I wrote this
restriction, so I am open to other suggestions that would accomplish 
something similar, but perhaps in a way that does not run afoul of
anything. 


> >     b) You will first send a source-code copy of your modifications
> >        to us, in a convenient electronic form.
> 
> This clause has been rejected in several other licenses, including Apple's
> and IBM's. The problem is that distribution creators like Debian would have
> to track down licensees and send modifications before every little change in
> a beta release, etc., really after every edit they make, creating an odious
> administrative load on their projects.

This is a very good point. I'm going to think about it, but at the moment 
I'm inclined to agree with you and adopt the URL approach you suggest.

> >   These obligations do not apply to copies of software that you place
> >   under the GNU General Public License, version 2, as published by
> >   the Free Software Foundation ("GNU GPL").
> 
> You should add "or any later version" after "version 2" here.

This "or any later version" has always bugged me. What if the FSF loses 
a lawsuit against Evil Corp., and in order to pay a judgement, all of 
the FSF's intellectual property rights are awarded to Evil Corp.; which
then releases a version of the GPL which allows Evil Corp. to make 
proprietary use of any GPL'd software.

Maybe it would be safer to write, "or any later version which Richard M.
Stallman personally approves of", assuming that RMS is strong minded 
enough never to join a cult run by Evil Corp.'s president :-)

That's why I don't do it. If someone can convince me that this would 
never happen, I don't mind adding the "or any later version", but in 
the past, for this reason, I have always specified an exact version
of the GPL for my software.

Justin

- - -


                        Simple Public License 

                        (c) 1999 Justin Wells
                         All Rights Reserved 

                  *** DRAFT: NOT A LEGAL DOCUMENT ***

This license permits you to use our software for free, to create
proprietary applications based on it, and to share modifications with
other users. It discourages code forking and requires you to credit
us, but you can opt out of those restrictions by releasing under the
GNU GPL. Since it's free, there is no warranty and we accept no
liability. This paragraph is not legally binding, the actual terms
follow.


WHAT AND WHO:

  "Our software" refers to the software covered by this license:
  WebMacro (www.webmacro.org), a software package consisting of a
  template language, servlet development library, example code, an
  API, design, documentation, and other materials. Its purpose is to
  provide a development framework and script language to assist with
  the development of servlets and web software.

  "We", "us", and "our" refer to the owners of our software: Semiotek
  Inc., and it's agents.

  "You" and "your" refer to prospective users and licensees who want
  to acquire a right to use our software under this agreement.


OWNERSHIP, TERMINATION, AND APPLICABILITY:

  You agree with us as follows:

  Our software is our property, and it is copyrighted and licensed,
  not sold. You have no rights to our software, except for those
  provided by this license. If you breach the terms of this license,
  and fail to cure the breach within thirty (30) days of becoming
  aware of it, then you must cease all use of our software, as your
  rights to use it are then terminated.

  You are not required to accept this license, since you have not
  signed it. However, nothing else permits you to use our software.


DEFINITION OF BASIC RIGHTS:

  The "basic rights" to software are as follows:

    The right to use, copy, reproduce, distribute, display,
    perform, and sublicense the software, and to charge a fee
    for any of these purposes.

    The right to create a "binary application" based on the software,
    by compiling and/or linking the software with your own separate
    source material to produce a binary executable or library; and
    to have these "basic rights" to that binary application.

    The right to create a "modified version" of the software, by
    adding, deleting, editing, changing, fixing, or otherwise altering
    the source files, APIs, documentation, and other materials that
    constitute the software; and to have these "basic rights" to that
    modified version.

  These basic rights are world-wide, non-exclusive, and irrevocable.
  They include a limited grant under any patent right, trademark, or
  copyright that may apply to the software, minimally sufficient to
  allow full enjoyment of the other basic rights.
  

YOUR RIGHTS:

  We grant you the above "basic rights" to our software, conditional
  upon your fulfilling your obligations under this license.


YOUR OBLIGATIONS:

  Your obligations under this license are as follows:

  If you distribute a "binary application" based on our software you
  agree to credit our software in your documentation, and to mention
  where it can be obtained for free (such as a URL).

  If you distribute a "modified version" of our software you agree
  that:

    a) Your modified version of our software will not be less free,
       meaning that it, and any software it depends on for normal
       functioning, will be available to the public under a license
       which grants everyone the above basic rights, without imposing
       any additional restrictions.

    b) You will first provide us with access to your modifications, in
       a convenient electronic form. For example, you could e-mail 
       them to us, or provide us with the URL of a website from 
       which we can download them.

    c) Anyone who receives the modified version will also be bound
       by these terms, and you will cause them to know it.

  Finally, you agree not to use our software to create a "competing
  product", meaning one which includes some part of our software,  
  and which has, at least in part, the same purpose as we stated
  for our software in its definition.

  These obligations do not apply to copies of software that you place
  under the GNU General Public License, version 2, as published by
  the Free Software Foundation ("GNU GPL"). Thus you can use our
  software to create software that is covered by the GNU GPL.


NO WARRANTY AND NO LIABILITY:

  Use our software at your own risk: it may contain bugs, may fail
  to function correctly, and has been provided without support or
  maintenance of any kind.

  There is NO WARRANTY for our software: it is licensed to you on an
  "AS IS" basis, without even the implied warranties of fitness to
  purpose or merchantability. You are solely responsible for determining
  the appropriateness of its use.

  Under no circumstance will we be liable for damages arising from
  the use, misuse, or inability to use our software, no matter
  whether they are direct, indirect, special, incidental, or economic
  consequential damages, or for damages resulting from a third
  party claim, even if we have been advised of the possibility of
  such damages.

                  *** DRAFT: NOT A LEGAL DOCUMENT ***




More information about the License-discuss mailing list