The code libraries that client programs use to access the native MySQL API, formerly licensed under the LGPL (lesser general public licence), 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. OpenLink Software CEO Kingsley Idehen has 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 and a handful of other open source companies -- including Sleepycat Software and Trolltech -- use what’s called a dual licence.
“Our philosophy is simple,” says MySQL marketing executive Zack Urlocker. “If you’re open source, we’re free. If you’re closed source, we have a commercial licence.”
Translation: If you profit from MySQL, then MySQL should profit, too. Fair enough. And yet, as Yahoo developer and MySQL expert Jeremy Zawodny points out, MySQL is only in a position to sell enterprise licences 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 licence 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 popularised 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.
Udell is lead analyst for the InfoWorld Test Center.