Sunday, December 13, 2009

How to Screw Your (Open Source Software) Customers

I've been reading with interest (and amusement) a lot of the brouhaha around Oracle's acquisition of Sun, with specific relation to Sun's ownership of the MySQL database. The first salvo came from Stallman's concerns about MySQL being licensed under the GPL (ha!!) (also see Matt Asay's review of that event). Next up was Monty's discussion of MySQL's licensing, followed by yesterday's request to "save MySQL".

My opinion: the GPL has screwed customers worldwide.

All those customers who believed they were buying an Open Source database were misled. They bought a proprietary database, plain and simple. The GPL version was not available to them because they needed a license that didn't not require them to GPL their own software. They needed a version that could be combined with their own proprietary software.

Monty is entirely correct -- Oracle can totally screw them. It could raise licensing prices or even discontinue that licensing. It can cease development and third-parties could not fork and continue development under the MySQL name (it's trademarked).

But the fault lies in MySQL AB's choice of a business model. They chose to develop the software under GPL and require customers to pay for a less-restrictive license. Now that the software has moved beyond their control, their customers are subject to the whim's of Oracle. I'm making no predictions of Oracle's behavior, but there is no doubt who holds all the cards.

Much of the problem lies in the chosen business model (GPL with pay-for-permissive), but the enabler here is the GPL license. It gives undue control to the copyright owner. When that owner changes hands... the customers lose.

Contrast with a permissive license, such as the Apache License. Absolutely none of this discussion would have happened. Everybody would have rights to use the software, in exactly the same way. Customers could not market under the (MySQL) trademark, but they wouldn't care -- the database is a component in a larger system they are delivering to their own customers. There would not be a need to discuss the internal pieces, though they could still say "this produce includes MySQL(tm) software" and the trademark owner could not do anything about it.

If you are developing Open Source software for use by your customers, and you care about those customers, then choose a permissive license. You have no idea who will own the copyrights in the future (shoot... you might be trying for an acquisition!).

Sure, a permissive license will prevent this kind of business model, but we've now seen the dangers of the model.

Find a better model rather than hanging your customers out to dry.

Update: PJ has written a great article about this topic over at Groklaw


Russ Nelson said...

I generally agree with you, Greg, but I have a brief note about trademarks over on the OSI blog:

Greg Stein said...

Russ: oooh. Yeah. Fair point! Thanks for elaborating on the topic! *tiphat*

Henri said...

I don't think the license is the issue. We'd have much the same problem if it was Apache licensed.

The issue is in creating single entity copyright holders so you can be worth buying. No one would have bought MySQL, JBoss, Spring if they didn't own 99%->100% of the copyright. Spring showed that it isn't about the license, though it's easier to do business with a more aggressive license.

MySQL are reaping what they've sown.

I think from this we'll learn that an OSS pattern is to decentralize your ownership - not just to a non-profit, but to multiple individuals and even more so to multiple legal systems.

philikon said...

Well said, Greg. However I'm not sure I completely agree with you on blaming the GPL. Nor would I agree with Henri's comment.

I think the GPL, central code ownership and even a commercial licensing model does work when the community governs the code and trademark. For instance by means of a foundation. The FSF is a prominent example, of course. I personally have seen it work on smaller scale at the Plone Foundation.

That said, I still prefer BSD/MIT/Apache style licenses because you'd never get into this mess in the first place.

Ceki said...

Any vendor can attempt to impose unpleasant business practices, but when they do, the customer usually walks away, at least at some point in time.

Forking MySQL code base is still possible, albeit not under the MySQL name, but who cares? Note that software licensed under the Apache Software License routinely prohibits making use of the original project name (by forks) as well.

I fail to see the logic in this post.

Daniel Cid said...

I think your misunderstood the GPL and what they meant.

You can fork MySQL as much as you want. You can name it FreeSQL, OpenSQL, whatever...

The real issue is that even if someones forks MySQL they wouldn't be able to keep the same business model as before. Why? Because they don't own the copyright, so they can't sell it under a less restrictive license.

They can still sell commercial support, training, etc.

9600 said...

@Henri I wholeheartedly agree. Copyright ownership and lack of community contribution to core are, for me, the main issues.

The GPL is not to blame per se, and rather instead that MySQL adopted a business model which offered customers the veneer of copyleft protection but meant they could be sold something proprietary.

Furthermore, even though you could fork the GPL codebase and call it something else, where is the community with core dev skills? To me this is like getting code in escrow from a recently departed proprietary ISV. You've got the source. Now what?

The BSD might lead to more predictable outcomes, but this is like suggesting leaving the doors off your house to remove the worry of burglary.

Danny Angus said...

Well said Greg, time someone pointed out the elephant in the room. This is all about commercial gain.
Monty set MySQL up so he could retain some leverage over customers and get paid. His choice, not my place to judge him for that, but, he then chose to sell, and sold the same commercialities. Why is anyone surprised that it eventually comes to this, its the natural conclusion IMHO. The GPL protected the copyright owner, not the users, it doesn't take a genius to predict that either.
What I'm uncomfortable with it that Monty, Stallman et al are now running about trying to put the genie back in the bottle. They got what they wanted, this played out according to their rules, they need to get over it, and those of us who don't want to see the pattern repeated need to educate the rest about the nature of greed and big business.

Hiram Chirino said...

Ceki, Daniel,

I think the customers that Greg is saying are getting screwed are the commercial customers that found the GPL license unsavory.

It's a bait-n-switch game. GPL it to make make it really common and pervasive, which eventually leads folks to realizing they need the commercial license for their business scenario.

As such, it's not really the GPL which is forcing folks to accept the extortion that's about to come the customer's way... but the GPL did allow itself to be used as bait.

Mr James Downs said...

And PJ's article takes the exact opposite position to yours

Greg Stein said...

@James: eh? apples and oranges. She talks about Monty pushing for permissive licensing for his own business. My point is that businesses with an OSS model should use a permissive license to support/provide/enable their customers regardless of ownership changes.

Adam Backstrom said...

Double negative in your post: "The GPL version was not available to them because they needed a license that didn't not require them to GPL their own software." Is that what you meant to say?

Dave said...

Nice article, much hubris and schadenfreude, and it needed to be said in plan words. I agree the 'knickers in a twist' of Stallman & Widnius is fun to watch and MySQL, as you say, both allowed people to buy an exclusion from the copyleft provisions, and rejected innovation that wouldn't assign them ownership. That's not what most people call good open source behaviour. bad boys.

The GPL however guarantees that no commercial {or non-profit} company can appropriate the code. If that's your goal then its better than the alternatives. Your right, in that people are beginning to see that 'attribution-only' licences are better for community building and offer different protections.

I think it's important not to fall into the religous trap that 'my licence is better than yours'. They both have their roles. While some people are moving towards the BY- licences, I feel, as I explained in my blog article, persuaded by Eblen Mogden and learning some sympathy for the GPL, although sometimes its fans are its worst enemies.

9600 said...

@Greg Why this obsession with licences that allow people/companies to turn your efforts proprietary? E.g. Apple and their strip-mining of FreeBSD whilst giving little back.

You seem to be conveniently ignoring the powerful and community friendly combination of the GPL where copyright is with a foundation. And the added option of fiduciary licence agreements to grant back to the creator.

ddaa said...

What's really in cause is the bit of glue that let client code talk to the MySQL server.

As soon as someone rewrites libmysql and license it under LGPL or a MIT-style license, there won't be any problem. The server will still be GPL-licensed, but the GPL does not "contaminate" across process boundaries.

Copyleft licenses are successful because they enforce tit-for-tat. Permissive licensing is what caused the proprietary unix debacle. It's also what makes OpenBSD the most popular unix system on the desktop through MacOS, with nearly no payback to the BSD ecosystem.

Julio Biason said...

Wrong, wrong, wrong.

MySQL, the server, is GPL. That doesn't force your application to be GPL (it may be in case the client library is GPL -- which I don't think it's the case and, even if it is, it's not hard to "reverse engineer" its protocol and write your own version.)

You won't put MySQL embedded in your application. That doesn't make any sense. Either your install application also launches the MySQL installer or you just say that the user must have a MySQL installed. Either way, if you provide the MySQL installation, you only need to provide the MySQL sources, not yours.

MySQL being GPL'd means that anyone, if they are annoyed enough with the way Oracle drives MySQL development, can fork it and make their own version. As far as I know, there is at least one project -- whose name eludes me at this moment -- that did that already and were more focused on speed than things like server side scripting or constrains.

MySQL state right now can be sad, but in no way GPL is related to that.