The GPL and library code
[Posted March 17, 2004 by corbet]
The GNU General Public License (GPL) is an unforgiving beast; if you
distribute something derived from GPL-licensed code, the whole derived
product must be distributable under the GPL's terms. This provision
effectively prevents the use of GPL-licensed in proprietary, closed-source
products. That is an inconvenience for proprietary software vendors, but
is clearly what the authors of the GPL intended.
In fact, the terms of the GPL work very well for some software vendors as
well. Consider this
press release from MySQL AB, Sleepycat Software, and Trolltech AS.
These companies claim that their 2003 software licensing revenues were up
65% over the previous year. Not bad for companies which make their
software available for free.
Each of these companies is a provider of "library" code - tools which can
built into an application to give it new capabilities. MySQL and Trolltech
make their offerings available under the GPL; Sleepycat has its own license
which requires source availability (though in a weaker form than the GPL).
In each case, however, there is a twist: for a fee, the company will make
the same software available under a license which allows closed-source
distribution.
When this model works, it works well. The free software community gets
access to high-quality software, and the company gets the benefits of the
free development process. At the same time, the company is able to extract
money from others who are making money with the code. This model will only
work in some situations; the software in question must be attractive as a
component of a larger application, and external contributors must be
willing to transfer copyrights or otherwise allow their work to be
distributed in closed-source form. But, when those conditions apply, the
dual-licensing model appears to work well.
There is one interesting problem which occasionally comes up, however;
licensing this sort of library code under the GPL can block its use with
other software which is available under a free, but GPL-incompatible
license. This conflict has been highlighted by the fact that the
GPL-incompatible PHP license means that PHP and
MySQL 4 cannot be used together (or, more correctly, an application
combining the two cannot be redistributed). Since MySQL and PHP are a
popular combination, this restriction hurts a lot of people; it also led to
a number of distributors sticking with the older MySQL 3 release,
which did not have this problem. The
GPL-incompatibility of the new XFree86 license is another high-profile
example; in that case, the license conflict may be the final straw that
signals the end of XFree86 as a viable project.
MySQL AB has now acted to mitigate the problem of free but GPL-incompatible
licenses; the company has extended the MySQL client library license with
the "MySQL FOSS
License Exception." This exception provides a series of licenses which
can be applied to parts of derived works involving the MySQL client
libraries; it includes the PHP license and several others. With this
extension, the PHP license conflict is no more.
The stated intent of the GPL is to ensure that all derived products remain
free software. This extension of the license is clearly compatible with
that goal; it still does not allow the covered code to be distributed in a
non-free manner. If this sort of exception is adopted more widely, it may
point toward a need for a new form of the GPL. If the end result is more
free software, that would be a good thing.
(
Log in to post comments)