Having been a free software user and supporter for many years, I am disheartened by some of the comments made in the MySQL/Oracle debate regarding the GNU Public License (GPL) and other licenses. There is much throwing around of misconceptions and untruths about licenses and their differences. In this blog, I shall take on some of the bigger misconceptions.
While Linux is indeed distributed under the GPL, as is MySQL, Linux has an exception that allows anyone to run any kind of applications (including closed source applications) on top of Linux.
There is nothing in the GPL that forbids running closed source applications on top of GPL-licensed software. The only thing that GPL has in this regard is that if you make changes to GPL-licensed software and re-distribute it as a binary, then you must make the modified source code available. This is the reason why commercial Linux distributions make available their source code, either online (as Red Hat does) or on the demand of those who purchase copies (à la SUSE). It is also the reason why there are many commercial software products running on Linux, such as the Oracle Database Server, MATLAB, etc., etc.
I think that GPL is a great open source license, in many cases the best license. The GPL license ensures freedom of the code and at the same time gives the copyright holder a very strong control on the code and it’s ecosystem, especially it’s closed source customers.1
This is another contradiction. How does the GPL give the copyright owner strong control over its closed source customers? In fact, the rules of GPL mandate that any closed source customer is able to obtain a copy of the source code for their closed source version. Furthermore, that customer is then able to release the source code to anyone, and if they want to, sell their own version. So in fact, with the GPL there is no way to control their closed source customers.
Currently, anyone can take the MySQL source code and make changes to it, as Percona and Monty AB currently do. If, however, they decide to sell a closed source copy, they must also provide the source if asked to do so–as the GPL enforces.
Oracle should change the license of MySQL to a more permissive Open Source license that would ensure that if Oracle would try to kill MySQL, the community would be able to take over and rescue MySQL and develop it as a product that can be freely used by everyone.
The fact that it is GPL-licensed means that anyone fork it and create their own version, as Percona and Monty AB have done, regardless of whether Oracle kills it or does not. So what would releasing MySQL under a more permissive Open Source license (such as the Apache Software License or the BSD license) give the community?
Nothing, I believe. It would give anyone the freedom to take MySQL, make changes to it, and sell it as a closed source product, without having to share the source. And that sounds to me like a much better way to control one’s closed source customers than the GPL.
So, a change of license would benefit only those who want to produce and sell a modified version of MySQL and sell it without the obligation to give away the source code.
1. I understand “closed source customer” to be mean one that has purchased a binary copy. back
The “closed source customer” is interpreted by MySQL/Sun as anyone who pays for an OEM license. In doing so they purchase an exception to the GPL. Because Sun owns the copyright to the code it is allowed to grant these exceptions. Customers who purchase OEM license do so when they wish to integrate mysqld within another product but not wish to be bound by the terms of the GPL for their products as well.
Adobe, Citrix and Motorolla are all examples of Embeded/OEM customers whose usage of MySQL in closed source applications requires an exception.
These OEM customers enter into an agreement not unlike one they would have with any other proprietary software vendor.
Source code is not technically required to be given but may be granted to OEM customers. OEMs are not permitted to modify the source code and redistribute those changes as part of a closed source product.
Your definition of “closed source customer” is more akin to MySQL Enterprise Customers who pay for special binary releases. These releases are also licensed under the GPL and they have access to modify and redistribute source code just like the Community editions. The difference being that they also get access to paid support, hotfix releases and some closed source add-ons like MySQL Enterprise Monitor.
I can’t comment directly to Monty’s comments but it’s sufficient to say I don’t share his views.
You wrote: There is nothing in the GPL that forbids running closed source applications on top of GPL-licensed software. The only thing that GPL has in this regard is that if you make changes to GPL-licensed software and re-distribute it as a binary, then you must make the modified source code available.
This is almost correct. The problem for closed-source applications (and their producers, whom Monty refers to as “closed source customers”) is that the GPL also enforces redistribution of code that links to GPL’ed code (see section 2b). That means that, for example, Java programs are subject to the license of the MySQL Connector/J, which is GPLed (like all the connectors).
This isn’t a problem for programmers writing user-space code on Linux because Linus Torvalds believed it shouldn’t, and explicitly said so in its license:
NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls – this is merely considered normal use of the kernel, and does *not* fall under the heading of “derived work”. Also note that the GPL below is copyrighted by the Free Software Foundation, but the instance of code that it refers to (the linux kernel) is copyrighted by me and others who actually wrote it.
“Nothing, I believe. It would give anyone the freedom to take MySQL, make changes to it, and sell it as a closed source product, without having to share the source. And that sounds to me like a much better way to control one’s closed source customers than the GPL.”
You would have been correct here if you stated
“nobody except the owner of the code has the freedom to make closed source versions”
As your statement stands, it adds to the misconceptions that you sought to clear up.
Well I have spoken out several times that I do not see a valid reason to stop Oracle from going through with the Sun deal with any special requirements for MySQL.
At the same time I do think that Monty was just using inaccurate language by mistake in the above cases:
1) Monty feels like the storage engine market needs special care. This is what he talks about when he talks about commercial software developers not being able to use the GPL version. Drivers are to some extend a similar scenario in the Linux kernel world, but there are very few companies that try to innovate let alone make driver development their main source of income (by selling drivers to end users).
2) When he talks about the GPL given the copyright owner very strong control, then he seems to be in fact talking about the dual licensing model, which is enabled by the GPL, but noteably not by more permissive licenses like the BSD.
3) This circles back to 1) and the perceived importance of the storage engine developer ecosystem.
Matthew: Thanks for stepping in and explaining how GPL and dual licensing works. For some reason me trying to do so isn’t working anymore. I wonder if my English is bad, or if it’s because I’m no longer employed by Sun.
Ross: Also thanks for providing a clear example of the same.
Lukas: No, it’s not only or even mainly about storage engines, it’s about normal closed source applications using MySQL in various ways. See the posts above you for clarifications. Btw, about half of MySQL’s business is that kind of OEM use, so it’s not as insignificant as people would want to believe.
Half of MySQL’s business is OEM, but that doesn’t mean that half the revenue of any derivative MySQL product also must be OEM licensing fees.
I am well aware of how dual-licensing works. I am also well aware of the *existing* thriving economy around MySQL. If the GPL is so limiting, why does that thriving economy exist? Storage engine vendors like Calpont and Tokutek are betting their business that they will money off the GPL’d MySQL.
Why is it a different problem for the economy around MySQL if Oracle owns a GPL’d MySQL versus Sun owning a GPL’d MySQL?
Monty Program has been conflating the two issues of “Oracle owning MySQL” and “MySQL being GPL”. They are not the same issue!!!
Sheeri. Both Calpont and Tokutek have proprietary versions and as far as I am aware do buy or would buy the OEM license from MySQL/Sun/Oracle. (Tokutek doesn’t even have a GPL version.)
[…] Singer Wang of Pythian, in reply, offers his perspective on GPL/ASL/BSD License Misconceptions and MySQL. […]