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".