With the release of MySQL 4.0, the licensing policy of the wildly popular open source database underwent a subtle change. The code libraries that client programs use to access the native MySQL API, formerly licensed under the LGPL (Lesser General Public License), were converted to the GPL. The LGPL was designed to exempt “nonfree” programs that link against open source libraries from the GPL’s strong requirement to release source code. The purpose of the LGPL, according to the Free Software Foundation, is “to encourage the widest possible use of a certain library, so that it becomes a de-facto standard.” And indeed, MySQL has become the database pillar of the so-called LAMP platform, whose acronym expands to Linux, Apache, MySQL, and the trio of Perl, Python, and PHP.
Ongoing controversy has dogged the switch from LGPL to GPL. Last week, OpenLink Software CEO Kingsley Idehen posted angry note on his Weblog in which he denounced the move, saying in part: “Nice way to treat a community that has built itself around MySQL’s LGPL client libraries.” And he offered a workaround: an open source gateway that maps the MySQL-specific API to the database-neutral ODBC API.
Two different issues are tangled up in this complex web of circumstances. First, of course, is licensing. MySQL AB and a handful of other open source companies -- including Sleepycat Software and Trolltech -- use what’s called a dual license. “Our philosophy is simple,” says MySQL AB’s Vice President of Marketing Zack Urlocker. “If you’re open source, we’re free. If you’re closed source, we have a commercial license.” Translation: If you profit from MySQL, then MySQL AB should profit, too. Fair enough. And yet, as Yahoo developer and MySQL expert Jeremy Zawodny points out, MySQL AB is only in a position to sell enterprise licenses thanks to the huge mindshare created, in part, by the open source developers who wrapped MySQL’s C-based library for use from a variety of programming languages. “If you now put restrictions on how they can do that,” he says, “you’re slapping the community that pushed you this far.”
Urlocker says the move targets people who were “misusing the GPL by distributing the MySQL server tightly coupled with their applications.” He adds that the company has begun a public process of license review. But the open source community should also consider a related issue: its fondness for database-specific APIs rather than generic ones. As Idehen writes, “the very essence of the ODBC value proposition has been somewhat lost.” He also cites a 1999 article of mine, "Why Isn't ODBC a Standard Feature of Linux," which I could have written today.
The rap on ODBC has always been that it’s too slow. Idehen, whose company was founded on a suite of high-performance ODBC drivers, doesn’t buy that argument. As OpenLink Software, DataDirect, and others have shown, speed is a function of an ODBC implementation, not of the API itself. So why lock yourself in to a database-specific API? Let’s recall that Microsoft didn’t invent the SQL Access Group’s Call-Level Interface, it only popularized it -- brilliantly -- as ODBC. MySQL is great stuff, but users ought not to create hardwired dependencies on any single product. Ironically, the LAMP culture, which prizes openness above all, has done just that.