Open source license help needed
Every now and then, I get an e-mail asking me to clarify the license associated with code that I’ve posted on this site, such as my date parsing script. I’m looking for an open source license that I can start slapping on things to ensure people that they can use it for whatever they want, but wading through the list of licenses is no fun at all. Here are the features I’m looking for:
- Minimal boiler-plate. I don’t want to have to copy and paste dozens of lines of legalese in to a 30 line long example script; my ideal license would allow me to “link it in” in a single line (“(c) Simon Willison 2004, released under [X] license”).
- Allows commercial use. I don’t care if people make money off something I’ve published here.
- Encourages attribution. I don’t want people feeling they have to credit me if they reuse five lines of Python I posted as an example somewhere, but I’m not averse to getting credited for more substantial contributions. I don’t want to make attribution a requirement though as I’d rather people used my code and failed to attribute me than didn’t use it at all.
- Is compatible with other licenses. I often get asked if people can include my code in other open source projects—whatever license I use needs not to get in the way of other people’s licensing aims for their own projects.
I’m tempted to just slap a note saying “this code is in the public domain” on everything and have done, but I’m not sure if there are unpleasant side effects to doing so. The only thing I want to avoid is people explicitly claiming my work as their own.
Hmm, I've been pondering the same thing myself.
Have you considered releasing code under one of the Creative Commons licenses? It's quite possible to do so, and you can mix and match the requirements to your liking. If you don't specify "ShareAlike" then it's probably pretty compatible with other licenses too, although don't take my word for it.
Otherwise, it sounds like you're looking for a variant of the BSD license. It's reasonably minimal compared to other licenses, allows commercial use, and requires attribution in source code only. Plus it's one of the most compatible software licenses. Don't be put off by the legalese warranty disclaimer though; it's a smart idea to have that in there in case some company adopts your code then decides to sue if it turns out to have an error of some kind (they'd probably get thrown out of court, but I doubt you want the experience!)
Angus Turnbull - 5th November 2004 01:25 - #
Jason Cosper - 5th November 2004 01:25 - #
It's not legalese I'm against; it's legalese boiler-plate. I don't want to have to paste any more than a line or two of "stuff" in to any file which I wish to license. I don't mind if the full license is a lot longer, provided I can reference it rather than quoting it in its entirity every time I use it.
Creative Commons is definitely an option, but only if it's fully compatible with other licenses.
Simon Willison - 5th November 2004 01:43 - #
Jason Luther - 5th November 2004 01:44 - #
Thomas Goyne - 5th November 2004 01:46 - #
The OpenBSD license is nice and simple.
Daniel Neri - 5th November 2004 01:51 - #
George Schlossnagle - 5th November 2004 01:54 - #
the creative commons folks explicitly discourage using the creative commons licenses for software, as they were not written with such usage in mind.
for this sort of thing, i usually use the mit license. simple and straightforward.
jim winstead - 5th November 2004 01:57 - #
Ian Bicking - 5th November 2004 02:33 - #
AlexH - 5th November 2004 02:56 - #
J$ - 5th November 2004 04:03 - #
You want a BSD-style license, such as http://opensource.org/licenses/bsd-license.php or http://opensource.org/licenses/mit-license.php .
Don't use a Creative Commons license; they are not DFSG-free (Debian Free Software Guidelines). Software licensed under CC licenses can not be included in Debian.
Mark - 5th November 2004 04:06 - #
If you are dedicating your work to the public domain, you should read some disclaimers, like the creative commons certification or this interesting result from googling for "problems with public domain". The CC's approach is very intersting. Simply complete their dedication form and add their code:
Dean Edwards often licenses stuff, such as CSSQuery under another creative commons license, so you can use his source as a guide (that's fair use!).
P.S. This work - "Thoughts about the Public Domain" - is dedicated to the Public Domain. :-)
Jimmy Cerra - 5th November 2004 04:27 - #
Adam Kalsey - 5th November 2004 05:38 - #
Aggelos - 5th November 2004 08:10 - #
Stuart Langridge - 5th November 2004 08:11 - #
Chui Tey - 5th November 2004 08:19 - #
I tend to use the BSD-style or PHP license and link to the webpage of the said license e.g.:
* @license http://www.php.net/license/3_0.txt
I think that there may be pydoc which you can use to do similar.
Jacques - 5th November 2004 09:32 - #
Carl - 5th November 2004 10:46 - #
Robert Wellock - 5th November 2004 11:43 - #
According to the FSF the "MIT" license is better refered to as the "X11" license, since MIT has used many different licenses for different software. But yes, this seems like a good choice, with an added "Attribution optional, but appreciated." clause.
Also, I used your getElementsBySelector function, but managed to forget to send you a thank you. At least I included a link in the source.
Jan Soderback - 5th November 2004 15:21 - #
Jonathan - 5th November 2004 16:44 - #
Simon Willison - 5th November 2004 22:18 - #
I am extremely surprised that no one has as of yet mentioned the GPL.
I feel like I owe it to the world at large, and RMS of course, to suggest it as a licence.
The GNU General Public License (GPL) is perhaps one of Richard Stallman's momentous contributions to the Free Software movement.
In it's simplest terms it locks software into a form of communal ownership. Once locked, all derivative versions must carry the same licence. This ensures that whatever code you write starts free and stays free.
It's not just about "open source" it's about freedom.
If you released it into the public domain there would be nothing stopping someone from taking that code and re-releasing it in a non-free manner.
I highly recommend you use the GPL.
Noah Slater - 5th November 2004 23:48 - #
Aquarion - 6th November 2004 11:23 - #
Simon Willison - 6th November 2004 13:36 - #
Ben Pirt - 7th November 2004 10:44 - #
Rebecca - 8th November 2004 05:54 - #
Smiler - 8th November 2004 15:05 - #
Tom Keays - 8th November 2004 16:04 - #
Matt Brubeck - 8th November 2004 16:59 - #
Rad Smith - 9th November 2004 21:47 - #
It's 13 lines of boilerplate, but the BSD short-form license is a pretty nice one. It allows any use, commerical or otherwise, as long as the original copyright is preserved.
If I ever get around to releasing any code, I'll probably use this license.
Jacob - 10th November 2004 04:52 - #
I would avoid the GPL.
Use BSD or MIT or another license that doesn't force a world viewpoint on user's who would use your code in other projects.
The GPL and LGPL carry a lot of encumberance. Many if not most GPL projects aren't in compliance with the license, and it restricts your options in terms of libraries you can use and platforms that you can target.
Some platforms don't allow redistribution of source code that links to their API.
It's really best to use BSD or MIT. These licenses basically say that anyone who uses your library has to give you credit, can't use your name in advertising, and has to keep your copyrights intact if they choose to redistribute the code.
What it doesn't do (that GPL does) is force anyone who uses your code to provide a copy of it on request, for not more than the cost of the media, nor force any license on people who choose to use your code in other projects (they're allowed the right to cover their code using any license that they would like).
Dave Bacher - 10th November 2004 19:48 - #
Yar Hwee Boon - 13th November 2004 05:29 - #
Wieland - 15th November 2004 14:01 - #
John Sinclair - 5th December 2004 15:19 - #
Phillip Pearson - 14th December 2004 01:02 - #
Health Information - 2nd January 2005 13:18 - #
Developers have always traded code with one another and posted examples for less skilled or experienced developers to learn from. However in the face of increasing outsourcing offshore and a cooling of the global economic climate. I advise you people not to contribute to Open Source project but rather focus on your own locked down licensed product based development and personal code libraries. The point is that you can always give away commercial code. However, if you don't control your own work your only weakening you own hand.
The Technology sector is not managed properly and is not a profitable industry because Business is used to receiving IT services on the cheap.
In the past as a tutorial writer I posted quite a bit of code under the MIT licence and will continue to use this lincence in the near future. If you right a short script or application that you don't mind being reused in commercial projects or are training people then it's best in my opinion to go for the MIT or place the code public domain.
The GPL does not work and is widely violated by the software industry and I have worked on several commercial projects, that where unlawfully based on GPL source code. Whilst their is still genuine confusion amongst IT decision makers as to the implications of using GPL source. This type of abuse is widespread and has caused many organisations to avoid the use of GPL source code altogether.
Gregory Boshoff - 16th May 2005 01:57 - #
Martijn - 25th October 2005 10:20 - #
tommi - 5th September 2006 21:08 - #