Sun Microsystems acquires MySQL AB
As I am sure most of you are already aware, Sun Microsystems has acquired MySQL AB (the company behind the open source MySQL database server that powers much of the world wide web) for the princely sum of $1billion. Many commentators are predicting doom, gloom, fire and brimstone (in that order), largely as a result of Sun’s supposed long term strategy to undermine the LAMP stack by promoting their own Solaris operating system as the platform of choice for MySQL deployment. From there, it wouldn’t be a great leap to assume that Sun would rather like Java to replace the PHP/Perl/Python part of LAMP. Personally, I think that Sun’s plans for world domination are probably far less ambitious than most doom sayers suggest, but if they are in the slightest bit interested in improving MySQL integration with their own technologies, they could do far worse than to eliminate one of my pet hates.
Database interaction in Java is normally performed using the JDBC API, and compatibility with individual database engines is provided by a vendor specific driver - Connector/J in the case MySQL. Now, Connector/J used to be licensed under the GNU LGPL (or Lesser General Public License), which essentially meant that it could be linked against proprietary software products, so long as certain conditions were met. Which was fine. More recently, though, MySQL AB decided to switch their JDBC driver to the full GPL, which, at least according to a strict reading of the license, means that any software linked against it (i.e. any Java application which needs to communicate with a MySQL database server) must also be distributed under a GPL compatible license. Now, some of you may think that MySQL are heroically doing their part in the fight for software freedom, but, look more closely and you will see that, coincidentally, MySQL AB will quite happily sell a commercial license for, and I quote, “those who don’t wish to be bound by the GPL”.
In other words, MySQL AB are abusing the spirit of the GPL in order to extort money from commercial software developers. Okay, perhaps ‘extort’ is too strong a word, but, ultimately, they are asking for money in exchange for a service that companies like Oracle, and even Microsoft (!) provide free of charge. Neither commercial database vendor’s JDBC driver is ‘Free’ in the GNU sense of the word, but both allow for commercial redistribution at no additional cost.
None of this would annoy me as much as it does were it not for the fact that this issue is largely unique to Java developers. For example, look at vBulletin, the commercial forum package developed in PHP. It is completely dependent on an underlying MySQL database, but I seriously doubt they have paid MySQL AB a penny. Communicating with a MySQL server using PHP requires that your PHP binary be linked against the MySQL client libraries, which are also licensed under the GPL, but MySQL AB actually go so far as to grant a specific exemption which grants “permission to distribute derivative works that are formed with GPL-licensed MySQL software and with software licensed under version 3.0 of the PHP license”. The exemption is not actually relevant for our purposes, since it is intended to allow the distribution of PHP binaries with MySQL support built in, but not even the most devout Stallman follower is going to argue that a script that runs under a GPL-licensed interpreter must itself be distributed under the same license.
So, will Sun do anything about this? They should do, but somehow I doubt it. Having coughed up $1 billion for a company that gives its main product away for free, I suspect that Sun will, if anything, look to expand MySQL AB’s range of paid options. But they will be making a mistake.