Jump to content

FOSS Licensing/How to Make the Source Free or Open

From Wikibooks, open books for an open world

Under current legal norms, software is protected by copyright law. Therefore, the FOSS movement has developed many different FOSS licenses to enable software developers to easily state that they grant their users some rights that copyright law grants exclusively to them. FOSS licenses also serve as agreements among FOSS developer communities.

There are many FOSS licenses, and their characteristics differ. In a later section of this primer, we will focus on three major licenses: the GNU GPL, the LGPL and the BSD License. They not only represent three very different styles of FOSS licensing but are also the most pervasively adopted licenses.[1] Table 1 helps us to get a quick and general overview.[2]

Table 1
Obligations of Licensee/License Original Work Derivative Work
As a principle, should redistributions provide source code? When redistributed WITHOUT source code, can the distributor of source code alone charge a fee higher than the physical transfer cost? When redistributed WITH the source code, can the distributor charge a fee higher than the physical transfer cost? Sub-licensable? Derivative works should adopt the same license as adopted by the original work Is source code required to be open? Should the copyright notice of the original work be attached? Is documentation required to be provided?
GNU GPL v 2 Yes No Yes No Yes, Copyleft Yes Yes Yes
LGPL v 2.1 Yes No Yes No Work based on the library
Yes, Copyleft Yes Yes Yes
Executable that links a "work that uses the Library" with the library
No No Yes Yes
BSD License No Yes Yes No No No Yes No
Artistic License Yes (Source Code is always redistributed) No No No No No No
MIT License No Yes Yes Yes No No Yes No
Apache License v 1.1 No Yes Yes No No No Yes No
Apache License v 2.0 No Yes Yes No No No Yes No
Mozilla Public License v 1.1 Yes (Source code is always redistributed) Yes Yes Yes, the additional rights described in MPL may be included in an additional document Yes Yes Yes
Zlib/libpng License No Yes Yes No No No No No
QPL Yes No Yes No QPL requires all modifications must exist in a form separable from the original work, e.g. a Patch (does not allow people to Qt Public modify the original work directly) and regulates the patches with clauses that are similar to the clauses other licenses regulate the derivative works.
No Yes Yes No
Common Public License v 1 Yes No Yes Yes No Yes Yes No
Academic Free License v 2.1 No Yes Yes Yes No Yes Yes No
PHP License v 3.0 No Yes Yes No No No Yes No
Open Software License v 2.1 No Yes Yes Yes Yes Yes Yes Yes
Zope Public License v 2.0 No Yes Yes No No No Yes Yes
Python Software Foundation License v 2.1.1 No Yes Yes No No No Yes Yes

The FOSS licenses listed in Table 1 have the following common features:

  • The source code of the original work is open.
  • Making copies of the original work is allowed.
  • Distribution of the original work is allowed. A copyright notice should be attached to all distributions.
  • The license grant is non-exclusive, global, royalty-free, and for all purposes.
  • Warranty is disclaimed.

However, these FOSS licenses differ from each other in how these rights can be exercised. For one, although authors are always required to provide access to the source code , whether redistributors are also required to provide such access varies from one license to another. For example, when redistributing a BSD-ed program, one is not required to provide the source code.

Even for licenses that require redistributors to provide the source code, there are different regulations regarding the distribution fee the redistributors can collect. The GNU GPL and the LGPL are particularly detailed about when one can collect a fee higher than the physical transmission fee. This is because the GNU GPL and the LGPL offer redistributors various ways to distribute the program, with or without the source code, while simultaneously ensuring that redistributions remain free software. An individual can sell free software for any price she wishes, since the market would help to keep the price within a reasonable range. But if a package is sold without the source code, the fee collected for the distribution of the source code itself cannot exceed the cost of physical transmission.

Clauses on derivative works vary widely. Although access to the source code of original works is a requirement, access to the source code of derivative works might not be. And even if a FOSS license requires the source code of derivative works to be open, it may not require them to be licensed under exactly the same license as the original work. For example, although a derivative work of a GPL-ed program also has to be licensed under the GNU GPL, a derivative work of a BSD-ed program does not have to be licensed under the BSD license. As a matter of fact, a derivative work of a BSD-ed program does not even have to be distributed along with source code.

FOSS licenses also differ on the possibility of allowing a FOSS program to be combined with proprietary programs. When combining different programs into a larger project, it is quite inevitable that the larger project, while embracing all or part of the source code of the programs combined, becomes the derivative work of all of the combined programs. For example, project ABC is combined with a GPL-ed program A, a BSD program B and a proprietary program C, and has source code from all three programs. As a derivative work of program B, project ABC need not be licensed under the BSD License or even required to open its source. However, as a derivative work of program A, project ABC is required to be licensed under the GNU GPL.

Thus, the developer will have no choice but to license the whole project ABC under the GNU GPL, or find an alternative to program A, especially if she wishes to make it a proprietary software project.

This is why the GNU GPL is considered by proprietary companies to have the so-called “viral” effect, and it is regarded as unfriendly to the proprietary software development model. But the GNU GPL is designed to serve the interests of the free software community rather than the proprietary business sector. The FSF has also designed the LGPL to encourage greater use of free libraries even in proprietary software projects.

The three typical FOSS licenses – the GNU GPL, the LGPL and the BSD – are explained further below.

GNU General Public License

[edit | edit source]

The GNU GPL is the classic free software license. It is also the most well-known and the most widely adopted among all FOSS licenses. The GNU GPL was developed to fulfil the freedoms defined by the Free Software Movement. It is not just a license, but is also an expression of the basic ideas behind the movement

Copyleft

[edit | edit source]
The idea
The way the GNU GPL guarantees freedom is also called “copyleft”. While the traditional proprietary model says “copyright, all rights reserved”, the GNU GPL says “copyleft, all rights reversed”. Copyleft is not just about making the original work free when the copyright holder releases it, but also about keeping it free when it is being further distributed and modified. Although there is no limitation when derivative works are created only for internal use, when they are being distributed to the public, copyleft is applied to make sure that derivative works are as free as the original work.
How it works
Copyleft prevents free software from being turned into proprietary software. It uses copyright law to achieve the exact opposite of its usual purpose. Instead of being the means of privatizing software, in copyleft licenses the rights granted to authors are reversed to keep the software free.[3]

Unlike works in the public domain that everyone is free to exploit, a GPL-ed work or a copyleft-ed work is copyrighted. The author of the GPL-ed work does not give up her rights as a copyright holder, but exercises these rights in a way different from a traditional copyright holder.

If authors who want to make their software free simply disclaim their rights as copyright holders and release their work into the public domain, it will expose the work to the danger of being privatized and closed again. Instead, to keep their works and their derivates free, authors must claim their rights, and with the exclusive rights granted to them, they include the copyleft clause so as to regulate the ways other people can make use of their work. By licensing their work under the GNU GPL, authors are allowing users to have the rights stipulated by the Free Software Movement.

Also by licensing under the GNU GPL, authors require people who wish to distribute the program and developers who wish to modify the work and distribute the modified works, to take on some responsibility in keeping derivatives as free as the original work.

Major Terms and Conditions of GNU GPL

[edit | edit source]
User’s freedoms
When a program is licensed under the GNU GPL, besides the freedom to access the source code, users are also free to:
  1. Run the program (Section 0).
  2. Make copies of the program (Section 1).
  3. Redistribute the program, even for commercial purposes, provided an appropriate copyright notice and disclaimer of warranty are retained (Section 1). Redistribution in the object code or executable form is also possible, so long as the source code is available for all recipients (Section 3).
  4. Prepare and distribute derivative works of the program, provided the derivative works are also licensed to all third parties under the GNU GPL (Section 2).
No warranty
Though the distribution of the work can be commercial, the work itself is licensed free of charge. Therefore, there is no warranty for GPL-ed software (Sections 11, 12). The distributor could choose to offer warranty protection in exchange for a fee (Section 1).
License issued directly from the author
The work is not sub-licensable. When a program is redistributed, recipients still receive the license from the original licensor. Redistributors may not impose any further restrictions on recipients' exercise of the rights granted in the GNU GPL (Section 6).
Acceptance and termination
By the act of modifying or distributing the GPL-ed program, a person indicates his acceptance of the license (Section 5). The license grant is irrevocable but when the licensee violates the license, the rights granted will be terminated automatically. However, the rights of those who received the copy of the program from her will not be affected (since they received the license from the original licensor) so long as they remain in full compliance with the license (Section 4).
Co-exist with other legal obligations?
The GNU GPL does not concede to any contradictory conditions that are imposed on the recipients. If compliance with the license is not possible as a consequence of a court judgment, allegation of patent infringement or any other reason, then the recipient may not redistribute the program at all (Section 7). A GPL-ed program cannot be incorporated into a proprietary program, or linked with a proprietary library.

The full GNU GPL text can be found at http://www.fsf.org/licenses/gpl.txt

The FSF also maintains a thorough FAQ on the GNU GPL which can be accessed at http://www.gnu.org/licenses/gpl-faq.html

GNU Lesser General Public License

[edit | edit source]

Apart from the GNU GPL, the FSF offers a special copyleft license for libraries. The GNU Lesser General Public License (LGPL) permits LGPL-ed libraries to be linked with proprietary software.

This exception is to serve different situations. It can be a strategic decision to encourage the development of proprietary applications on the GNU system.[4] For a free library whose features may be largely replaced by other proprietary libraries, releasing it under the LGPL rather than the GNU GPL can encourage its wider use,[5] and thus make possible more improvements on it. With a larger body of free software users, there would also be wider support for free software in general.[6]

However, the FSF still encourages people to use the GNU GPL for their libraries rather than the LGPL, especially for those libraries that have a significant number of unique capabilities. This is because people who are interested in utilizing such GPL-ed libraries will have to release their modules as GPL-ed software too, resulting in more useful modules and programs available in the free software environment.[7]

Major Terms and Conditions of LGPL

[edit | edit source]

The LGPL is identical to the GNU GPL in many ways, including clauses that disclaim warranty, declare that the license is issued directly from the author, and specify when the license is applied and terminated. Also, other legal obligations applied upon users are the same as those for the GNU GPL.

On users’rights, the LGPL distinguishes two different kinds of situations when one uses a library. A “work based on the Library” means either the Library itself or any derivative work under copyright law (Section 0), while a“work that uses the Library” means a program that contains no derivative of any portion of the Library but is designed to work with the Library by being compiled or linked with it (Section 5).

Works Based on the Library
In the case of a “work that uses the Library”, i.e., the Library itself and its derivative works, the terms are very similar to those in the GNU GPL.
  • User’s Freedoms
    1. Run the program (Section 0).
    2. Make copies of the program (Section 1).
    3. Redistribute the program, even for commercial purposes, provided an appropriate copyright notice and disclaimer of warranty are retained (Section 1). Redistribution in the object code or executable form is also possible, so long as the source code is available for all recipients (Section 4).
    4. Prepare and distribute derivative works of the program, provided the derivative works are also licensed to all third parties under the LGPL (Section 2c).
    In addition, one may opt to apply the terms of the GNU GPL instead of the LGPL to a given copy of the LGPL-ed library, especially when one is incorporating part of the code into a program that is not a library (Section 3).
Works that use the Library
In the case of a “work that uses the Library,” the work itself is NOT subject to the LGPL. But when linking the “work that uses the Library” with the Library, an executable version that is a derivative work of the Library would be created, and such a version is covered by the LGPL (Section 5).

Although the LGPL allows authors to distribute the object code of executables (Section 5) and license these under terms of their choice, it is also required that those terms permit modification of the work for the customer’s own use and reverse engineering. When distributing executables, the author has a choice either to distribute the Library together, provided the source code of the Library is made available in those ways similar to the distribution of GPL-ed programs, or not to distribute the Library together but only use a suitable shared library mechanism to link with the Library (Section 6).

By creating this category, the LGPL provides a way for LGPL-ed libraries to be used in proprietary programs. The full LGPL text can be found at http://www.fsf.org/licenses/lgpl.txt.

BSD Style Licenses

[edit | edit source]

The Berkeley Software Distribution (BSD) License was first used for the Berkeley Software Distribution, a version of Unix developed in the University of California at Berkeley.[8] It is easy to follow the BSD License template to create one’s own license by changing the values of owner, organization and year, which appear in the copyright notice and the license. Unlike the GNU GPL and the LGPL, BSD style licenses are not copyleft licenses. A BSD License allows people to freely distribute and modify the original work, but it does not require that the modified works be as free as the original work. BSD style licenses are relatively simple and have only limited restrictions on the use of the software.

  • User’s Freedoms
    1. Make copies and redistribute the program, with either its source code or its binary code. The distributor is not obliged to provide the source code.
    2. Prepare derivative works and distribute them, either with their source code or binary code. The author is free to choose either FOSS or proprietary licenses for derivative works.
    3. Incorporate the program into proprietary software.

The original BSD License (four-clause BSD) has an advertising clause. The revised BSD License (three-clause BSD) is very similar to the MIT License, but the latter does not have the “no endorsement for derivative works” clause. There is also the two-clause BSD, which has taken away the endorsement clause and is most similar to the MIT License.[9]

Multiple Licensing

[edit | edit source]

It is important to note that a work can be licensed under more than one license. The choice of license reflects the type of relationship that the author wishes to have with the user of the copyrighted work. Since there can be more than one kind of user, and more than one possible relationship, the copyright holder is entitled to choose different kinds of licenses for different situations.

Take OpenOffice as an example. OpenOffice is dual-licensed under the GNU GPL and the Sun Industrial Standards Source License (SISSL). Although OpenOffice states clearly that users are encouraged to use the GNU GPL to participate fully in the OpenOffice community, SISSL is provided as an alternative for developers and companies who are not able to use the GNU GPL.[10] ,[11] MySQL is another example. MySQL offers both the GNU GPL and a commercial license. Organizations that do not want to release their applications under the GNU GPL can choose to use MySQL under the MySQL Commercial License.[12]

What about Documentation?

[edit | edit source]

GNU Free Documentation License (GNU FDL)

[edit | edit source]

Good documentation and manuals are extremely important for FOSS programs. When they are not licensed as free/open, it is difficult for people to make complete use of relevant FOSS programs.

Although the GNU GPL is a license designed mainly for software, it can also be used for works that are not software, so long as it is defined clearly what the “source code” is when adopting the license.[13] The FSF also provides a license that is specially designed for documentation. The GNU Free Documentation License (GNU FDL or FDL) is a form of copyleft license for manuals, textbooks or other documents that grants everyone the freedom to copy and redistribute the documents, with or without modifications, either commercially or non-commercially.[14]

By applying GNU FDL to a document, the author grants users the right to make verbatim copies of the work, to modify the work and to distribute modified works. Since it is a copyleft license, it requires the copy and the distribution of modification of the FDL-ed work is also licensed under the FDL.

Creative Commons Licenses

[edit | edit source]
Table 2
Attribution required Allow Commercial Uses Allow Derivative Works Derivative works should be licensed under the same license as the original
CC BY Yes Yes Yes No
CC BY-NC Yes No Yes No
CC BY-NC-ND Yes No No
CC BY-NC-SA Yes No Yes Yes
CC BY-ND Yes Yes No
CC BY-SA Yes Yes Yes Yes
CC NC • No No Yes No
CC NC-ND • No No No
CC NC-SA • No No Yes Yes
CC ND • No Yes No No
CC SA • No Yes Yes Yes
GNU FDL Yes Yes Yes Yes

BY: Attribution. For any reuse and distribution, it is required that credit is given to the original author.

NC: Non Commercial. The work cannot be used for commercial purposes.

ND: No Derivative Works. The work cannot be altered or transformed; derivative works built upon the work are not permitted.

SA: Share Alike. It is allowed to alter and transform the work, and to prepare derivative works upon the work, so long as the resulting work is licensed under a license identical to this.

• Starting in 2004, Creative Commons made the “attribution” requirement the default in the second version. Thus only the first six CC licenses above remain in the second version.

Inspired by the FOSS development, the Creative Commons advocates for openness of digital content and is urging for a more reasonable and flexible layer of copyright in the face of increasingly restrictive default rules.[15]

In 2002, the first versions of Creative Commons Public Licenses (CC licenses) were released. By identifying major concerns of authors – i.e., whether attribution is required (attribution, BY), whether users are allowed to make commercial uses of the work (non-commercial, NC), whether users are allowed to make derivative works (no derivative works, ND), and when derivative works are allowed, whether they are required to be licensed under exactly the same license as the original work (share alike, SA) – Creative Commons developed a set of 11 different CC licenses. Each represents a unique combination of the above four conditions. Authors are free to choose among the 11 licenses and decide which best suits their needs and works.

In 2004 Creative Commons released the second version of CC licenses. Since the requirement of attribution has been widely adopted by users of CC licenses, the attribution requirement has become default, and thus there are only six CC licenses in the second version. However, the 11 licenses in the first version are not superseded and are still available (Table 2).[16]

CC licenses are designed for all kinds of digital content except for software, including art works, photographs, music and literary texts. CC licenses do not deal with the FOSS issue, since ideas in the works referred to are transparent and are not compiled into forms that cannot be perceived. Some CC licenses do not allow modification or for-profit use and might not be regarded as “free”. However, CC licenses are successful in spreading the idea of freedom and openness to the greater public, which might not be familiar with recent software developments fostered by FOSS movements.

Footnotes

[edit | edit source]