2008-04-14

Permissive licenses and the restrictions placed upon them

Permissive licenses like the BSD and MIT impose few restrictions on the use and redistribution of the software. Created in an academic environment, they are based on the principles of publishing and reusing ideas with as much freedom as possible.

The absence of stronger conditions for the distribution of software under these licenses implies limitations for its use with other licenses that work with the copyleft principle, such as the GNU GPL, which demands that any derived work that is to be distributed must be under the same terms of the original license, as it says in section 2 of GPLv2:
You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License

Still, this restriction applies only to uses that are protected under the copyright law. As the GPL says, you don't have to accept the license, but nothing else grants you permission to do what otherwise would be prohibited by law. The main exclusive rights under the copyright law are to copy, to distribute and to create derivative works. There are other restrictions that are applied through software patents, but these aren't valid in many countries (including mine) so I won't discuss it any further.

Therefore, it is worth noting that the simplest form of use of software is free under any circumstances. This means that using an operating system or an integrated development environment licensed user the GPL when you are developing your software doesn't force you to license it under GPL terms.

Other uses, such as distribution, contributions, derivative works and use through linkage, may be subject to specific conditions. Most of the licenses aren't very precise about the meaning of each of these terms, and so the involved parties are left with an interpretation problem. Even considering that the Free Software Foundation explains in other documents what was their intention when they wrote the license, these clarifications don't have any legal value unless we are considering a piece of software owned by them. As a result, because of the ambiguities in the text of the licenses, it is often not clear what would be the result in case of litigation.

Nevertheless, it's valid to try to understand the position of the FSF, to serve as a parameter in the discussion about licensing a software under a permissive license when it is related to another software that uses the GPL or LGPL . Next, let's consider a few cases:

  • Modification of the source code to be distributed as a derivative work or to be returned as a contribution to the original work: it must be released under a compatible license. In the case of LGPL, the new work must be distributed as a library;
  • Creation of a new work that uses a library licensed under the GPL: there is high controversy around this use, because some people consider that when a program uses a library a collective work is being created, composed by the program plus the library, instead of saying that the program is a derivative work of the library. On the other hand, according to the FSF, in this case the "viral clause" must be applied, because the program as it is actually run includes the library (see FAQ). However, the GPL says that if there are identifiable sections of that work that are not derived from the program protected under the license, and if the sections can be reasonably considered independent, then they are not required to be licensed under the GPL when distributed as separate works. In fact, many developers try to escape from the GPL by distributing their code without the required libraries. But this may not work because one could argue that the code isn't really independent from the GPL licensed work. Moreover, if the work is distributed as part of a whole based on the work licensed under the GPL, then the distribution of the whole must be on the terms of the GPL, whose permissions for other licensees extend to the entire whole, and thus to each and every part of it;
  • Creation of a new work that calls functions from a software licensed under the GPL, but that doesn't need it to be compiled or to run: there is even more controversy in this case, but in general it is subject to the same restrictions, that is, if we consider the more conservative approach, it is necessary to license the work under the GPL terms;
  • Creation of a new work that uses a library licensed under the LGPL: in this case, since the LGPL is a variation from the GPL used precisely to allow the use of libraries by software that doesn't comply with the GPL, it is allowed to license the work under other terms, such as the BSD license.


To conclude, we should also note that the BSD license itself isn't perfectly clear about what the licensee is allowed to do either, since the terms "redistribution and use" and "with or without modification" can't be mapped directly to the exclusive rights mentioned under the copyright laws. It is implicit that all the rights are being given, but other licenses, such as the MIT license, are more explicit about such things.

4 comments:

AmyStephen said...
This comment has been removed by the author.
Anonymous said...

Great post, and wanted to add that ORA has a nice book on the subject, Understanding Open Source and Free Software Licensing. Came in handy when we discovered it probably wasn't going to work with us being called Mambo anymore ;-)

Also impressed that you caught one of the more subtle restrictions of copyleft software, in that it is not compatible with more permissive open source licenses.

In the past there was a huge outcry when a BSD library (released under the MIT license, IIRC) was ported to linux and released under the GPL. At first it didn't look like such a big deal, until everyone realized that the GPL kept the changes from that fork from being released upstream to the original developers.

Not only do you need to worry about what license you want to use, you also need to concern yourself with what licenses will be used for software that your software might be interacting with.

It is this complexity that I presume led to the GPL being such a defacto license in the open source world, as you're under significant pressure to select a compatible license for your software if you're not living in a vacuum.

AmyStephen said...

Sorry, I removed my comment since the link did not work back to my blog where you posted. :P

I responded to your post on Open Source Community and warmly welcome you to join us anytime.

Thanks!
Amy :)

Anonymous said...

Who knows where to download XRumer 5.0 Palladium?
Help, please. All recommend this program to effectively advertise on the Internet, this is the best program!