Don Marti

Mon 20 May 2013 07:51:50 PM PDT

What are the differences between open-source licenses?

Open-source licenses require different degrees of reciprocity from a licensee. In this list, each license category includes the same basic terms as the previous category. I'll leave out the corporate vanity licenses, since they aren't typically adopted by new projects.

No reciprocity: new BSD, MIT. These licenses simply grant permission to copy the software, and disclaim warranty.

Patent reciprocity: Apache. In order to redistribute software under this license, a licensee must offer a license to any of the licensee's patents that apply.

Partial copyright reciprocity: Mozilla Public License, Lesser GPL. A licensee must provide source code for changes to the original work, but can still add code that is somehow kept distinct from the original, and keep it proprietary.

Broad copyright reciprocity: GPL (all versions). If a licensee distributes a modified version that constitutes a "derivative work" for purposes of copyright law, that derivative work must be available in source code form.

Protections from complex legal schemes: GPLv3. Some patent trolling schemes and code signing systems have the effect of working around the reciprocity requirements of the GPL. This later version of the license closes some loopholes.

SaaS reciprocity: Affero GPL. The only commonly used license that requires a licensee to redistribute source even if the code is not actually redistributed. Offering AGPL-licensed software for use over a network also triggers the requirement to redistribute source.