Why should you pick a license?
In other words, why not just put code online without a license? A license clarifies the conditions under which your code can be re-used. In absence of a license, the author still retains copyright, and the conditions under which the code can be used are unclear.
Also see "Why is an open-source licence useful?" on the Software Sustainability's Choosing an open-source licence page.
Picking a license: first questions to answer
Is the thing you want to license primarily computer code or primarily data?
- Code: look at software licenses
- Data: look at data licenses
Software
- Are you ok with your code becoming part of a closed-source commercial software product?
- No: GPL
- Yes: permissive licenses (MIT/BSD/Apache)
- Do you want to force users to publish their improvements to your software, or to software they develop based on your software, under the same licence?
- No: permissive licenses (MIT/BSD/Apache). This makes the code more broadly usable, but also allows people to take the code without sharing their improvements to it.
- Yes: GPL. This ensures that any future changes/improvements to the code remain free and open.
- Should commercial usage be possible?
- Commercial use in form of services sold that are performed with the help of the software cannot be restricted with existing software licences.
Data
NOTE: This part is lacking a text describing the ODbL license (http://opendatacommons.org/licenses/odbl/) and its advantages/disadvantages compared with the Creative Commons licenses.
- Do you want to assure that derived works must be published under a similar (compatible) license?
→ Creative Commons Share-alike (CC-BY-SA). This is the license for example chosen by Wikipedia.
- Do you want to allow commercial use?
→ Creative Commons Non-commercial (CC-BY-NC) or (CC-BY-NC-SA)
- Do you want to allow others to share changes or improvements to your data, or only the unchanged original data that you provide?
→ Creative Commons No Derivatives (CC-BY-ND) or (CC-BY-NC-ND)
Important Licences and their differences
Software
Q: What main licenses are there?
A: There are two main groups of licenses:
- GPL licenses (GPL, AGPL, LGPL)
- "Permissive" licenses: BSD, MIT, Apache
The main difference between these two groups is an ideological one. The permissive licenses allow code to be re-used with no restrictions, including the possibility to build commercial software for which new code is no longer made publicly available at all. GPL licenses, on the other hand, ensure that improvements are always shared under the GPL as well, and GPL-licensed software can not be included in “non-free” software.
GPL licenses:
- GPL: the basic GPL license
- AGPL: Affero GNU GPL. closes a loophole in the GPL that permits somebody to operate a web application that uses GPL code, without making the code available to users
- LGPL: Lesser GPL. Permits non-free software to link to the LGPL-licensed software, which the GPL does not.
Q: What does sublicensing mean?
"The basic idea [...] is that if this is granted, a licensee can become a licensor of some of the rights of the grant they received regardless of any other claim they may have to copyright control over what they distribute." Source: https://programmers.stackexchange.com/questions/189633/what-sublicense-actually-means
Sublicensing allows somebody to relicense all or part of the licensed software, for example, to use BSD-licensed code in a closed-source commercial application.
Q: What are the differences between license versions?
TBA
Data
- Creative Commons licenses
- Public Domain Dedication and License (PDDL)
- OSM-Licence: Open Data Commons Open Database License (ODbL)
- There is a Datenlizenz Deutschland used by govdata.de, but there are no real differences to Creative Commons except that a German data portal wanted to have a German licence which is checked by German lawers
- Attribution License (ODC-By): (analog to CC-by) differs from ODbL mainly because of missing copyleft regulation, demands basicly to mention the author
Other considerations
At what point of time to choose / can I change license?
With the first release (if possible already for “small” releases like within your institute) detmermine a licence
Can I change the licence: The important thing is that, when you receive a copy of source code with a particular license, you have been granted that license. So long as the license doesn't have a revocation clause, it's permanent. Stackoverflow question: www.stackoverflow.com/questions/3498237/what-happens-when-an-open-source-project-changes-its-license
But the license can be changed: You can change the licence for the next version/release if all contributors (copyright holders) agree, or have previously agreed on the possibility of doing so, via a contributor agreement. Search for "contributor (license/assignment) agreement" online, for pointers on how to enable the latter up front. (cf. http://opensource.org/faq#contributor-agreements, http://wiki.civiccommons.org/Contributor_Agreements)
Open Question: Is it better to start with the most restrictive copyleft license (GNU GPL) and possibly relax licensing arrangements at a later date or for specific people/institutions?
Links and further information
- The Software Sustainability Institute (UK) provides information and answers to frequently asked questions. The questions dealt with include:
- “Why is an open-source licence useful?”
- “How can I tell the difference between open-source licences?”
- “What happens if I am using someone else's code in my software?”
- “What do I need to do before applying my choice of licence?”