This is a quick overview of copyrights and licenses for software developers who may not know their rights under United States law. I cannot speak for international copyright law.
Disclaimer
This article presents legal information but does not provide legal advise. Although all information is correct to the best of my knowledge, I will not be held responsible for the consequences of actions you take based on information found to be incorrect or misleading.
The first time that a piece of software is published, whether it be in binary or source form, it automatically gains copyright status. This is true even if you don’t include the magic words Copyright (c) 2013 David Foster
.1
That is, other people don’t get these rights. Such rights include (but are not limited to):
But then you might ask how download sites like Download.com can operate: If by default only the original author has the right to distribute the software they create, a download site would need to get special permission (i.e. a license) to distribute most programs on their site, which would be time consuming (and therefore expensive).
In reality, download sites generally rely on software authors to not enforce their copyrights. Which brings us to another point:
Enforcement takes the form of the copyright holder actively looking for infringers: other people who are distributing or selling the software without permission.
For example, the MPAA may issue a DMCA takedown request to a YouTube user who has (without permission) posted an episode of a TV show that MPAA owns. If the user does not comply with the takedown, the MPAA may sue the user for infringement.
Licenses may be issued to individuals or companies. For example a particular distributor may be granted the right to market and sell the software on behalf of the original developer.2
For open source software, licenses are typically granted to the community as a whole (i.e. every recipient of the program). This is typically done by including a file called LICENSE
or COPYING
with the software. A license may also be found in the software’s README
.
You can write your own custom license (if you feel comfortable writing in legalese). Or you can use one of the more common existing licenses from the community. (See Common Licenses below for a list.)
Sometimes the same piece of software is offered under multiple licenses.
For example the Qt GUI toolkit has been available under both the GPL license and (with payment) a commercial closed-source license for a long time. Since companies don’t like basing their own closed source software on GPL-licensed original software, this gives them an option to use a more corporate-friendly commercial license.
When creating a new piece of software that is based on or uses dual-licensed software, you should document which license the original software is being used under.
If you are the original author of a piece of software, you can issue a new version of the software under additional licenses.
Under rare circumstances, the license provided with software can change.
As the copyright holder of a piece of software, you may decide to release a new version with a different set of licenses than prior versions. For example you could change the license offered from BSD to GPL, a rather radical change. Such a change would only be in effect for the newly released version - it would have no effect on older released versions.
If you are not the copyright holder of a piece of software, you cannot change the license(s) under which it is offered.
If there are contributors beyond the original author whose changes have been incorporated into the software, they become partial copyright holders in the software as well unless they explicitly waive their copyright interests via a Contributor Agreeement or similar document. In the event of multiple copyright holders, all holders must agree to any proposed changes in the set of licenses under which the software is offered. Since there may be a large number of contributors (and thus copyright holders), it may be impossible to get permission from everyone, thereby making a license change infeasible.
Projects that are particularly aware of copyright concerns may require all contributors to sign a Contributor Agreement that either waives all copyright interests or explicitly assigns the copyright associated with all contributions to the original author.3
All software licenses I have seen explicitly disclaim all warranties. Meaning that if the software harms someone, you can’t sue the developer for it. This is great for software developers but in my opinion bad for society.
Here are the most common open source licenses, arranged generally from most permissive to most restrictive.
If you don’t care about the details and only want to know when to use which license, skip to the summary.
It is best to pick the license whose terms convey the message you want to send:
Now that I’ve figured all of this out, it’s time to update the licenses I’m using for my own open source projects.
However if you do include the magic words Copyright (c) 2013 David Foster
it is easier to demonstrate willful infringement when you sue someone for infringing your copyright. Willful infringment entitles the copyright owner to higher damages (i.e. payments from the infringer) than vanilla infringement.↩
If you sell any apps on the App Store, you signed an agreement giving Apple such marketing rights.↩
For example my present company Splunk requires that all contributors to its open source projects sign a Contributor Agreement of this type.↩
Technically the state of being in the “public domain” is not a license. Any work explicitly released into the public domain is not subject to copyright law at all. In particular there is no copyright holder and can never be a copyright holder in the future.↩
At face value this doesn’t actually seem like a restriction. However the LGPL text cautions, “It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.”↩
The GPL is ambiguous with respect to whether a piece of software that you create based on the GPL-licensed software (including merely linking to it) should be considered a derivative work or not. If so, then the GPL is truly “viral”: any piece of code that interfaces with GPL-licensed software must also be licensed under the GPL. If not, the GPL still specifies unambiguously that programs based on GPL-licensed software must be distributed with all accompanying source code. Neither proposition is tolerable for most corporate software entities.↩