FOSS A General Introduction/Intellectual Property Rights and Licensing

What are the licensing arrangements for FOSS?

edit

FOSS is released under a variety of different licenses. There are two primary types of licenses and countless variants. The two main licenses are the GNU (recursive acronym for GNU’s not Unix) General Public License and the BSD-style licenses. A more detailed listing of licenses can be found on the FSF’s website at http://www.fsf.org/licenses/license-list.html.

The GNU General Public License (GPL)

edit

This is designed to ensure that user freedoms under this license are protected in perpetuity. Users are allowed to do pretty much anything they want to a GPL program, including copying, distributing and modifying. The conditions of the license primarily affect the user when it is distributed to another user.

Among the key provisions of distributing GPL software are:

  1. The distributor of a GPL program must also make available the source code to the recipient.
  2. Any changes made to a GPL program by the distributor must also be licensed under the GPL.
  3. Distributors may not place any non-GPL restrictions upon the users they distribute the GPL program to.
  4. Recipients of GPL software are granted the same rights to copy, modify and distribute the software as the original distributor.

GPL software forms a significant majority of FOSS: as much as 73 percent of FOSS projects.[1] One of the main motivations for the usage of the GPL in FOSS is assurance that once something is released as FOSS, it will remain so permanently. It is not possible to add additional licensing to strip away a user’s right to redistribute or modify the program. A commercial software company cannot take a GPL program, modify it and then sell it under a different, proprietary license.

The full text of the GPL can be found at http://www.fsf.org/licenses/gpl.html .

BSD-style Licenses

edit

BSD-style (Berkeley System Distribution) licenses are so named because they are identical in spirit to the original license issued by the University of California, Berkeley. These are among the most permissive licenses possible, because they basically permit users to do anything they wish with the software as long as:

  1. Attribution is given to the original licensor by including the original copyright notice in source code files; and
  2. No attempt is made to sue or hold the original licensor liable for damages.

Earlier versions required the acknowledgment of the University of California, Berkeley (or whichever organization released the original software) in all promotional material but this requirement has been dropped in most recent versions.

A large number of FOSS projects, including several critical components, are licensed under BSD-style licenses. Examples include:

  1. The Apache Web Server – the #1 web server used on the Internet today [2]
  2. The XFree86 Window System - the foundation of almost all graphical user interfaces in FOSS systems
  3. FreeBSD, NetBSD and OpenBSD – all variants based on the original Berkeley System Distribution (BSD) version of Unix; all are widely used on the Internet, especially FreeBSD, which runs Yahoo and Microsoft’s Hotmail services[3]

It is fairly easy to incorporate BSD-style licensed code into commercial applications. Even Microsoft has used some BSD code in the networking portions of its Windows code [4] in the past. Many companies include the Apache web server as part of their commercial software offerings. Unlike the GPL, BSD-style licenses do not require the distribution of source code, allowing a company to hide its modifications to the original code. Nor are companies required to grant users the right to view, modify or distribute the company’s modifications to the code.

A more detailed listing of different software licenses can be found in Annex II.

Can FOSS be combined with proprietary software?

edit

Combining FOSS with proprietary software is possible, depending on the manner of “combination” and on the specific license of the software. Of all the common FOSS licenses, the GNU GPL is the one that requires the most care. It defines “combination” as follows:

Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term (...) where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program. Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL—if you can't, or won't, do that, you may not combine them.[5]

In this case, if one uses a proprietary application in a FOSS operating system environment, the proprietary application is unaffected by the licensing of the FOSS system. An example of this is running an Oracle database on a GNU/Linux operating system.

An example of combining programs would be writing an application using the D-Bus message passing library. D-Bus speeds up the development of client and server programs by allowing programs to send messages to each other. D-Bus is licensed under the GPL. Because the completed application program (after a compiler has been through it) would contain source code from the Gnome application framework, the entire application would have to be licensed under the GPL.

However, other programs are licensed under a different version of the GPL called the Lesser GNU Public License (LGPL), such as the GLib utility library. A non-GPL program can use a LGPL library without having to be licensed under the GPL also.[6]

Other licenses are usually far less strict. Writing the same application above using a BSD-style license would only require keeping the attributions to the original licensor within the source code. The matrix below highlights the differences when distributing software combined with GPL or BSD-style licensed software:

Differences between GPL and BSD-style licensed software
GPL Licensed BSD Licensed
Must distribute original source code Yes No
Must distribute user-created source code Yes No
User-created source code must be GPL'ed Yes No

Footnotes

edit
  1. Wheeler, David, “Make Your Open Source Software GPL-Compatible. Or Else” [home page online]; available from http://www.dwheeler.com/essays/gpl-compatible.html; Internet; accessed on November 9, 2003.
  2. Netcraft, “May 2003 Web Server Survey” [home page online]; available from http://news.netcraft.com/archives/2003/05/05/may_2003_web_server_survey.html; Internet; accessed on June 9, 2003.
  3. Somogyi, Stephan, “BSD sleight of hand”, 3 April 2000, ZDNet News [home page online]; Available from http://zdnet.com.com/2100-11-519701.html?legacy=zdnn; Internet; accessed on November 9, 2003.
  4. “Microsoft, TCP/IP, Open Source, and Licensing“ Kuro5hin [home page online]; available from http://www.kuro5hin.org/story/2001/6/19/05641/7357; Internet; accessed on November 9, 2003.
  5. “Frequently Asked Questions about the GNU GPL” [home page online]; available from http://www.fsf.org/licenses/gpl-faq.html#MereAggregation; Internet; accessed on November 9, 2003.
  6. “Why You Shouldn't use the Lesser GPL for your next library“ [home page online]; available from http://www.gnu.org/licenses/why-not-lgpl.html; Internet; accessed on May 3, 2012.