Simple Public License, Please Review

Justin Wells jread at semiotek.com
Thu Apr 6 01:10:18 UTC 2000


Hi Rod, thanks again for spending some time looking over my license. 
I've attached a copy of my license interspersed with explanation to 
this message, and below I answer the points you raised in your first 
message to the list. 

Thanks again--I really appreciate the help.


On Tue, Apr 04, 2000 at 09:52:26PM -0400, Rod Dixon, J.D., LL.M. wrote:


> (But, remember, nothing beats the assistance of a paid lawyer).

Definately. By trying this myself I am learning a lot about licenses
and copyright. What I learn changes my perception of what I want
to accomplish in an opensource license--if I had started out with
a paid lawyer, I'm not sure I would have known what to ask for.

Once I have fixed the license up as much as I can, and have a good
idea of what is or isn't possible in a license, I will be looking
for paid legal advice to debug and finalize the license.


> First, could you tell us what your framework is. By that I mean, what are
> you trying to accomplish and why?

I have a Java software library that is currently released under the GPL, 
and I am looking to loosen up the licensing slightly. 

What I want is:

  -- As short and simple a license as I can possibly have

  -- A good generic copyleft that cathces *all* "improvements" to 
     my software, but lets people off the hook if they only "use" it.
     More on this later.

  -- People who use copyleft software have an interest in the copyleft,
     and I feel they should be able to protect that interest.

  -- I don't want people bypassing the copyleft via an application server     

  -- I do want to be able to grant exemptions to the license without 
     having to collect copyright releases from everyone

  -- I don't want subversion of the copyleft by dependence on software
     or patents that are not free

  -- I want *prominent* credit for my work

  -- I want disclaimers that work in Canada too


> It's clear that you are promoting free software, but it is not
> clear why you seem to want a weak copyleft.

I want copylefting to ensure that I receive improvements to my software.
By "improvements" I mean anything which makes my software a more effective
solution--not just fixing bugs and adding functionality, but possibly 
linking my library up to a database in a genuinely useful way. That
would be an "improvement" but it would only link with my software. 

But, I don't want to force a copyleft on people who are simply making
use of my software. If they are writing some specialized software that 
incorporates the specific business practices of a particular industry, 
say dental offices, and perhaps even includes some trade secrets, then 
I can see why they might not want to release their source code. Also, if
they did, it wouldn't benefit me because it's not an improvement to my
software--it's just a use of it.

So I would like a copyleft that covers improvements to my software, but
allows ordinary uses of it. The LGPL is supposed to do this, but it is
too weak--a database module that connected to my software would be a 
useful improvement that only links with my software. 

My solution was to write a general purpose copyleft, and then knock a 
few holes in it that would allow consultants and contractors to make 
ordinary use of the software without a copyleft.


> Also, please do not forget to explain your use of the term
> "unmodified" in section 1. It is confusing.

What I mean in section 1 (and in section 5) is that you can redistribute 
the software exactly as you received it, including everything.

In section 2 what I mean by "unmodified" is that you can build derived
works using my original software, providing you don't have to change my
original in order to create the derived work, except that you can compile
it into a binary form. 

The language in section 1 might prevent Debian from distributing 
precompiled binaries, except that under section 3 they could create
the compiled binary as a "derivative work", providing they were willing
to release all the source code necessary to build it. 

Justin

-------------- next part --------------

1>                            Simple Public License 
2>                                 Version 0.9

I want this license to be short and easy to read, so I am calling it
the "simple" public license. It's 2 pages long. The LGPL is 11 pages.


3> "Our software" refers to the copyrighted work licensed under this
4> agreement. "We", "us", and "our" refer to the copyright owners. "You"
5> and "your" refer to each prospective licensee individually. 

Definitions to make the rest of the text flow more naturally. 

Any member of the public can be "You" in this license, although
each member of the public makes their own separate agreement with
the copyright owner.

"We" is a bit more tricky. At first glance it just looks like it's 
talking about me, the original author. But gradually it will grow to
include anyone who has ever contributed code to the software--they 
are a copyright holder, and will be part of the definition of "we" 
for people who receive code from them.

Since "our software" isn't well defined I expect people to put notices
on their software itself declaring that it is subject to this agreement.

6> We are willing to license our software to you at no charge only on the
7> condition that you accept all of the terms of this agreement: please
8> note the broad disclaimers of warranty and liability. You indicate
9> your acceptance of these terms by using our software.

I want to make it clear that the software cannot be used unless you 
agree to the terms of this license, and also try and make the disclaimers
at the end a bit more conspicuous by drawing attention to them in
the first section.

I am a bit worried about the acceptance criteria but this seems to be 
what most free software licenses do.

10> (1) "YOU MAY USE OUR SOFTWARE FOR FREE"
11> 
12> You may use and copy our software, or a compiled version of it, and you
13> may distribute, display, perform, and include as part of an aggregate
14> collection, verbatim copies of our software.

You should be able to download the software and use it on your computers, 
and you should be able to give verbatim copies of it, exactly as you 
received them, to anyone you want to. 

This might not let you created compiled binaries and distribute them, 
but you should be able to do that under section 3 if not.


15> (2) "YOU MAY CREATE NON-FREE APPLICATIONS"

16> You may create a derivative work based on our software by combining a 
17> complete unmodified copy of our software, or a compiled version it, with 
18> your own separate source materials. You may license the work directly to 
19> third party end users. Subject to your license, recipients may use the 
20> work on one or more computers, and may create backup copies of it, but may 
21> not otherwise copy, distribute, lend, sublicense, or adapt it.

If someone is just using the software to provide solutions to end users, 
and what they are doing isn't so much an improvement on my software as 
a plain old use of it, then I don't want them to be copylefted. This 
is basically a hole in the copyleft in section 3. 

The restrictions here are:

  o Your use of it doesn't require you to alter the original software,
    you work from an "unmodified" copy--presumably basically what you
    downloaded, only you probably compiled it first. 

  o You aren'te altering the software itself, but rather using it as 
    a part of a larger product--you have your own separate materials
    to add in to the mixture

  o You are providing the software directly to your customers, and 
    they are just simple end-users. In other words, you are not 
    mass marketing a development tool, or something else that might
    be a competing version of the free software (and thus an
    improvement that is not being shared).

  o The end users get only very limited rights: just enough rights to
    be end users. The derived work is a dead end--it can't propagate
    any further than this.

  o You are allowed to charge these end users money for creating 
    this stuff for them, and add your own license restrictions on
    top of the ones already imposed by this agreement. 

22> (3) "YOU MUST SHARE IMPROVEMENTS TO OUR SOFTWARE"

23> You may create other derivative works based on our software but you must
24> immediately make them available to the public, including all source code, 
25> free of charge, on or through a medium customarily used for software 
26> exchange. Recipients automatically receive an irrevocable joint offer from 
27> you and from us to use your work under the terms of this agreement, 
28> royalty-free, and without restriction. You grant to us an irrevocable, 
29> non-exclusive, worldwide license to all intellectual property associated 
30> with alterations to the literal source code, structure, sequence, or 
31> organization of our software itself.

This is intended to be a generic copyleft and should apply to any 
derived work that doesn't fit the definition in section 2. I think
this clause provides me some of my "consideration", in the form of 
source code I expect to receive, under contract law.

I am a bit worried that the word "other" might not be appropriate,
but I can't see what other interpretation of it there can be--there
is only one other way to create derived works mentioned in the
license.

I say you must "immediately" make the work available to the public. That
might be too strong--the reason for this phrase is to catch people who 
write application servers. They make an improvement to my software, and
then make it available to people through an application server that 
runs on a publically networked machine. Since people link to the app 
server, the software is never distributed, and a GPL style distribution
copyleft would not force these improvements to be shared. It would be
nice if I could come up with an effective clause here that was not 
so heavy handed, but I couldn't think of it. I tried using the idea
of "public performance" at one point, but nobody could agree on what
that meant for software.

The "on or through a medium customarily used for software exchange" is
intended to allow people to either email the stuff to me, or to post it
on their website and tell me to look there. In the latter case, I would 
not expect them to have to notify me every time they changed something.
It should be good enough that they told me to check the website from 
time to time to see what their current version is. Alternately, they 
could open up access to their CVS archive, or something different. 

I use the phrase "joint offer from you and from us" because I don't 
think any rights attach to the software itself. I think recipients 
have to get their copyright license from all the copyright holders.
This phrase will recursively grow to include everyone who has ever
contributed code, since a contributor becomes part of "us" when
a third party gets the code.

This paragraph also gives "us" unrestricted rights to the modifications
that other people make to the software. Out of all the people that are
included in "us", only the original developer will have accumulated 
these license grants for all of the contributions. This allows me
to grant people exemptions if it turns out that their use of the 
software would be forbidden but I think it should be allowed. It would
also allow me to relicense the software under other terms. 

However, I don't want this grant of rights to wind up including 
anything that is not really a part of my program. I think the 
phrase "literal source code, structure, sequence, or organization"
catches any improvement to the program that really affects the 
program itself in some way--and doesn't just link the program in.

32> Your your derivative work must be unencumbered: it must not depend on 
33> additional software unless that software is distributed to the public under 
34> a license which allows everyone to use, copy, and distribute the software 
35> royalty-free; also, under any patent claim licensable by you which would be 
36> infringed by the use of the work under this agreement, you grant to each 
37> recipient a worldwide non-exclusive, royalty-free patent license to use, 
38> sell, import, and transfer the work under the terms of this agreement.
39> 

I have a mini-definition of "kind of free" software here. I specifically 
want people to be able to write software that depends on the Java JRE
(the Java virtual machine), which you are allowed to copy, distribute,
and use. But you aren't allowed to make modifications to the JRE.

However, I don't want people writing "improvements" to my software that
wind up making it depend on something they sell, or being subject to 
some patent they can later claim against people. 


40> (4) "YOU MUST CREDIT US"

41> If you distribute, display, or perform our software or a derivative work 
42> based on it then you must attach our copyright notices and give prominent 
43> notice that you used our software under this agreement. You must ensure
44> that these notices appear wherever authors of the work are credited. You 
45> must also include a copy of this agreement when you distribute any work 
46> subject to it.
47>

Here is some more of my "consideration" under contract law. I want some
free advertising in exchange for writing free software. If you use my 
software, then in your "About" and "Credits" box, I want you to mention
my copyrights. I'm hoping this is a weak enough credit clause that it 
doesn't burden people the way that the BSD advertising clause does. I
just don't want the credit of me buried in some user manual that 
nobody would ever read, or only appear in the source code, which no 
end user would ever see.


48> (5) "GENERAL TERMS AND CONDITIONS"

49> This agreement represents the entire agreement between us, and it is 
50> effective until our copyright expires. Your rights under this agreement 
51> will terminate immediately, without notice from us, if you fail to comply 
52> with any of its provisions, infringe on our copyright, or file any 
53> litigation against us relating to our software. Upon such termination you 
54> must immediately cease all use, copying, and distribution of our software 
55> and derivatives of it. However, you may continue to distribute complete, 
56> unmodified copies of our software as part of any existing aggregate 
57> collection for up to one further year.

I think I have to specify a term for the agreement, so I picked the 
lifetime of the copyright. 

I wanted to spell out that you have to stop using the software in 
case you violate the license in some way. Also, I wanted to ward off 
some lawsuits by terminating peoples rights in the event that they 
bring a lawsuit back against me. I hope this doesn't get me into 
trouble with "restraint of trade" laws or some legal principle. 

The clause about aggregate works is there to save CD manufacturers 
from having to recall a million CD's. If someone violates the license,
maybe by accident, but before anyone noticed the violation got printed
on a million CD's, it would be unfair to force an expensive recall of
all of those CD's. I would rather they just stuck in a note or published
a statement notifying everyone that the copy of my software on the CD 
was unlawfull and couldn't be used. I'm not particular on exactly what
they do as long as it's reasonable and they stop infringing.


58> For the sole purpose of taking action against an infringer of our
59> copyrights, including actions seeking remedies, compensation, or the
60> recovery of damages, anyone engaged in the lawful distribution of our 
61> software shall be considered a beneficial owner of the rights to copy and 
62> distribute it, and therefore has the authority to pursue such actions.

This is one of my big ideas, and no doubt the most controversial bit 
in this license. I stole the phrase "beneficial owner" from the US 
copyright act, where it is used to describe the rights of television
broadcasters who have licensed the right to broadcast a TV show, and 
then some pirate in their jurisdiction broadcasts it as well--costing
them advertising revenue. The copyright act says they are "beneficial
owners" and can therefore take the pirate to court, even if they can't
get the co-operation of the original author.

I think that a copyleft is *for* the community just as much as it is 
*for* the developer. A lot of people choose to use copylefted software
precisely because they know that they can take the project over if 
the original developer leaves. 

As a result, they are willing to contribute ideas, code, suggestions, 
help test the software, and basically put some effort into the code. 
They may even have chosen copylefted software, as opposed to some other
opensource software, because they know that ensures they will have
access to all of the improvements. 

If the original developer leaves they lose all of those benefits, and
I think that is not fair. I am trying to find some way to express that
the community has an interest in the software, and therefore should have
the right to go to court and defend that interest.

My concern here is that I may have given anyone who distributes the
software authority to rewrite the license. That needs to be restricted
in some way--I want them to be able to put a stop to license violations,
but not settle the case by granting the infringer extra rights. I don't
really know what to do here, but I really do want people to be able 
to back up the software they use.

Also it occurs to me that some tiny little free software developer may
not look like much of a threat to a large corporation with a huge legal
team. The large company might feel they can win any infringement case 
just on the basis of having a better legal team. This clause should 
strike some fear into them, because any free software distributor (and
some are very large) could bring their legal team to court as well.


63> Nothing in this agreement shall be interpreted strictly against us. If
64> any provision of this agreement is ruled invalid, the rest shall remain
65> in effect, and the invalid provision shall be reformed to the minimum
66> extent necessary to make it valid. If a new version of this agreement
67> is published by Semiotek Inc. you may opt to use your copy of our
68> software under the terms of the new version so published.

I know the "strictly against us" stuff isn't likely to fly in all 
regions, but again I figure free software developers are likely to 
be the little guy in a court case, and I want to give them a break
if I can. I'm a little guy, I need the break :-) 

I actually stole this phrase from another license, the ATT license 
I think--but maybe it was a different one. 

The severability stuff is also taken mostly from another license, 
though I have reworded it to be more readable (and therefore maybe 
I have corrupted its meaning in some legal sense). 

Like the FSF with the GPL, I also want the right to be able to fix
the license if necessary, and everyone who was using the previous 
license should be able to switch to the new license.


69> "Source code" includes the electronic form of a work preferred for
70> making modifications to it.  Software "depends on" additional software
71> if it is fully functional only when that additional software is present.

A couple of definitions. Probably I need more. Maybe I should also 
define the word "compiled" because it probably has a copyright meaning
that is not the same as the technical sense in which I am using it.


73> (6) "NO WARRANTY AND DISCLAIMER OF ALL LIABILITY"

74> Our software has been provided to you for free, with source code, but 
75> without support or maintenance of any kind. It may contain defects,
76> and may not conform to its documentation: You should not use it unless
77> you have proven to yourself that it is acceptable, and you should fix any 
78> defects yourself. You must not use our software where there is any
79> risk of death or personal injury.

The point of this is to give the court a good reason why we are going
to disclaim all our implied warranties. Hopefully, after reading this, 
the court will see that our disclaimers are actually reasonable because
we have provided a good alternative to the user (ie: provided them with
source code so they can assess the situation for themselves, and fix it
if it is found defective).

I read somewhere that in Canada there is an implied warranty with 
software that it conform to its documentation--so I warn here that the
software might NOT conform to its documentation. Also I warn that it
might have defects--this way people can't say they didn't expect
to find a bug.

The prohibition on personal injury and death is there because I think 
that in the British legal system you get in big trouble if you try and
disclaim liability when someone gets hurt. So instead I forbid using
the software in such a situation.


80> If you make our software, or software based on it, accessible to a 
81> third party then you are solely responsible for any warranty provided
82> with it, and agree to indemnify, hold harmless, and defend us against
83> all losses, damages and costs arising from legal actions brought against
84> us by such third parties.

Someone might use my software to build a website, but it might contain
some flaws. If the flaws are the fault of *my* software, then some user
of the website (who has never entered into an agreement with me, or even
had a chance to see my disclaimers) might suffer some loss or damage. Then
they might sue me for negligence. 

I want to make sure that I pass the buck on to whoever puts the software
on the website, and they should attempt to pass the buck on to this 
third party (which I can't do).


85> Our software is provided to you on an "AS IS" basis. WITHOUT LIMITATION, WE 
86> DISCLAIM ALL WARRANTIES, CONDITIONS, OR REPRESENTATIONS, WHETHER EXPRESS OR 
87> IMPLIED, INCLUDING WITHOUT LIMITATION ANY WARRANTIES OR CONDITIONS OF 
88> FITNESS FOR A SPECIFIC PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.

It is important in Canada to use the word "CONDITION" when you are 
disclaiming an implied condition of the software. In the US these are
implied warranties. I'm not sure what a "representation" is, but I saw
it disclaimed in several Canadian software licenses so I am disclaiming
it as well. 

90> IN NO EVENT SHALL WE BE LIABLE FOR DAMAGES, INCLUDING DIRECT, INDIRECT,
91> SPECIAL, INCIDENTAL, CONSEQUENTIAL (INCLUDING LOST PROFITS), EXEMPLARY,
92> AND PUNITIVE DAMAGES, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
93> WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE)
94> ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF OUR SOFTWARE OR
95> THE EXERCISE OF ANY RIGHT GRANTED HEREIN, EVEN IF WE HAVE BEEN ADVISED OF 
96> THE POSSIBILITY OF SUCH DAMAGES.

I don't know what all these things are but I see them in everyone elses
license so here they are in mine too.




More information about the License-discuss mailing list