It's been a long time since I last posted a version of this license, and it
has changed a lot since then. I thought I would post it again and get some
comments from this list. 

This license lives here:

   http://shimari.com/SPL/

and will eventually be the primary license for Semiotek's software, which
so far has been under the GPL. 

I'm attaching three files:
 
  -- an explanation of why this license exists and what it does
  -- a copy of the license
  -- some clause by clause analysis of my reasonings for the terms

I'm looking for three kinds of comments:

  -- legal problems with the license
  -- OSD compliance problems
  -- ideas on how it could be improved, strengthened, etc.

Thanks for your help!

Justin


The SPL has the following features which distinguish it from other licenses:

  -- Allows consultants to sell closed-source software to their customers
     for limited end-user use, but does not allow mass market distribution
     of non-free works.

  -- Hands the community the power to take action against violators of 
     the license--even if the original author is not around, has lost 
     interest, or doesn't have the time or money. 

  -- Ensures that "improved" versions aren't encumbered by patents or by 
     dependence on non-free software that you would have to pay for.

  -- Requires that all other modifications be shared with the community,
     even if they aren't distributed. Thus you can't hide your improvements
     behind an application server.

  -- Transfers to the original author rights to alterations to the 
     original software itself (but not other derivations).

  -- Has a fairly strong requirement that credit be given to the original
     author on any derived work.

  -- Strong language to deal with third party claims, preventing you from
     being liable for negligence when someone who has NOT licensed the
     software is somehow harmed by it (eg: a user of some licensee).

  -- Protects CD distributors in the event of a license violation: they 
     won't have to recall CD's they've already pressed with the infringing
     software.


Potential problem spots that I can see: 

  -- Does the language giving distributors the right to take action 
     against violators give the distributors powers to change the license?

  -- Does the termination language allow someone who improved the software
     to later pull the plug by deciding to infringe? Then their improvement
     would no longer be available to the community?? But if you disallow 
     this then corrupted versions can become lawful by way of whatever 
     exception you write. Ugh.

  -- Is the definition of "depends on" adequate. I want the software to be
     usable on non-free platforms providing it doesn't gain extra
     functionality on those platforms that the free platforms don't get
 
  -- UCITA... are my acceptance terms realistic? Are my disclaimers still
     valid after UCITA? I don't know...

  -- I used to have a "ok to link with GPL" clause, but that also gives 
     people a route around my strong disclaimers. I'm also worried that 
     the GPL may not adequate defend against runtime linking issues and
     other things. For now I have left this clause out, but I would like
     to be compatible with the GPL... sigh. 

  -- The "YOU MAY USE OUR SOFTWARE.." section no longer offers the right
     to sublicense the software. The sections dealing with derivatives 
     explicitly declare the sublicensing conditions. I can't see this as
     a problem, but am I missing something?

  -- Does the "NON-FREE APPLICATIONS" section give recipients of 
     the non-free applications enough power to use the software?

  -- Do I need to include language specifically dealing with runtime
     and dynamic linking? I suppose I ought to.

                             Simple Public License 
                                  Version 0.9


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

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


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


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

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


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

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

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

 
  (4) "YOU MUST CREDIT US"

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

  (5) "GENERAL TERMS AND CONDITIONS"

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

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

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

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

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

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

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

  Our software is provided to you on an "AS IS" basis. WITHOUT LIMITATION, WE 
  DISCLAIM ALL WARRANTIES, CONDITIONS, OR REPRESENTATIONS, WHETHER EXPRESS OR 
  IMPLIED, INCLUDING WITHOUT LIMITATION ANY WARRANTIES OR CONDITIONS OF 
  FITNESS FOR A SPECIFIC PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
  
  IN NO EVENT SHALL WE BE LIABLE FOR DAMAGES, INCLUDING DIRECT, INDIRECT,
  SPECIAL, INCIDENTAL, CONSEQUENTIAL (INCLUDING LOST PROFITS), EXEMPLARY,
  AND PUNITIVE DAMAGES, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE)
  ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF OUR SOFTWARE OR
  THE EXERCISE OF ANY RIGHT GRANTED HEREIN, EVEN IF WE HAVE BEEN ADVISED OF 
  THE POSSIBILITY OF SUCH DAMAGES.

This document describes the purpose of each paragraph in the SPL:

Title: "Simple Public License"

  -- The main reason for writing a new license is that the existing ones
     are very difficult to read. Most licenses are actually evaluated 
     by ordinary programmers, so it is important that they be short, 
     and written in something close to plain English.


Opening statements: 

  -- Define (vaguely!) what is being licensed and to whom. The software
     itself should declare that it is licensed under this agreement, so
     that there is no ambiguity. For example, a statement should be 
     attached to the program source files: "This software is copyright
     (c) 2000 by ... and is licensed under the Simple Public License".

  -- Make it clear that this license is conditional on compliance, and
     draw attention to our disclaimers to help them be conspicuous.

  -- We need some indication of acceptance, but this is hard in a license
     where the software is distributed freely off of websites and on 
     CDROMs. However, the software is not "shinkwrap", it is packaged in
     an open manner: the user can inspect everything, including all of 
     the source code. Hopefully, then, it is sufficient to hinge 
     acceptance on use: after reading the license and all the source
     code, if desired, the user can use the software by accepting. Still,
     we don't have anything signed, so this might be a sticky issue.


Section (1): USE OUR SOFTWARE FOR FREE

  -- Says that anybody can use the software, and that they can use it
     for free. You may turn around and distribute the software to 
     other people and charge them a fee for that service. You may 
     also run the software on your computer and charge people a 
     fee for the privilege of using it. However, once someone has 
     a copy of the software it's free, and they can give it to 
     others for free if they like.

  -- I think we need to explicitly allow aggregate collections. They
     are technically a type of derivative work, but we don't want to 
     impose on them the kinds of restrictions we place on derivatives.


Section (2): SELLING NON-FREE APPLICATIONS

  -- The goal here is to support consultants who want to build things 
     on top of our software and sell them, without providing source, to 
     their clients. We do not want to allow commercial software vendors 
     to ship commercial versions of our software; nor do we want this 
     license to support commercial vendors who want to mass market a 
     product built out of our software. We want such people to approach
     us and negotiate a different license.

  -- We cut out middlemen, resellers, channels, and stores by insisting
     that the copy be sold directly to the end user. This hinders the 
     ability to mass-market a derived work, without hurting consultants.

  -- We prevent commercial versions of our software itself by insisting
     that the derivative be made from a complete, unmodified version
     of our work plus extra source code. Presumably a modification of
     our software would require changes and additions to our source.
     A consultant could still modify our software in order to support a
     client, but the modifications to our software itself would have to
     be shared with the community under section 3.

  -- We make these non-free versions dead-end copies by preventing 
     recipients from further modifying them, distributing, leasing, etc. 

  -- We specifically allow creating backups, since we have denied all
     rights to copy to the end user, and that would be unfair.


Section (3): Share improvements

  -- The whole point of opensource software is that recipients must
     have access to the source code, and be able to use it. This 
     section grants people the ability to use the source code.

  -- It is a "viral" license, in that it insists that all such
     modifications be shared with the community: if you improve the 
     software, you have to share those improvements with everyone else.

  -- Note the phrase "immediately  make them available to us and to the 
     public ... through a medium commonly used for software exchange ",
     this is intended to allow you to post the changes on a website once,
     and let us know where that website is. It would be an undue burden on
     someone if they had to contact us each and every time they modify our
     software. Instead, they should be able to publish their work on an
     accessible website once they've told us to look for it there.

  -- The license tries to be careful about who is licensing what to who. 
     Rights don't attach to software, so I think we need the "joint 
     offer" language to ensure that recipients of modified versions 
     actually get their rights from all the copyright owners.

  -- We want release under this license to be irrevocable, unless the
     recipient violates its terms. In other words, no releasing some 
     crucial improvements, letting everyone come to rely on them, and
     then pulling permission to use them and demanding money from 
     everyone. If you improve the software and release that to the 
     public, you do so for all time.

  -- We receive rights to alterations to our work itself, so that we 
     can merge them back into our source tree. Without this release of
     rights, we would be unable to release under multiple licenses. We
     do not want to receive the rights to independent works build 
     using our software, though, so we specify only those improvements
     which to the literal source code, "structure, sequence, or
     organization" (SSO) of our software. The SSO phrase is there so 
     that if you make our software depend on an additional file which
     you include, that additional file would be licensed to us as well.

  -- We also don't want people subverting the freedom of the derived
     work by making it subject to a patent claim, or by making the 
     result depend on some proprietary software (which presumably 
     the modifier would own). If you improve the software, you have
     to make sure that the result is really free for people to use.
     Thus we demand that it be unencumbered, and seek a patent license
     in the event that one applies.


Section (4): CREDIT

  -- Our main compensation for making our software available for 
     free is status and recognition. Free software amounts to a form
     of advertising of the skills of its authors. We want to ensure
     that we are properly and fully credited for our work.

  -- This clause is carefully worded. We want it to operate pretty much
     within the bounds of copyright law, but we also want it to be strong
     enough that it amounts to "consideration" under contract law: our
     consideration is the free advertising that goes along with the 
     software when someone copies it, or puts it to a new use.


Section (5): GENERAL

  -- Entire agreement: other documentation, things we say on the mailing list, 
     etc., are not to be considered part of the license contract.

  -- Termination. There are issues with termination that I am not clear
     on: what happens to patent rights, etc., that are granted when the
     license is terminated? Do they survive? Otherwise someone could 
     release improvements to the software, wait until everyone depends
     on them, and then terminate the agreement--pulling out the right
     to use those improvements. They could then demand money in exchange
     for licensing the rights to those improvements.. that would be bad.

  -- If the license is terminated the user basically loses all their 
     rights to the software. Except one: we let people continue to 
     distribute the software if it is already part of an existing 
     aggregate collection. If they had printed a million CD's, and
     had to recall them all because of an honest mistake, that would
     be unfair. Under this language they can still ship their CD's, 
     but some of the software on the CD cannot be lawfully used.
 
  -- We confer some special rights on distributors to arm them with 
     the legal right to go after infringers. Free software projects 
     are often abandoned by their original authors--the community then
     takes over development of the work. But then who would be able to
     press an infringement claim? The beneficial owner clause is here
     to allow the community to enforce the license even if the original
     author is hard to find, or hasn't got the legal resources, or 
     the time, or the interest, in pressing the claim.
     
  -- "Nothing will be interpreted strictly against us" probably doesn't
     work in most jurisdictions. The rules often work against the 
     author of a "take it or leave it" style license, on the theory 
     that they're in a position to badger everyone. However, in this 
     case, the software author is likely the little guy, and the 
     software user is some big company with legal muscles who may 
     sue the little guy for damages after a bug bites them. We want
     to give the little guy a break, so we put in this phrase--maybe
     it will help, maybe it will be struck down. 

  -- Since there are many things in our license that are probably not
     valid in all jurisdictions (hard to do in an international license)
     it's important that these invalid clauses don't bring down 
     the entire license--thus the language about reforming invalid
     clauses, and the rest of the license surviving.

  -- We have the right to release updated versions of the license. If 
     it turns out that there is a problem with this license, rather
     than invalidating all of the software under the license, we 
     want the chance to be able to post a corrected version of the 
     license, and have everyone begin using it immediately, without
     having to get all the software from the source all over again.

  -- We define a couple of general terms, like source code, and what 
     we mean by "software depends on other software". Maybe there are
     more important terms we should define here?


Section (6): DISCLAIMERS

  -- We start out justifying why we are imposing such broad disclaimers:
     Our users have the source code so they ARE in a position to find and
     fix problems. Since they get it for free, I feel this puts us
     in a good position to disclaim all warranties and liabilities,
     including the implicit ones. The user has the ability to perform
     their own acceptance testing before deciding to use our software.

  -- We put some teeth into the above by warning the user that our 
     software might be defective, might not conform to its documentation,
     advising them to test its suitability, and notifying them that they
     should fix any problems they encounter. There appears to be an 
     implied warranty for "conformance to documentation" for software 
     in Canada, so this may be needed to get around that. Also, we 
     forbid use of our software in situations where death or injury might
     result so as to avoid having the disclaimer struck down, since such
     risks cannot be disclaimed in many jurisdictions.

  -- We don't want to be liable for things that other people do--so
     we make developers accept liability and warranty offers for any
     derivative work they distribute. Also, just to be sure, we impose
     the same condition on simple distributors. The goal here is to
     avoid liability from third parties who claim that we are negligent,
     but who are not party to any agreement with us.

  -- Finally the big disclaimer statement, where we attempt to avoid 
     liability for anything and everything. In Canada implied warranties
     are called "conditions" whereas in the US they are "warranties", 
     so we disclaim them both, as well as "representations".

Reply via email to