The LGPL is intended to allow interactions between free and proprietary software. The license is designed mainly for programming libraries, so that they can be used by both free and proprietary applications. When used this way, the terms of the license apply to the library, but not to software that links to it. However, the LGPL is also used for the dual licensing of applications such as OpenOffice.org. Originally written in 1991, the LGPL was last revised in 1999.
Previous versions of the LGPL have echoed the language of the GPL, but remained a separate license. This relationship, though, started to change with the release of the second draft of the third version of the GPL (GPLv3). As Eben Moglen explained when the second draft was released in July 2006, after the legal experts writing GPLv3 rewrote the section that specified permissions and requirements for distributing software under the GPL, they realized that the same section could be used to simplify the relationship between the two licenses. Rather that treating the LGPL and GPL as separate licenses, the LGPL was reduced to an exception to the GPL, a change that greatly shortens and simplifies the license.
"This is solely a simplification," Moglen said at the time. "It does not change the nature of the LGPL. We need to be sure that people understand that they have a theoretical simplification but no practical changes in the behavior of the license."
A similar approach will be used to simplify and clarify the relationship between the GPL and the Affero GPL, Free Software Foundation founder Richard Stallman said last week.
In keeping with this approach, many of the changes in the new draft of the LGPL are designed to bring it more closely in line with GPLv3. In the new draft, terms like "conveying," which are already used in GPLv3, are used to cover copying and distribution, partly for simplification, but also to make the license easier to use in non-American jurisdictions with less chance of misunderstanding. Other clarifying concepts such as "minimal corresponding source" and "corresponding object code" add further clarification.
Even more obviously, the new draft begins by explaining that the LGPL "incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below." Moreover, throughout the draft, readers are referred to specific sections of the GPL. As a result, it is no longer possible to use the LGPL without an understanding of the GPL as well.
The most important example of this new connection between the two licenses comes in section 1 of the LGPL, which contains the exception that now differentiates the LGPL from its parent. This section specifically releases users of the LGPL from the terms of section 3, paragraph 2 of GPLv3, which forbids using technical measures to prevent others from exercising the rights granted by the license, such as copying, modifying, and redistributing. Since the entire point of the LGPL is to allow interaction with proprietary works, this exception is only logical.
Another new feature of the draft is the introduction of the concept of a "linked version." The LGPL now makes distinguishes between an "application," defined as a work "that makes use of an interface provided by the Library, but which is not otherwise based on the Library," including a new subclass of a class defined by the library, and a "combined work," or "a work containing portions of the Library, produced by combining or linking an Application with the Library." At the cost of introducing a new piece of jargon, the license is now clarified by its description of a library used in the creation of a combined work, which is now called the "linked version" of the library.
The significance of this change is mainly in section 4 of the LGPL, which gives the terms under which license users can convey a combined work. As a license user, you can convey a combined work under "terms of your choice" so long as they "do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications" and follow other terms listed in the section. These other terms include giving "prominent notice" that the license is used and what it covers, included a copy of the GPL with the combined work, and including any copyright notices for the library.
In addition, in the past, conveyors of combined works have had the option of including the minimal corresponding source and application or using "a suitable shared library mechanism for linking with the Library." This suitable mechanism is defined as one already installed on a system that "will operate properly with a modified version of the Library."
In addition to choosing the terms and options, users of the LGPL now have a third requirement. If they wish to convey only object code, they must now include"installation information" as defined in section 6 of GPLv3. "Installation information" is defined in the GPL as "any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source" and is introduced chiefly to prevent lock-down technologies that might prevent the use of free software. This new alternative brings the LGPL into line with the latest draft of the GPLv3, and is yet another example of how the two licenses are now interconnected.
As with the changes proposed for GPLv3, the chief practical affect of the changes in LGPL are to take account of new technologies and issues that have arisen since the last revision. However, the more explicit linking of the LGPL to the GPL seems likely to trouble long-time users until they are used to it. Yet, in the long run, the redefinition of the relationship between the two licenses should prove to be an ingenious rethinking that offers new clarity and simplicity, and makes the LGPL easier to both understand and use.
Bruce Byfield is a computer journalist who writes regularly for NewsForge, Linux.com, and IT Manager's Journal.