Brian "Krow" Aker (krow) wrote,
Brian "Krow" Aker

Protocols, The GPL, Influences from MySQL

I spent my Saturday at the SCALE conference down in LA. Most conferences I find have a meme and for this conference that was "MySQL's longterm influence on the GPL".

MySQL was the company that had the most influence on how companies and investors viewed the GPL.

When MySQL said "we will only take contributions via a contributor agreement", this translated into investors expecting everyone to do this (though requiring contributor agreements destroyed outside MySQL development to the kernel, and left MySQL in a position where no substantial, or many, contributions ever occurred).

When MySQL pushed dual licensing, investors looked for this hook in every business model. I remember standing outside of a conference room in SF a couple of years ago and talking to one of the Mozilla Foundation people. Their question to me was "Is the nonsense over dual licensing being the future over yet?". The fact is, there are few, and growing fewer, opportunities to make money on dual licensing. Dual licensing is one of the areas where open source can often commoditize other open source right out of the market. The dearth of companies following in MySQL's dual licensing footsteps to riches, belabors the point of how niche this solution was.

The influence that MySQL had over the interpretation of the GPL was the topic though that brought out the most serious conversations. The term that was most used was "over reaching". This comment was inspired by MySQL's attitude toward linking, specifically in regards to the MySQL protocol.

For years MySQL published a public domain driver, that was then converted to LGPL, and then finally re-licenced as GPL. The driver was also published under different terms for different languages, all the time being the same protocol/interface (which was originally derived from MiniSQL). Most use of the driver is to simply send an SQL query unmodified to the server. The server then responds back with the information that were generated by the request. When you request a page from a webserver, you send a URL to the server. The server then returns data based on based on this query, where that information could be HTML, plain text, an image, or some binary.

Despite the license change history surrounding the driver, there were often claims made that the protocol was GPL. This one bit of history is probably what created most of the misunderstandings around the GPL that have propagated for the last decade. The MySQL drivers were not the only set you could use to talk to MySQL. PHP and Redhat both distributed drivers for many years that were in the public domain. This went unknown to large companies who had minimal experience with the GPL, or who just didn't do the leg work to find other drivers. If you were using the MySQL drivers then you were including GPL code into your product, but if you were using the public domain drivers no use of the GPL occurred.

The over reaching argument that the GPL works over "protocol" is ludicrous. A protocol is simply an IO path. If the GPL worked via protocol, then every GPL webserver on the planet would infect Internet Explorer, and every GPL browser should be rejected from every non-gpl compliant webserver. If the GPL was this infectious then a GPL based operating system, would not be able to provide files to a non-GPL application. The MySQL/MiniSQL protocol and interface is far less complex then HTTP, the protocol that runs the web.

Beyond the protocol, there are also GPL interface issues that exists for MySQL around the storage engine API. That is of course an entirely different issue, one that Oracle has already weighed into. There were so few storage engine vendors that MySQL influence over GPL interpretation is slight, if non-existent. The market that exists around Linux Kernel drivers, is what shapes the GPL in this arena.

Jonathan's final words to the company "Go home, light a candle, ... “Sun is a brand, Oracle’s my company", apply to MySQL as well.

Being a brand, and no longer an identity, means that reflection on what MySQL brought to the table to define the GPL is now happening. I hope, and expect, to see a rejection occur when the GPL is used for over reaching gains. This would bring back a not only moderate, but accurate, view that will un-sully and un-baggage the GPL from some of the history of the last decade.
  • Post a new comment


    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded