This continues a conversation about the license for Pyeviscape
Pyeviscape is (currently) a small amount of python code that "wraps" calls to the Eviscape API. In turn, API calls can get and set data in Eviscape pretty much as tho a user logged into the eviscape web site can.
We're starting to use pyeviscape on musicpictures.com so users can post events from musicpictures.com
The reason we're considering the licence for PyEviscape is we want to encourage developers to use our API. And we figure they will be happier using open source tools.
Then follows the question "which licence?" To answer that we need to consider our aims:
Firstly, do we want to have PyEviscape *only* used in Open Source software. Answer: No, because its fine if a developer makes good use of our API and makes some money from it too. Our API terms should make sure we do OK too.
So, that rules out the GPL.
That leaves the Lesser GPL(v3), the Affero General Public License and "pervasive" BSD style / MIT licences.
Whilst the Affero licence is suited to networked applications, its like the GPL in that you can't mix and match open and closed programs. I don't think a "Lesser AGPL" exists.
So that leaves the LGPL, BSD and MIT.
BSD and MIT basically say:
- Copyright is "X".
- We give you no warrenty
- Don't change the copyright notice or warrenty.
- Do anything you want with the software, including changing it, selling it and by the way,
- you don't have to distribute the source with the program.
The LGPL differs on point 5 above. It says that if you distribute ("convey") the program then you must distribute the source too
(so that the end user of the program can modify stuff too). This is a noble aim and I guess the basis of Open Source.
The LGPL is not really aimed a web libraries (which deliver HTML rather than binaries), however the spirit is that you should provide a link to the source from your web site if you're using it. So if we used the LGPL, we could reasonably expect to recieve changes and additions to the PyEviscape code that someone else made. At the same time, that user could have another module "Y" alongside which could be closed source.
That kind of sounds like a everyone-benefits-kind-of-combination: We allow closed source code to use it but we expect to be able to use improvements developed for everyone.
Another approach is to use a BSD / MIT licence and add a notice which says "you don't have to submit fixes back but we'd like you too" - but that's not a licence is it?
Here are some links:
<span class="http-markup"><a href="http://www.opensource.org/licenses/lgpl-3.0.html" rel="nofollow">http://www.opensource.org/licenses/lgpl-3.0.html</a></span>
<span class="http-markup"><a href="http://www.opensource.org/licenses/mit-license.php" rel="nofollow">http://www.opensource.org/licenses/mit-license.php</a></span>
<span class="http-markup"><a href="http://www.opensource.org/licenses/bsd-license.php" rel="nofollow">http://www.opensource.org/licenses/bsd-license.php</a></span>
<span class="http-markup"><a href="http://www.opensource.org/licenses/agpl-v3.html" rel="nofollow">http://www.opensource.org/licenses/agpl-v3.html</a></span>
<span class="http-markup"><a href="http://www.fsf.org/licensing/licenses/why-not-lgpl.html" rel="nofollow">http://www.fsf.org/licensing/licenses/why-not-lgpl.html</a></span>
<span class="http-markup"><a href="http://www.gnu.org/licenses/gpl-faq.html#WhatDoesGPLStandFor" rel="nofollow">http://www.gnu.org/licenses/gpl-faq.html#WhatDoesGPLStandFor</a></span>
<span class="http-markup"><a href="http://www.gnu.org/licenses/agpl.html" rel="nofollow">http://www.gnu.org/licenses/agpl.html</a></span>
The snippets following are Copyright © 2004 Free Software Foundation, Inc.,
"The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program."
"If you make object code available on a network server, you have to provide the Corresponding Source on a network server as well. The easiest way to do this would be to publish them on the same server, but if you'd like, you can alternatively provide instructions for getting the source from another server, or even a version control system. No matter what you do, the source should be just as easy to access as the object code, though.
Our requirements for redistributors are intended to make sure the users can get the source code, not to force users to download the source code even if they don't want it."
"It is essential for people to have the freedom to make modifications and use them privately, without ever publishing those modifications. However, putting the program on a server machine for the public to talk to is hardly “private” use, so it would be legitimate to require release of the source code in that special case. Developers who wish to address this might want to use the GNU Affero GPL for programs designed for network server use."