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