I read an interestig article on The Verge the other day entitled ‘Google’s iron grip on Android: Controlling open source by any means necessary’. It basically details how Google is slowly but surely closing up Android, by stopping maintenance and new development on the Open Source versions of most important apps and instead improving only the closed source forks of these apps in the Google Play store.
(Image courtesy of Anythingbutiphone.com)
It is an interesting strategy: Start out by giving something away for free and only once you have gained a strong foothold in the marketplace, start closing it up so you get/keep full control and can start milking your new cash cow.
Turns out that The Verge is doing a series of articles on this subject and I spend quitte some time reading some of them. I also tend to read comments and it was one of the comments that triggered this blog post. Basically the commenter was saying that if Android would have been GPL licensed this strategy of Google would not have been possible:
OK, a Nook can run programs that were coded for an older version of Android, maybe even a recent version. But it cannot be called, nor IS it called “Android.” This is sorta like Linux where you can only use version 2.2. Except that Linux is GPLv2, which would never allow this sort of foolishness.
This is pertinently false!
I hate it when people spread disinformation about topics I care about, such as Open Source. So much so that I created an entire blog just to store the standard message I give people who claim that Open Source software is not necessarily free as in free beer, when in fact it is.
So why would a GPL license here have done nothing to prevent ‘this sort of foolishness’?
Because Google is the copyright holder of Android. It *owns* the code. It can do whatever it wants with it. It can publish it under the Apache license (as it has done), under the GPL, under a commercial license, or all at the same time!
Yes the GPL has restrictions to prevent people from closing up the source that the Apache license does not have. But these restrictions do not apply to Google itself! Google is the copyright holder. The copyright is the sole legal right that gives Google claim over the code. It’s what makes it possible for Google to license it to third parties under any license in the first place.
Let this sink in. Google *owns* the code, so the license they attach to it does *not* apply to them!
To be honest, any contributions made by third parties under the GPL license would be covered by the license and Google would not be able to close up those contributions. But in reality this is hardly ever a problem. MySQL for example is dual licensed under both the GPL and a commercial license. So Oracle (the owner of the code) would not be able to distribute contributions made by third parties under their commercial license… except that they can because they require any contributors to sign an agreement that basically gives Oracle a copy of the copyright. They basically make you share your ownership of the code with them so they can dual license it. If you don’t sign they will not allow your contribution in their distribution.
So what’s all the quid-pro-quo talk by the Free Software Foundation about then? Are they lying?
In short: Yes!
The more nuanced answer is that they (intentionally or not) are not telling the whole story. They seem to insist on leaving out crucial details in their laymen’s explanation of the legalese that is the GPL. For example, in their FAQ they explain why you should use the GPL like this:
Using the GNU GPL will require that all the released improved versions be free software. This means you can avoid the risk of having to compete with a proprietary modified version of your own work. However, in some special situations it can be better to use a more permissive license.
The lie is in the first sentence. Specifically in the word ‘all’. As explained above, not *all* improvements will have to make it back into the Open Source project. The owner of the code can choose freely whether he will publish his improvements under the GPL or not. This may seem like nitpicking about details, but this is a crucial detail.
The FSF created the license, so they must know what it does and does not require/permit. They are programmers, so they must know the importance of the word ‘all’ and how it’s light years separated from ‘almost all’ and ‘most’ and other fuzzy terms like that. ‘All’ means no exceptions, but there is a huge exception here. One that Google could have exploited to do exactly what it is doing now.
So they are leaving out a crucial detail and I suspect they are doing it on purpose.
The same goes for their much quoted line Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”.
Again, they must know the logical meaning of the word ‘not’. This sentence implies that free software might not be free as in free beer, when in fact it *is* free as in free beer. Always. There is no way around it. So if they know this, why would they write it this way? They actually spend time explaining how you could charge for the floppies etc. which we all know is a pipe dream. If your software is actually useful and people may spread it for free, don’t count on selling many floppies or download bandwidth or whatever. But apart from that practical consideration, a floppy is not software. Bandwidth is not software. Time is not software. The *software* is free. In all meanings of the word.
I suspect they are spreading disinformation on purpose. Call it fud. At the least they are inaccurate on crucial details. At the worst they are downright lying. They have a mission. A political one. And apparently when one practices politics, the truth becomes something that can be bent your own way. Shame on them!
Still, the GPL has it’s purposes. The second sentence is true. The GPL is a very effective way for a publisher to prevent third parties from forking the code and closing it up. It just does not prevent the original publisher from doing so!