Previous    Table of Contents    Up    Next

Dual Licensing

Ideally, any two open-source projects should be able to share their source code with each other. However, if the two projects use incompatible licenses, then this may not be possible. For example, code developed for the Linux operating system, which uses the GPL, cannot be used by the Apache web server project because the GPL specifies additional requirements that are incompatible with the Apache license. To avoid this problem, some open-source projects have chosen to make their source code available under a dual-licensing scheme that gives developers a choice as to which license they will be bound by.

If there are two disjoint developer communities that cannot or will not use the same license, then a dual-licensing scheme to allow both communities to participate can make sense. However, both groups need to benefit. For companies that will not participate under GPL and developers who want to use the code with other GPLed code, only a dual license can bridge the gap. The Mozilla project started with code under a dual license of the Netscape Public License and the Mozilla Public License because Netscape needed to have special access to the code in its proprietary products. Use of the NPL was intended to diminish over time and indeed has done so. Now Mozilla is shifting to a triple license of MPL, GPL, and LGPL in order to work better with other open-source projects that use GPL.

For OpenOffice, Sun has released the source code under a dual license that allows developers to choose to abide by either the LGPL or the rules of the SISSL. This allows companies that will not touch code under the LGPL to still be able to participate, even though the main community are the developers working under the LGPL.

It is important that any code sent back to a dual-licensed project be contributed under the same dual-license structure. Individual developers can take the code, modify it, and redistribute it using only one of the licenses, but if they want to have their changes incorporated into the official source code then they must make them available under the same dual license that the project uses. Otherwise, the project would need to keep track of which contributions were made under which license and it would be impossible to combine them; in effect, the project would fork. In OpenOffice, for example, it is important to avoid having some code that can be used only by LGPL developers and other code only by SISSL developers.

Dual licensing is also used by some companies to allow them to make money from their open-source work. They make the software they develop available under both an open-source license such as the GPL and a commercial license. Open-source developers can choose to use the open-source license, but any companies that wish to incorporate the code in a proprietary product must pay for it under the commercial license. This is the business model used by Trolltech AS for its Qt multiplatform application development framework and by both MySQL AB and Sleepycat Software for their database products.

Innovation Happens Elsewhere
Ron Goldman & Richard P. Gabriel
Send your comments to us at IHE at

Previous    Table of Contents    Up    Next