Network Analyst who plays around with many things open source when he is not feeding his MMORPG addiction.
The Internet needed another source of rants and uninvited uninformed opinions.
The MySQL open source version is under a GPLv2 license. Both server and client libraries are under this license. There is a substantial volume of open source code that is GPL incompatible. Luckily in addition to the GPL is language under the “FOSS License Exception” that provides for exceptions for applications to link against the GPL licensed libraries. The exceptions specify that code that is licensed using an approved Open Source license is allowed. This allows non-GPL compatible code to link against MySQL’s client libraries provided that the license it is under is in the explicitly approved list of licenses.
The approved list specifies exact versions of the approved licenses. Oracle would have to amend the FOSS License Exception to approve newer versions of previously approved open source libraries. I view this as a problem because the safe money is on Oracle doing anything it can to be unfriendly to the open source community. The FOSS exception was put into place before Oracle acquired Sun and MySQL.
I’ve viewed this as a ticking timebomb problem for open source users of MySQL. Of course this discussion avoids the realities of commercial licensosr now having to deal with Oracle for future licensing which I would not wish upon anyone.
Thankfully it looks like the various MySQL fork efforts are now bearing fruit and alternative library implementations under more generous license terms are being provided by the community. One example can be found attached to the Drizzle fork in the form of a BSD licensed JDBC driver:
Drizzle JDBC 0.8 driver for Drizzle and MySQL released
This joins the BSD licensed Drizzle C library which embraces and extends on MySQL’s client protocol:
Drizzle Client and Protocol Library
One has to wonder how Oracle will react to this particular instance of every open source community treating Oracle as a contagion.