Twitter is abuzz this morning with MySQL news:
What these messages refer to is that Oracle dropped InnoDB from the free Classic Edition, it is now only available starting with the $2,000 Standard Edition. A few days ago we heard support prices were increased – none of this should come as a surprise, the writing had been on the wall ever since Sun’s acquisition by Oracle. And of course it’s not only MySQL, all Open Source products are on uncertain grounds – there’s a reason why many of the OpenOffice folks split off and are now supporting the new fork, LibreOffice.
I don’t pretend to be the Open Source expert, thankfully we have one, Krish, who recently chimed in on the issue. What I want to do this morning is to take this opportunity to publish an internal email from a smart software CEO who instructed his teams to migrate away from MySQL several months ago. While he wishes to remain anonymous, this is not a leak, I am publishing it with his permission. (Yeah, I know, a leak would have made this story a lot juicier…). Here’s the email:
I posted this internally to an employee question why I am asking our company to move away from MySQL towrds Postgres (instead of Ingres):
I would answer the “Why not Ingres” with one word: GPL.
Let’s step back and think about the “People are angry with what Oracle is doing with MySQL” statement. Actually why could Oracle do this with MySQL? How was it possible for Oracle to do this? After all MySQL is “open source” and could be “forked” right?
To be honest, I had long anticipated this move on the part of Oracle. Unlike Linux, which has what I call the Torvalds-interpretation-of-GPL, which kind of makes it in effect LGPL for the apps written on top of Linux, MySQL has the original and strict Stallman-interpretation-of-GPL. So an app written on top of Linux, even though it makes system calls to Linux, doesn’t have to be GPL – why, simply because Torvalds decreed it so. But an app written on top of MySQL, even though it connects over the wire and a JDBC driver, has to be GPL – why, simply because MySQL decreed it so; they did it because it would make it commercially convenient for them.
I am not saying that MySQL did not have the moral right to do what they did – software licenses are not about morality, it is about commerce and business. Alas, Stallman effectively enabled this MySQL interpretation through his rigid moralistic stance on software licenses – I don’t consider it a moral issue but he does. So Stallman’s moralism created the MySQL interpretation, which then allowed Oracle to acquire them and make life hard for any MySQL users – basically demand lots of money for shipping MySQL with your software. Eventually, Stallman’s GPL v3, if MySQL were to adopt it, would require us to pay lots of money to Oracle from our services too.
So unless we want to pay large and increasing amounts of money to Oracle, which is a mathematical certainty because it involves Larry Ellison and Money, we should move out of MySQL. Do we want to work hard to ship more and more money to Oracle?
Now Postgres. It is actually BSD licensed. So while it allows anyone to build proprietary versions of it (as many companies do), no company can prohibit another company from shipping the free Postgres version with their software or demand money for it. This is a subtle but very important point.
GPL is basically “Here is our charity to you, but with this money you can only do charity.” BSD is “Here is our free gift to you, do whatever you want with it.” Stallman has long believed in forcing people to be charitable. Needless to say, forcing anyone to be anything, ultimately leaves the door open to evil. The way the door to evil was opened with GPL, interestingly, is surprisingly similar to what happened with the Catholic Church in the middle ages in Europe, which is what led to the Protestant Reformation. The Church had the absolute power to declare what is sin, which in practice meant that the Church could also absolve anyone of any sin, essentially by decreeing it. The Church could grant you “absolution” (forgiveness) from your sins. This evolved into selling “indulgences” for money – commit adultery, robbery whatever and then pay money to the Church to buy an indulgence, which is what Martin Luther found so abhorrent. His theological solution is surprisingly similar to the BSD license.
Stallman created this problem with his “Absolutely No Sin Ever Allowed” rule in GPL. The natural loophole is that the original author of GPL code can allow sin by dual licensing the code – i.e sell indulgences. In Stallman’s theology, we are buying indulgences for the sin of distributing proprietary software.
Torvalds sensed this problem early on, and that is why he arbitrarily imposed his more liberal interpretation on Linux – he could get away with it early on and his interpretation stayed. In theological terms, Torvalds split with Stallman.
Now, do you want another theological lecture from me on why we should get out of Java next? (One word: Oracle).

But for a project I actually care about, I would never choose the BSD license. The license doesn’t encode my fundamental beliefs of ‘fairness’. I think the BSD license encourages a ‘everybody for himself’ mentality, and doesn’t encourage people to work together, and to merge.” — Linus Torvalds (http://kerneltrap.org/node/8382)
Actually it was Stallman who foresaw the natural loophole, way before Torvalds, and to solve it he recommended that anyone adopting the GNU license assign their copyright to the FSF.
> But an app written on top of MySQL, even though it connects over the wire and a JDBC driver, has to be GPL – why, simply because MySQL decreed it so
That is simply factually incorrect. In fact, it’s so incorrect that it falls straight into FUD territory.
Any application that can speak MySQL’s proprietary protocol can connect to it. It happens that they wrote the majority of libraries for doing so, and those libraries are GPL. This is why PHP stopped bundling the MySQL libraries a while ago, and why they *wrote their own freaking library from scratch* called mysqlnd just to work around the license issue.
Unless you’re shipping actual MySQL-derived, GPL’d code with your application, you don’t have to release it under the GPL.
There are numerous MySQL forks, including Maria and one from the Percona dudes.
GPL FUD is not a valid argument for switching to PostgreSQL. There are many, many better arguments that can be made in PG’s favor instead.
Sorry “smart software CEO” but you have understood nothing. Whatever the license, the copyright holder can do whatever it wants with the code base; this includes starting a closed source distribution tomorrow. The BSD license does not prevent this.
More: while the GPL explicitly forbids revocation of the license (once a revision of a software is distributed under the GPL, that revision will be forever under the GPL), the BSD does not: if the copyright holder attempts to revoke the BSD license from all its software revisions, and you want to go on using one of them, you would end up litigating in court and see what happens. I dunno if this has already happened somewhere, but IMHO nobody knows what would happen in this case until a court rules about it.
I do not know the details and the history, but I think this is why the “original” concept of BSD license included copyright assignment to the “Regents of the University of California”: the idea is that the “Regents” have no interest in revoking software licenses.
This is from the COPYRIGHT file of PostgreSQL 8.4.2: “Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.” See that there is nothing about license revocation? Does “for any purpose” include relicensing? Go to court and establish it.
When you use an open source software there is always a risk, whatever the license; for example the maintainers may stop developing. The GPL forces you to distribute your source code, but prevents people from removing the carpet from under your feet.
Ciao.
Such a fine piece of writing! Thanks so much for making it public.
Marco,
No open source license that I know of permits relicensing. This is a basic misunderstanding of the difference between liberal and copyleft licenses. (Liberal = {BSD, MIT, TPL, Artitistic, etc.}, Copyleft = {GPL, AGPL, GPLv3, etc.}).
However, what *you* have misunderstood is that the liberal licenses permit bundling, and permit adding additional downstream restrictions on redistribution. Thus, for example, it is legal for EnterpriseDB to bundle PostgreSQL with their own proprietary tools and impose a fee and non-open-source terms on the whole bundle. This is not, technically, relicensing, but the effect is the same.
@Josh,
“No open source license that I know of permits relicensing.” My error, I should have written sublicense (this is legalese that I do not master at all); for example, all the Scheme SRFIs permit explicitly sublicensing of code[1].
“However, what *you* have misunderstood is that the liberal licenses permit bundling, and permit adding additional downstream restrictions on redistribution.” I have understood this perfectly, believe me.
I am putting aside the revocation of license issue, which is still here anyway in GPL-vs-BSD.
“Liberal” licenses allow Mr. X to make money off Mr. Y work, giving back nothing: of course Mr. X is happy with this! Josh, criticising dual-licensing of GPL code is like criticising banks because they do not distribute money-for-nothing through ATMs; would people not be happy with this? Of course they would!
The GPL, instead, pushes the creation of an ecosystem.
Why EnterpriseDB should have the right to sell software it got for free, while its end users should be cut out of “charity”? Is this something like government incentives to agriculture? With Oracle or the PostgreSQL Global Development Group playing the role of the government?
In the specific MySQL case, as Charles noted, it is perfectly possible to use only the server of MySQL and write non-GPL clients. Are you not happy yet to have a database for free? What do you want, their blood in crystal glasses?
Ciao.
[1] Scroll to the end
I am a fan of postgres and to me, still holds the upper hand with regard to MySQL, however, this is really an opinion on my part. MySQL got a major facelift when you consider the differences between v4 and v5.
I am not sure if I support merging as Linus had suggested, where postgreSQL promoted branching. If I understand correctly, merging as in merging of resources for the community where everyone can have their input. By Branching, I am assuming that Linus means that everyone makes their own version of PGSQL…is this correct?
If so, then this offers two schools of thought that can be applied to economics which is my background (Education) and my industry is hosting. Anyway, the “merging” effect means that MySQL is maintained by one large force (entity) which is the community and PGSQL is otherwise split off and improvements are made on the business end of things by each individual person/firm/organisation.
In economic terms, it’s the difference between a monopolistic market (One entity) or a competitive market with multiple entities working on the same thing. In my opinion, the latter promotes innovation better than the one big group controlling everything (merging). I think, the only issue is the sharing…there is less sharing involved in Postgres which is probably why Linus wasn’t so keen on PGSQL.
I, myself am a fan of postgres as it is more feature rich, it’s a product of a derivative of the original UNIX (system 5) and it’s longevity is very consistent, meaning, it’s a force to be reckoned with.
I am sure we can debate this issue for ages, but just giving my 2 cents.
It’s funny how every body and his aunt Tillie think they are an expert on Richard Stallman and what he thinks/want/says. He (co) wrote a license and promotes it and his free software campaign, but otherwise that’s it. I mean, every time some company or developer discovers a way to do something fundamentally crappy or annoying with the GPL, people act like Stallman himself is personally holding the code hostage in his couch cushions.
People choose to use the GPL because it suits their purposes and appeals to their fundamental sense of fairness. If it means that smart software CEO’s proprietary software company can’t make its millions using someone else’s free code, well boo-hoo. That’s probably why they chose GPL in the first place, ya think?
This article is bunch of nonsense. There is no such thing as RMS’s interpretation or Torvalds interpretation of GPL. That is a lie.
Thing is that Linux is a kernel, not an OS, and POSIX functionality is provided by GNU C Library (glibc). That library is LGPL which allows dynamic linking, therefore programs running on top of GNU/Linux can have any license. And who chose that license? Richard Stallman! Not Torvalds. glibc is originally developed by Roland McGrath who was paid by FSF to work on it.
So who is now extremist? Stallman surely isn’t, he chose license pragmatically. If glibc was GPL, all software on GNU/Linux would have to be GPL’d too. Here is story about that http://www.gnu.org/philosophy/why-not-lgpl.html
About MySQL issue, when MySQL AB was independent company, they had overreaching interpretation of GPL. Nobody (not even RMS) approved that. They claimed that their protocol is GPL’d, therefore all apps need to be GPL. That was Marteen Mickos’ and Monty Widenious’ interpretation, and basically nobody agrees with that. But that was what they kept telling their customers. A big lie. Business model based on GPL scare.
Other databases now remove any notion of this interpretation by licensing their drivers under more permissive license (LGPL or even MIT, Apache, etc) while database is GPL. Examples of this are CUBRID and MongoDB, but I am not sure if Ingres does the same. Any application working on top of those databases can be licensed under any license, even though databaase is GPL (I tihnk MongoDB is AGPL).
Moving to Postgres just because BSD license is not very smart decision. First of all, suport options are scarce, there is only EnterpriseDB which will make you move to their own propriatary version of Posgres, called PostgresPLUS. Then, how you know that somebody wont buy EnterpriseDB and make you pay even more than Oracle asks for MySQL? When you use proprietary PostgresPLUS, moving back to PostgreSQL is not easy. PL/SQL is PosgresPLUS-only feature and if you code in it, you are boned. Second, if you use free version, keep in mind that BSD license has no patent protection, so tomorrow some of ex contributors might come knocking on your door, asking for patent royalties! This might sound insane, but Sun employees contributed to Posgres, and we know who own Sun now. It is perfectly legal to contribute patented stuff under BSD license and then sue users. BSD license allows that. BSD license allows everything.
Problem of MySQL is specific to MySQL, it has nothing with GPL. Even with mySQL, if application is made for in house use, and never distributed outside company, it doesn’t have to be GPL. That is because GPL apply only on redistribution, use is not subject to license.
My favourite free (as in freedom) database is CUBRID http://www.cubrid.org/
Also worth mention are MariaDB (mySQL’s compatible fork) Drizzle (MySQL’s incompatible fork), Ingres, and VectorWise will be opensourced sometimes this year.
[…] Internal Email on Why a Software Company Migrates Away from MySQL (enterpriseirregulars.com) […]