2.3. Free Software Licenses As described in Chapter 1, the term Open Source was coined in an attempt to resolve the confusion surrounding the word free in "free software." The Open Source Initiative (OSI) was created in order to administer the term Open Source, and although its attempts to trademark the term (to protect its meaning) were rejected by the US Patent and Trademark Office, the OSI does hold the certification mark OSI Certified Open Source Software. (There are no legal constraints on the use of the term Open Source, but there are on the OSI Certified Open Source Software certification mark.) The OSI maintains the Open Source Definition (OSD), a description of the rights provided by Open Source licenses; it also maintains a complete list of all licenses that it certifies to have met the requirements of the OSD, among which are: Source code must be available; the product must be freely redistributable; derived works must be allowed; and discrimination against persons, groups, or fields of endeavor must not be allowed. The complete OSD, along with a list of licenses certified as OSI Certified Open Source Software, is available at http://opensource.org/. 2.3.1. The GNU General Public License The GPL is one of the more restrictive free-software licenses. If you include source code that is licensed under the terms of the GPL in another program, that program must also be licensed under the terms of the GPL.[2] The Free Software Foundation (FSF; author of the GPL) considers linking with a library to be "creating a derivative work"; some others believe it to be a "work of mere aggregation." Therefore, the FSF holds that you are not allowed to link with a library covered under the terms of the GPL unless the program being linked also is covered by the terms of the GPL. However, some people hold that linking is "mere aggregation," and the GPL says: [2] Some people call the GPL a virus for this reason. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. If you consider an executable to be a "volume of storage," you could consider linking mere aggregation. To the best of our knowledge, this distinction has not yet been tested in court. In the fairly unlikely case that you wish to link a program not licensed under the terms of the GPL with a library that is, ask the authors of the library in question for their interpretation. 2.3.2. The GNU Library General Public License The GNU Library General Public License (LGPL) was designed to make libraries more generally useful. The point of the LGPL is to allow users to upgrade or improve their libraries without having to get new versions of programs linked against those libraries. To that end, the LGPL does not attempt to place any licensing restrictions on programs linked against the library, as long as those programs are linked against shared versions of libraries licensed under the LGPL or are provided with the object files for the application, allowing the user to relink the application with new or altered versions of the library. In practice, this restriction is not significant; it would be unreasonable not to link against shared libraries where they are available. Few libraries are licensed under the terms of the GPL; most are licensed under the terms of the LGPL. Libraries licensed under the terms of the GPL are usually that way simply because the author did not know about or consider the LGPL. In response to a polite request, many authors will relicense their libraries under the terms of the LGPL. 2.3.3. MIT/X/BSD-Style Licenses MIT/X-style licenses are much simpler than the GPL or LGPL; their only restrictions are (stated simply) to keep all existing copyright notices and license terms intact in source and binary distributions, and not to use the name of any author to endorse or promote derived works without prior written permission. 2.3.4. Old BSD-Style Licenses Old BSD-style licenses essentially add to the conditions of the MIT/X-style licenses the restriction that advertising materials that mention features or use of the software include an acknowledgment. The BSD license itself has been changed to removed this restriction, but some software continues to use licenses modeled after the old BSD license. 2.3.5. Artistic License The Perl language source code is distributed with a license that allows you to follow either the terms of the GPL or of an alternative license, whimsically called the Artistic License. The main goals of the Artistic License are to preserve redistribution rights and to prevent users from selling altered, proprietary modifications that masquerade as the official version. Other software authors have adopted Perl's convention of allowing users to follow the terms of either the GPL or the Artistic License; a few are licensed only under the terms of the Artistic License. 2.3.6. License Incompatibilities Different free-software license terms allow various types of commercial use, modification, and distribution. It is often desirable to reuse existing code in your own projects. To some extent, it is inevitable that you do so almost any program that you write will be linked with the C library, so you need to be aware of the licensing terms of the C library, as well as the terms of other libraries that you link with your program. You may often wish to include fragments of other programs' source code in your own programs, as well. Mixing code from software with different licenses can sometimes be a problem. The problem does not occur when linking with shared libraries, but it definitely applies to creating derived works. If you are modifying someone else's software, you have to understand their licensing terms. If you are trying to combine in one derived work two pieces of software that have different licenses, you have to determine if their licenses conflict. Again, this does not apply when you are writing your own code from scratch. If you are working with code licensed under the terms of the GPL or LGPL, you cannot include in it code licensed under an old BSD-style license, because the GPL and LGPL forbid "additional restrictions," and the old BSD license contains additional restrictions (that is, beyond any in the GPL or LGPL) in regard to advertising and endorsement. Because of this conflict, some pieces of software are licensed under alternative terms both the GPL and an old BSD-style license terms are offered; you can choose with which licensing terms to comply. If the code licensed under the GPL or LGPL is included in a work derived from a BSD/MIT/X-style license, the entire derived work (for all practical purposes) must be licensed under the terms of the GPL or LGPL, respectively. There are many other potential incompatibilities. If you are in doubt about what you are allowed to do with particular pieces of free software, do not be shy ask the copyright owners. Remember that they can give you license to use the software in any way they wish. |