Which License Should I Use?

Tom Anderson twic at urchin.earth.li
Sat Nov 26 01:13:10 CET 2005

On Fri, 25 Nov 2005, mojosam wrote:

> How do I decide on a license?

You decide on what obligations you wish to impose on licensees, then pick 
a license which embodies those. There are basically three levels of 

1. None.

2. Derivatives of the code must be open source.

3. Derivatives of the code and any other code which uses it must be open 

By 'derivatives', i mean modified versions. By 'open source', i really 
mean 'under the same license as the original code'.

So, the licenses corresponding to these obligations are:

1. A BSD-style license. I say 'BSD-style' because there are about a 
hojillion licenses which say more or less the same thing - and it's quite 
amazing just how many words can be split spelling out the absence of 
obligations - but the grand-daddy of them all is the BSD license:


2. The GNU Lesser General Public License:


3. The GNU General Public License:


The GPL licenses place quite severe restrictions on the freedom of 
programmers using the code, but you often hear GNU people banging on about 
freedom - 'free software', 'free as in speech', etc. What you have to 
realise is that they're not talking about the freedom of the programmers, 
but about the freedom of the software. The logic, i think, is that the 
freedom of the code is the key to the freedom of the end-users: applying 
the GPL to your code means that other programmers will be forced to apply 
to to their code, which means that users of that code will get the 
benefits of open source.

Having said all that, you can only license software if you own the 
copyright on it, and as has been pointed out, in this case, you might not.

> Are there any web sites that summarize the pros and cons?

The GNU project has a quite useful list of licenses, with their takes on 


Bear in mind that the GNU project is strongly in favour of the GPL, so 
they're perhaps not as positive about non-GPL licenses as would be fair.

This dude's written about this a bit:


> I guess I don't care too much about how other people use it.  These 
> things won't be comprehensive enough or have broad enough appeal that 
> somebody will slap a new coat of paint on them and try to sell them. I 
> guess I don't care if somebody incorporates them into something bigger. 
> If somebody were to add features to them, it would be nice to get the 
> code and keep the derivative work as open source, but I don't think that 
> matters all that much to me.  If somebody can add value and find a way 
> of making money at it, I don't think I'd be too upset.

To me, it sounds like you want a BSD-style license. But then i'm a BSD 
afficionado myself, so perhaps i would say that!

In fact, while were on the subject, let me plug my own license page:


I apply 0-clause BSD to all the code i release these days.

> I will be doing the bulk of the coding on my own time, because I need to 
> be able to take these tools with me when I change employers. However, 
> I'm sure that in the course of using these tools, I will need to spend 
> time on the job debugging or tweaking them.  I do not want my current 
> employer to have any claim on my code in any way.  Usually if you 
> program on company time, that makes what you do a "work for hire". I 
> can't contaminate my code like that.  Does that mean the GPL is the 
> strongest defense in this situation?

The license you choose has absolutely no bearing on this. Either the 
copyright belongs to you, in which case you're fine, or to your employer, 
in which case you don't have the right to license it, so its moot.

> Let's keep the broader issue of which license will bring about the fall 
> of Western Civilization

You mean the GPL?

> on the other thread.



Science runs with us, making us Gods.

More information about the Python-list mailing list