MySQL to Distribute Commercial Source Code for Paying Customers Only

A move on Wednesday by the manufacturers of the open source MySQL database to shut off access to the source code of its commercial edition MySQL Enterprise Server, has led to a new round of debate in the open source community over whether the group is gradually abandoning its commitment to free software.

"Our intention is for MySQL Community Server to be very good, and for MySQL Enterprise Server to provide further value on top of that," stated MySQL AB's vice president for community relations, Kaj Arno, in a blog post on Wednesday.

The standard template for a corporate entity whose business model is predicated on the distribution of free software, has yet to actually be refined. Nonetheless, some notable voices are taking MySQL AB to task for allegedly building a "good/better" quality tier where freely distributed code sits on the lower tier. The company's move is the next step of a plan commenced last October to produce a MySQL Community Server for non-paying users, and Enterprise Server for paying customers.

Bloggers trumpeted the move yesterday as MySQL AB "closing off" the Enterprise version's source code, which was inaccurate. The company will still distribute that source code, but only to paying customers. Open source advocates expressed surprise at the ability of a company to charge a fee for code that was presumably developed by a community.

If I distribute GPL'd software for a fee, am I required to also make it available to the public without a charge?

No. However, if someone pays your fee and gets a copy, the GPL gives them the freedom to release it to the public, with or without a fee. For example, someone could pay your fee, and then put her copy on a web site for the general public.

"This may be true technically," writes open source developer Mike Kruckenberg on his personal blog, "but it doesn't seem to fit with the spirit of open source. When I think open source I think freely available source, not source I can get once I've paid for a license. Is this just a lack on my part of really understanding open source?"

Kruckenberg's answer may come from the preamble of Version 3 of the GPL itself. "If you distribute copies of such a program, whether gratis or for a fee," it reads, "you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights."

In other words, open source as the GPL explains it isn't about getting a free program. It's about freely distributing the blueprints with which that program is built.

In a response to Kruckenberg, Kaj Arno wrote yesterday, "While this may feel or appear like a step away from Open Source, the real effect on the core MySQL community member is minuscule. And this is by design. We don't intend for the change to adversely affect core MySQL community members' usage. What we do intend is related to positioning: MySQL Community Server is for our users, MySQL Enterprise Server is for our paying customers. We want people to associate MySQL Enterprise Server with a commercial relationship to MySQL as a company."

By "commercial relationship," Arno is no doubt referring to "product support," which is how most open source commercial enterprises earn their revenue. But from there, Arno appears to attempt to throw a bone to the "community" side of the argument, with an explanation of what he meant by "by design" that is far from what one would expect from someone building a commercial enterprise.

"We thought about what we could do to encourage the use of MySQL Community Server, in particular by the Linux distributions," Arno wrote. "Part of that is discouraging the use of MySQL Enterprise Server, and that's why we set a signal by removing the source code of the Enterprise incarnation of the MySQL Server code."

So the source code from Enterprise Server was removed from public view as a disincentive for prospective customers.

The other problem within the MySQL development community which Arno did not appear to address is the question of who gets the goods first. Arguably, it's the community who builds not only the newest features, but the fixes for bugs discovered on production systems. Typically, those fixes should be freely distributed.

But in the model MySQL AB seems to be establishing, its paying customers get premium treatment - which makes some developers wonder if this is a disincentive for them to continue to build better versions.

Open source developer Jeremy Cole writes, "Generally speaking, any contributions to the server will be to address specific problems, mostly in larger systems. That means that any possible contributions against the server are needed because either of bugs or deficiencies in MySQL that are already affecting production systems. Very few, if any, of the features we're writing are just because it would be fun. That means we need those features in a version of MySQL we can actually use."

Originally, Cole said, MySQL AB promised to propagate community-driven enhancements and fixes to the community first, and then push those into the Enterprise version later. "This didn't really work at all," he continued, "since the releases of Community are so infrequent, very little vetting happens, and there is no real feedback loop with the users, due to the delay in seeing actual fixes implemented."

The logo for MySQL Community Edition is two dolphins chasing each others' tails within a yin/yang circle. Chasing one's tail may be an appropriate symbol indeed, from many developers' perspectives today, and some may wonder whether the two dolphins might best be replaced with a single rattlesnake.