Choosing a software license

A person who writes a computer program automatically holds the copyright on the program. This allows the author to control copying, using and adapting the computer program. To make software available to third parties, the author must give these third parties authorization for certain operations. This is called a license. Depending on the wishes of the author, several standard licenses are available. Of course the author could also write his own license.

Exclusive rights

Copyright grants the maker of a work the right to restrict copying and distribution of the work. Distributing modified versions of the work is also not permitted without authorization of the original author. This is called a "derived work" in copyright law. Using a computer program requires copying the program from hard disk to working memory. Since the act of copying can be restricted by copyright law, this gives the author of a work a possibility to control usage of his program.

Often the author wants other people to use or distribute his computer program. Before they can do this, the author must authorize them. He could charge these other people for this authorization, but this is not required. Such an authorization, which often will include certain conditions, is referred to as a "license" for the work. Such a license can be specific for one particular recipient (this is often the case with custom-made applications), but it can also be written in a generic way, like with most of the standard software sold in stores or available for download on the Internet.

So, if you want to sell a program you have written, it is recommended to carefully draft appropriate license conditions. This also applies to people wants to distribute their software freely, for example by placing it on their website. Copyright law also applies to freely available software, and so the person downloading a program must always have permission for executing and redistributing it. The author has two options: he can choose a standard license, or write his own.

Standard licenses

A large amount of computer programs is being distributed under standard licenses. The big advantage of a standard license is that everybody knows what is and is not permitted under this license. Further, the wordings in the standard license that often be reviewed by a large number of people and are more likely to be legally accurate. It also saves the author from having to spend time and effort in drafting the license conditions. A possible disadvantage is that the conditions from a standard license are not always exactly what the author wants. For instance, many people who write software as a hobby do not want others to commercially exploit their software. Most standard licenses, however, do permit third parties to charge money for distributing software.

The GNU General Public License

The GPL is probably the most famous standard software license, as well as one of the very first ones. Software distributed under the GPL may be used by anyone for commercial and noncommercial purposes, and may also be redistributed without restrictions. The only requirement is that the source code is included in the distribution. What makes the GPL special is its conditions on creating derived works. This is permitted, but only if the derived work is also licensed under the GPL. This way it is not possible for someone to take GPL'd software and turn it into a proprietary program, keeping the source code secret.

According to some this makes the GPL a "license virus": incorporating code distributed under the GPL in another computer program "infects" that you program with the license requirements of the GPL. This was actually one of the reasons for the creator of the GPL, Richard Stallman. Because of the GPL, people who want to use software under the GPL in their own programs must now publish their modifications to the world. This way these modifications become available to society, allowing everybody to profit from it. Releasing software with "secret" modifications is not possible if it is based on GPL'ed works.

Some examples of software distributed under the GPL are the operating system Linux, the MySQL database manger, the GCC compiler, the EMACS editor and hundreds of other programs.

The BSD license

The BSD license is one of the shortest standard licenses in existence. The only requirement imposed on users of software under this license is that they must mention the name of the author if they incorporate the software in their own programs. Other than that, all use and all forms of redistribution is permitted, including redistribution for commercial purposes. This makes this license especially popular for people who want to see their software used by many people, and who do not object to others making money off their software. The operating systems FreeBSD and OpenBSD and the popular web server Apache are prominent examples of software distributed under this license.

A comparable license is the MIT license, which only requires a statement that all liability for any damages whatsoever is disclaimed.

The Artistic License

Another popular license is the Artistic License. Software covered by this license may be used and redistributed without further restrictions. Modifying the software is also permitted, but modified versions that also be redistributed if the modifications are freely available to all. It is also not permitted to sell other people software covered by the Artistic License, something that is permitted by most other standard licenses. The most famous example of software distributed under the Artistic License is of course the Perl interpreter, with which Perl scripts are executed.

Public domain

Although it is not really a license, a lot of software is being distributed as "public domain". This term means that there is no copyright on the software whatsoever, and so anyone is free to use, distribute, and modify the software, as well as to distribute modified versions. There are no restrictions on commercial expectation of public domain software, and it is not even required to identify the original author. Basically, the author has given up all his rights and no longer restrict anything third parties do with the software. An advantage of putting the software in the public domain is that anyone can use it, and the author can give up all responsibilities for the software.

Copyright law in most European countries not only provides for copying and distribution rights, but also for so-called "moral rights", such as the right to be identified as the author. The author can often only give up a subset of his moral rights. For example, in the Netherlands the author cannot give up the right to object against modifications to the work that hurt his reputation or name (art. 25(1) sub d Copyright Act 1912). Strictly speaking, this means that a Dutch author cannot put his work in the public domain, although in practice this small restriction should not make much of a difference.

Writing your own software license

It is of course possible to write your own license, rather than using a standard license. When drafting such a license it is often difficult to anticipate all possible situations in which others will want to use and/or distribute the program. The name a few: may someone put the program on a CD-ROM and sell that? Does it matter whether the CD-ROM contains a collection of software or only that particular program? May modified versions bear the same name?

Additionally, even if you have determined the conditions under which you would like to make the software available, it is even more difficult to properly lay down the conditions in a license in legally sound terms. A license such as "Permission is hereby granted to use this program in any way and for any purpose, to modify it and to distribute it" does not authorize third parties to distribute modified versions, although this was probably the intent of the author. So unless an author is willing to invest sometime and efforts in drafting his own license, it is strongly recommended to always use a standard license.

Hyperlinks