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