As The Clash reminded us, Know Your Rights!

A good friend whom I trust implicitly recently told me of a disturbing conversation that had taken place between a DBA acquaintance friend of his and a Sun sales engineer. Disturbing enough that it prompts me to remind everyone what your rights and obligations are when you use the community edition of MySQL that is licensed under the GPLv2.

Apparently, this friend of a friend needed some performance tuning done on a MySQL Community Edition installation that spans several servers, and serves up their proprietary, commercial web application. They contacted Sun in order to see about getting some work done on a contractual basis. In other words, they wanted to pay Sun for performance tuning.

They were then contacted by a Sun sales engineer who, upon hearing they have multiple servers running the Community Edition of MySQL serving up a proprietary web app, told them:

1). They were in violation of the license.

2). They would need to release their proprietary app under the GPL, since it uses MySQL client libraries.

3). They could avoid having to GPL their application by paying Sun licensing fees for every server.

Now, I’m not a lawyer. But, in my legally uneducated but GPL-savvy opinion, there is a simple term for this. It’s extortion. “Pay us, or we’ll make sure you have to GPL your proprietary work.” If someone admitted to the bar in any US state wants to correct my opinion that this is extortion, chime in. I may be confusing terms.

However, I am not confused about the rights and obligations granted and ensured by the GPL. Let me cast some light into the darkness created by this Sun salesman.

First, this company uses the Community Edition of MySQL. Therefore, they are bound by the terms of the GPL, and NO other license, be it from Sun or elsewhere. Full stop. Sun can have whatever convoluted license they please for MySQL Enterprise, but if you use the Community Edition you are bound solely by the GPL.

The GPL ensures that anyone that releases code that touches GPL code must also use the GPL. The key word here is “releases.” Let’s give two examples.

First, Linksys recently settled a lawsuit brought against them by the Software Freedom Law Center. They use Linux kernel code in some of their router firmware, and had not released the source code to that firmware. Why did they have to? Because the firmware shipped to end users. They released code to the public in binary form that touches the GPL Linux kernel. Thus, they need to GPL their firmware.

Second, it’s no secret that Google uses MySQL extensively. So why aren’t GMail, Google Reader, Google News, or other such services released to the public under the GPL? It’s simple. They aren’t released at all! These are proprietary applications that are not released in either binary or source form. If your code touches GPL code, but you don’t release your code in binary or source form, you do not have to use the GPL for your code, nor do you run afoul of the GPL itself.

So, let’s go over the three points the Sun sales engineer made above.

1). They were not in violation of the license of the Community Edition MySQL server software they were using. To imply differently is at best misinformed, and at worst FUD.

2). They don’t have to release their code at all! Now, if they do decide to release their code, because it touches the MySQL client libraries they will have to use the GPL. But if they keep it a closed-source, proprietary, commerical app, with no public releases, they are well within their rights. Their application, developed in-house and run as a service on top of the MySQL Community Edition, is not released to the public in any form. Therefore, they do not have to use the GPL with their application or service, nor do they have to acquire commercial licenses from Sun. End of story.

3). They wanted to pay Sun for performance tuning. Sun decided to go for a bigger paycheck. In the end, Sun probably will not get a dime. Smart. Really, really smart. Glad I don’t own stock.

If Sun contacts you or someone you know and begins talking about license violations, read this post again carefully. Know your rights. And if you’re not sure, contact the Software Freedom Law Center. Or contact us at Monty Program; our staff was responsible for putting MySQL under the GPL. We know the terrain better than Sun.

If you have had a similar experience, I’d sure like to know about it. I’m curious as to how widespread this “tactic” is, and how people are responding to it and dealing with it. Let me know via comments.

And while we’re at it, if you need MySQL or MariaDB performance tuning, why contact a company that instead of seeing an opportunity to make a client happy while earning money instead sees an opportunity to extort money from a heretofore satisfied user? Contact the Open Database Alliance. We have people that can get the job done, and that don’t care about your licensing.