Open Source Licenses
Under copyright law, when you create an original work with a minimal standard for orginality, you are granted these exclusive rights:
- The right to produce copies, or reproductions of the work, and sell those copies
- The right to import and/or export the work
- The right to create derivative works
- The right to perform or display the works publically
- The right to sell or assign those rights to others
- The right to transmit or display the work by radio or video
To allow others to use your work, you provide a license granting other specific rights to your original copyright. Typically there is a separation between the license for the intellectual work in the code and the artifacts (content) associated with the project including images, articles, documentation, etc.
The Creative Commons copyright licenses and tools forge a balance inside the traditional “all rights reserved” setting that copyright law creates. The Creative Commons tools give everyone from individual creators to large companies and institutions a simple, standardized way to grant copyright permissions to their creative work. The combination of our tools and our users is a vast and growing digital commons, a pool of content that can be copied, distributed, edited, remixed, and built upon, all within the boundaries of copyright law” (from About the Licenses).
Creative Commons—BY (CC-BY)
You are free to copy and distribute this work, and adapt (change) it for your own purposes, as well as make commercial use of the work. The one caveat is that you must attribute the piece to the author (or licensor), but not in a manner that suggests they endorse you or your product.
Creative Commons—BY—Share Alike (CC-BY-SA)
This is very close to the Creative Commons BY license in that you are allowed to copy, distribute, and adapt the piece for commercial use with proper attribution. However, this license places an additional condition on the piece’s use that any derivative work also be distributed under the same (or similar) license.
Creative Commons 0 (CC0)
The Creative Commons 0 license places items in the public domain. Public domain works are those in which the intellectual property rights have expired, have been forfeited, or not covered at all. Creative Commons 0 waives all copyrights that you have with the work. Essentially you are allowed to use anything with Creative Commons with no restrictions placed on your derivative works.
Gnu General Public License (GPL)
The GPL license is the brainchild of Richard Stallman who is a strong advocate for freely distributable software on the Internet. This license allows you to use the software freely, with the caveat that you freely distribute any code or asset that derives from that software. Unlike other free licenses, the GPL does allow you to charge money for your contributions, but must either include your source code in the distribution, or have a written offer to provide the source upon request. Becuase of this last statement, many commercial software vendors will not use software developed under a GPL license in their products.
BSD style licenses allow you to distribute code as a binary, and has the distinct provision that allows anyone to retain the option of commercializing the final result. The license was designed to help keep legal issues of mult-organizational collaborations out of the picture. Unlike the GPL which is designed to prevent the proprietary commercialization of Open Source code, the variants of the BSD license place minimal restrictions on what you are able to do with the software in the future.
Unlike the GPL, Apache 2.0 does not require you to redistribute changes you make to the underlying code. When using the Apache 2.0 license, if there is a NOTICE text file in the original work, all derivative works must also contain the same NOTICE, with any of your additions in and addendum. One of the really nice features of this license is that you can have different licensing terms for your modifications. This fact allows software builders to take a core project that is open source, then build upon the software while retaining intellectual property rights on those modifications. Thus, Apache 2.0 is a good option to use if you plan on retaining some closed source modifications or improvements to opensource code. This license is compatible with GPL.
Mozilla Public License (MPL)
The MPL was the first license that addressed the licensing of software using GPL licensed software as part of a larger project. This license states that if you use MPL software in your code, you must also release your code under MPL. MPL has a file-level copyleft provision that allows you to apply the copyright at the file level.
The MIT license permits the use of software within proprietary software, but restricts developers from using the author’s name to ‘endorse’ your software additions in promotional materials without the express written permission of the author. This license is compatible with GPL as it also allows the redistribution, and combination, of software that uses the MIT License.
There are situations in which one license is not enough. Many opensource projects use a dual, or multi-license to allow individuals, and corporations, to choose the license that best fits their needs when redistributing their software. An example of this the the Ruby language source code. Before version 1.9.3, the source was released under the Ruby license and GPL 2.0. When 1.9.3 was released, the developers changed the licensing to a two-clause (Simplified BSD) license. The change gives developers a bit choice in what they are permitted to do with the source code, allowing those with the requisite knowledge the ability to change the underlying source to make a “better” proprietary language, and redistribute it in a binary format.