The Free Software Foundation defines free software as “software that comes with permission for anyone to use, copy, and distribute, either verbatim or with modifications, either gratis or for a fee.” The software licenses of our community are the enablers of this freedom.
When a programmer or organization decides to release a piece of software under a free software license, he can either choose from the preexisting free software licenses or create an entirely new license. With a large number of licenses in existence and many organizations choosing to create their own licenses, the need was established for a litmus test that could be applied to each new license to determine if it was indeed a free software license.
The Debian GNU/Linux developers first addressed this need by establishing and implementing the Debian Social Contract and the Debian Free Software Guidelines (DFSG), both initially written and presented to the Debian developers by Bruce Perens.
Software licenses adhering to the DFSG are clearly marked as free software in the Debian GNU/Linux distribution. After Christine Petersen of the Foresight Institute coined the term “Open Source,” Eric Raymond and Perens created the Open Source Initiative. As such, the two took the DFSG and renamed it the Open Source Definition (OSD). Thus, free software and Open Source software are one and the same – they both have the same extremely precise definition.
Over time, a number of free software licenses have become commonly used in our community. These licenses have created the legal foundation on which we contribute and share our work. The differences between the commonly used free software licenses are not always clear to the layperson, so we’ve outlined them here. However, an overview of the licenses is no substitute for the knowledge and understanding that can be gained from reading the actual licenses. The majority of the commonly used free software licenses are well written, easy to read, and lack legalese.
Copyleft and public domain
Free software licenses can be divided into two categories: copyleft and non-copyleft licenses. Copyleft is a general free software licensing concept that proceeds to take copyright law and turn it upside-down. A copyleft license does not permit redistributors to add additional restrictions when they redistribute or modify the software. Copylefting a piece of software insures that it will always be free software, even if it is has been modified. Non-copylefted software allows for users to add additional restrictions when they redistribute or modify the software.
Many in the free software community license their software under copylefted terms, because it ensures that every user receives the freedoms implied by the term “free software.”
Since modifications to copylefted software must remain free, copylefted software grows in a way that is not possible with non-copylefted software.
The Linux kernel is a prime example of the community benefit of copyleft. The kernel has grown and matured at an enormous rate because all modifications to the kernel remained free and were contributed back to the community. Copyleft prevents software hoarding — everyone benefits.
Before discussing the various licenses, it is important to note that disclaiming one’s copyright and putting software into the public domain has the effect of making a piece of software free. Putting a program into the public domain is the simplest way to make it free. However, there are very few restrictions on the ways in which public domain material can be used. People could share the program and their improvements, but they could also change the program into proprietary software.
Common free software licenses
Free software licenses provide limits on the modification and redistribution of programs. Commonly used copyleft licenses are the GNU General Public License (GPL) and the GNU Lesser General Public License (LGPL). Commonly used non-copyleft licenses are the XFree86-style licenses and the recently created Mozilla Public License (MPL). The Artistic license doesn’t really fit into either category, but nonetheless, it’s used by Perl and various other free software programs.
All of these licenses grant users the same basic freedoms to run, copy, distribute, study, change, and improve the software. Here we’ll focus on the primary differences among these licenses. The OSD enumerates the specific freedoms all these licenses grant.
GNU General Public License
The GNU General Public License (GPL) provides the foundation on which the majority of GNU software is built. Software licensed under the GPL, simply stated, will always be free — including all derivative works. Any piece of software that links to a program covered under the GPL must at least permit distribution under the terms of the GPL. Prominent examples of software licensed under the GPL include the Linux kernel, GNU Emacs, and GCC (GNU C compiler).
GNU Lesser General Public License
The GNU Lesser General Public License (LGPL) — previously known as the GNU Library General Public License — permits use of a library by a proprietary program. The LGPL compartmentalizes a library into a set of procedures that can be accessed by a proprietary program. However, any modifications to the library must be released as free software.
The LGPL also requires that the library be easily replaceable when linked against proprietary code (assuming binary incompatibilities have not been introduced into the library). The proprietary code must link against the LGPL library using either dynamic linking or, if static linking is used, the vendor must provide object files such that the user can relink the proprietary program against a new version of the LGPL-covered library.
The XFree86-style licenses refer to a group of non-copyleft licenses that are based on the Berkeley Systems Distribution (BSD) license, but lack the BSD advertising clause.
The BSD advertising clause hampers the ability to advertise free software:
Including one sentence in an advertisement is not a particular large problem; however, people typically replace “University of California” with their own institution or name. When a software project has many contributors, the result is a profusion of sentences that must be added to all advertisements.
Specific examples of XFree86-style licenses include those for XFree86, X11, and FreeBSD. All of the these licenses are equivalent in meaning but differ slightly in wording. XFree86-style licenses permit redistributed copies to become proprietary software.
Releasing a program under an XFree86-style license is similar to placing a program into the public domain, except the copyright notice must be preserved. XFree86-style licenses are noticeably shorter than other software licenses. The majority contain wording similar to the following:
The Artistic License was created for Larry Wall’s Perl scripting language. However, the Artistic license is extremely confusing and poorly worded. Lawyers would likely advise against the use of this license. The Artistic license is filled with loopholes.
For instance, one cannot sell a copy of software covered under the Artistic license, but one can sell a copy of the software if another piece of software is bundled with the Artistic licensed software. Fortunately, Perl is dual-licensed under both the Artistic license and GNU GPL.
Mozilla Public License
The Mozilla Public License (MPL) is most similar to the XFree86-style licenses. The main difference is in the semi-copyleft nature of the MPL. Modifications to existing source code must be released under the MPL. However, any added subroutines in separate files need not be released under the MPL. Proprietary extensions to MPL covered software can be easily added.
Yet even though the MPL is a free software license, it does have one downfall for the free software community: it is incompatible with the GNU GPL. Source code cannot be shared between projects licensed under the MPL and GNU GPL.
With an abundance of free software licenses coming into existence, license compatibility is becoming an extremely important issue. Compatible licenses allow for source code covered under one free software license to be combined with source code covered under a different free software license (see Table 1).
The majority of free software in existence is covered under the GPL and XFree86-style licenses. Being able to share code with existing free software is a valuable trait of a free software license.
Freedom of choice
The licenses primarily differ in the rights they extend to proprietary software developers (see Table 2).
When choosing a free software license, one must consider license compatibility and what rights to extend to those who are not part of the free software community.
Free software licenses give users the freedoms they deserve to run, copy, distribute, study, change, and improve the software they use. When a developer releases software under free terms, regardless of the license chosen, everyone in the free software community benefits – including the end user.ø
1. The Free Software Foundation (FSF), brainchild of Richard M. Stallman, is the home to all things GNU.
Paul Fisher is a freelance consultant and GNU hacker based in North Carolina. He is also the host of open source IT’s discussion forum on free and open source software.
Copyright 1999 Paul Nivin Fisher