views:

172

answers:

2

I am trying to find a simple matrix overview of the various licenses around open source software but can't find anything useful.

I would like to know whether software under a certain licence can be used in commercial closed source software, if there has to be the original source code included, if the licence has to be redistirbuted, etc.

I know this is a difficult topic because I guess only the minority of programmers are also moonlighting lawyers - neither am I.

+5  A: 

You really need a lawyer to give you a definitive answer for the legal jurisdiction you develop (and sell) within. As an example, the concept of Public Domain is not recognised under German law.

I am not a lawyer, so you must not take the following as any form of legal advice, but I have received some basic training on this from people who are. Lawyers being what they are, you may well get quite different answers from two different attorneys, even in the same jurisdiction.

Most people believe that licenses such as: MIT, X11, BSD present few pitfalls for closed source development. Please be aware that some variants of these licenses (e.g. '3 clause BSD') may require you to give written credit to the authors (e.g. in an 'about' dialog box and in any printed documentation). It is generally possible to modify and redistribute code under these licenses under a more restrictive license (it is common to see BSD code 'turned into' GPL, which annoys BSD license authors, but is quite legitimate under the license).

Some licenses (Eclipse Public License, Apache License) present no legal obstacle to closed source development but may indicate that you have granted a perpetual royalty-free license to any patents/IPR you own which may be required by others wishing to use the code. depending on your business model, this may or may not be acceptable to you.

Lawyers differ in their interpretations of the GPL and LGPL with respect to closed source development. The problem at issue is the concept of a 'derivative work', which is used in both licenses. If you produce a derivative work, then you must publish the source code and everything required to build it under the same license as the original work (e.g. publish as GPL if you are derivative of a GPL work).

One issue with both GPL and LGPL is that quite what constitutes a 'derivative work' received very little testing in court, other than for the most obvious cases. In English Law style jurisdictions, (USA, UK, many former UK colonies), this type of precedent is very important. Obviously the rules are quite different under other jurisdictions.

I should mention, as an aside, that the GPL and LGPL are probably vague about the precise meaning for 'derived work' for a good reason: they are software licenses with a specific political aim, the aim being that software should be available freely, both in the sense of cost and in the sense of freedom to change and customize. With this in mind, many clauses are written in an 'open' way to specifically further this aim.

One thing everyone agrees upon without exception: if you use an unmodified or little modified LGPL or GPL licensed product, you must publish the source for any changes you have made. Quite a number of companies which should have known better have fallen foul of this rule, with considerable cost and damage to their reputations. The GPL, in particular, has been shown to be valid and enforceable in a number of major jurisdictions.

There are licenses which are variants of GPL or LGPL which add specific exceptions, usually to limit the scope of the license to allow some forms of closed source development. As an example, the Linux Kernel adds an exception to the GPL to state explicitly that userland code is not considered derivative, so you can license it as you would like; wxWidgets adds an exception to the LGPL to state explicitly that if you simply link to an unmodified wxWidgets from closed source code, this is acceptable under certain conditions.

The GPL v2 comes into force when software is distributed. Some companies, notably those providing services over the internet, have forked closed cource changes to GPL code which they do not publish. They claim that this is legitimate because they do not distribute any binaries. The GPL v3 and Affero GPL address this issue, and place open source obligations on use of the code.

In general it is considered very poor form to remove license information, although it may be acceptable under some licenses. If you make changes which you wish to license differently from an original work, you should add your license to the existing one (granted that this can make it extremely difficult for users of the code to disentangle the licensing).

It is probably illegal in most jurisdictions to remove copyright information (copyright and license are separate concepts) as this is the mechanism by which the author of the code asserts his/her ownership.

Hopefully you're starting to see that a simple matrix doesn't really cover this subject, and that you would be well advised to take qualified legal advice if your situation falls into one of the less clear areas.

The Software Freedom Law Center provides a certain amount of free legal advice to those wishing to use, publish or defend open source code, and have a number of publications which may be helpful.

If the code you wish to use is under the GPL, I would suggest that you almost certainly need to distribute source code. If LGPL, then my best answer is: 'it depends'. Many people have interpreted the LGPL to say that a work linking with an LGPL shared library is not a derived work, because it is separately compiled. Personally I do not buy this explanation (the code won't work without the shared library), but some legitimate trained lawyers do. I prefer to assume that I have the same obligations under the LGPL as I would have under the GPL.

One example of a significant project which was forced to change its licensing to abide by the conditions of a GPL library is Clisp - see the e-mail exchange between Richard Stallman of the FSF and Bruno Haible, author of Clisp.

Jeremy O'Donoghue
(+1) Thanks for this long answer. Too bad that the license topic is rather complicated / full of pitfalls. I think I will contact an attorney if I am in doubt. Since I still hope that there will be an opensource matrix (with Country/Jurisdiction as another dimension as you pointed out) I'll leave this question unanswered.
tobsen