A Bit of Licence

One of the striking aspects of the free software community is its obsession with licences. It's as if within every hacker there's a lawyer struggling to get out. But maybe it's not so surprising; as Larry Lessig reminded us, “code is law”, and the reverse is also true in the sense that the licence adopted has a big impact on how the software is produced. That explains, in part, why recent discussions of Oracle's proposed acquisition of Sun – and hence MySQL – have once more put free software licences under the microscope.

For example, here's Monty Widenius, one of the main authors of the original MySQL, on why the GNU GPL places limitations on what forks of MySQL can do, and hence how viable companies based around them might be:

MySQL is not an end user application, but an infrastructure project that is quite deep in the system stack. Most of the technology partners, where most of the innovation in the MySQL space happen nowadays, depend on being able to get licenses for MySQL so that they can combine their closed source application or closed code (like storage engines) with MySQL. If you take the license revenue and add it to all direct and indirect money that comes from these kind of partners, this is a huge part of the MySQL economic infrastructure (i.e., where the money is).

The GNU GPL allows the copyright owner to use dual licensing, but companies based on forks of that code are restricted to offering pure GPL solutions – it's not possible to re-licence the fork under commercial, non-free licences. As a result:

A fork of an infrastructure GPL project can't work with any of the above mentioned partners and the fork can't be used by anyone who needs to distribute it with their own closed source parts or use it with others closed source parts. If there would be no way for partners to combine their code with MySQL, these partners and users would have to put their efforts on some other project and the money flow and a big part of the innovation around MySQL would stop. Over time other projects that allow everyone to participate and make money will take over the MySQL business.

It's possible to create companies doing support for MySQL, but without the economics, there will not be enough money and incentive to pay enough for the development of MySQL to satisfy the requirement of all the MySQL users. Any such company will just make MySQL 'die slower', but not be able to save it.

That seems to suggest that the company holding the copyrights to a GPL-licensed project has advantages over anyone else trying to earn money from it. But this long and interesting post by RedMonk's Stephen O'Grady notes that there is also a significant downside to the the dual-licensing approach:

For smaller firms, the primary limitation is the development. Unlike non-dual licensed projects which need only concern themselves with the quality and provenance of code contributions from external parties, dual-license vendors need also consider the question of copyright ownership. Because dual licensing depends on ownership of copyright for the entirety of the asset in question, third parties must either assign or be willing to jointly hold the copyright for any potential contributions. Early in a project’s lifecycle, this is a minor concern because the project owner likely employs most of those qualified to improve it. As a project matures and becomes more popular, however, this is a more pressing issue. First, because it acts to inhibit community participation (see slide 18 of this deck produced by Monty), but second – and more problematically – it means that third parties can, in practical terms, offer a more complete product.

Jeremy Zawodny made reference to the practical implications of the dual license in a post from December of last year entitled “The New MySQL Landscape.” In it, he made the assertion that “You can get a ‘better’ MySQL than the one Sun/MySQL gives you today. For free.” This is the cost of the dual licensing model: in return for the right to exclusively relicense the code, you forfeit a.) the right to amortize your development costs across a wide body of contributors, and b.) the right to uniformly integrate the best patches/fixes/etc that are made available under the original license because you cannot always acquire the copyright.

That's an argument the GNU GPL isn't so problematic in terms of creating viable forks that can support commercial ventures, because of certain aspects of the software community that forms around it. But here's a different view on the relationship of the community contribution to the licensing that sees another problem with the GPL: that its attempt to prevent “freeloaders” makes it unduly restrictive:

‘Freeloaders’ – people who use or modify the open source project for their own ends but give no code or community contribution back – are always going to exist; even under the GPL it’s easy to freeload, if you make your money from hosting services for example, and thus license choice has little impact on the scale (if not the nature) of the freeloading. Besides the annoyance of ‘that guy took my work and made some money out of it’ – which you have to accept as an inevitable outcome of going open source, so stick to making proprietary software if that bugs you – freeloaders have little negative effect on an open source project... The key is to recognise that in practice you can really just ignore freeloaders, and instead concentrate on maximising the positive contributors in your community.

If you are indeed happy to ignore freeloaders, you can adopt a more permissive approach by using the Apache, Eclipse or BSD licences. They, in turn, make it easier for other companies to create businesses around the code, and thus avoid any of the potential problems of dual-licensed GPL code discussed by Widenius.

But I do wonder about that central premise, that there will always be some kind of freeloading going on – through hosted services, for examples – and therefore potential contributors should just ignore that factor in their decision whether or not to join in. My impression is that people *do* feel very strongly about the idea of their work being taken and used for gain without something being given back, and that there is a significant difference between code being used for Web services, say, and being incorporated into a distinct software application that is then licensed.

Maybe the wide range of licences available is a response to people's differing responses to the freeloader issue. Those that don't particularly care will be happy to work on projects with more permissive licences; those that do care will stick to those using the GNU GPL to fend off the freeloaders. Such a correlation might also explain why something apparently so dry as licensing provokes such powerful and abiding passions: it's actually tapping into something very deep and personal that helps define how we look at the world, and hence who we are.

Comment viewing options

The GPL is an ethical tool, not an economic one. It was not written to prevent freeloading, it was written to promote individual freedom.

This is not exactly correct. Any open source license promotes individual freedom (less restrictive like BSD, MPL, etc. give even more freedom comparing to GPL). It's exactly the enforcement of contributing back the changes that makes GPL special, and this is about "freeloading", not about freedoms.

A company which dual licenses (GPL & proprietary) their product is precluded from use of others' GPLed code in their proprietary version and from use of others' proprietary code in their GPLed version. Maintaining such disparate versions increases managerial, development, and support costs.

Furthermore, if distinctions between the two versions are not significant then the company will see little acceptance of their proprietary version; if the distinctions are too great then there will be little benefit from community participation (and forking may result).

> That seems to suggest that the company holding the copyrights to a GPL-licensed project has advantages over anyone else trying to earn money from it.
WTF?! Of Course, stupid! That same goes with any proprietary licence or EULA, too!

but there is a widespread belief that *anything* released under the GNU GPL is automatically available to all under the same terms, so it seems worth pointing out that's not the case when the copyright is owned by a single entity.

The GPL is an ethical tool, not an economic one. It was not written to prevent freeloading, it was written to promote individual freedom. Any non-coding user is a "freeloader". Choosing a licence because you don't care about freeloaders is cute but gets the priorities wrong even when it isn't simply sophistry. Choose a licence because you do care about the freedom of users.