| Please consider subscribing to LWN Subscriptions are the lifeblood of LWN.net. If you appreciate this content and would like to see more of it, your subscription will help to ensure that LWN continues to thrive. Please visit this page to join up and keep LWN on the net. |
There's been a lot of press—and hand-wringing—about Google's decision to withhold the source code for the latest Android 3.0 release. There have been claims that Google is (or will be) violating various licenses by doing so. While that claim is overblown, there are still reasons to be unhappy about the choice being made here, while recognizing that it is Google's choice to make.
Business Week broke the story that, unlike previous releases, Android 3.0 ("Honeycomb")—targeted at tablet devices—would not be released for several months, possibly not until the next version ("Ice Cream") is completed. The article quoted Andy Rubin, Google's VP for engineering and head of the Android group, as saying that Honeycomb may not be suitable for phones:
The concern seems to be that vendors might take Honeycomb, put it on phones (or other small-screen devices), and create "a really bad user experience". There has certainly been a number of vendors who took previous non-tablet-oriented releases and put them on tablets with varying degrees of success. Google appears to be worried that the Android brand is being tainted by low quality implementations. That may be true, but there are other ways that problem could be prevented.
One obvious choice is the Android trademark, which Google could use to require devices to meet some minimum standards. Google already exercises some control via its Google-branded Android applications (like Market, Maps, and Gmail) that have to be licensed from the company. In order to do that, a device must fulfill the Android Compatibility Definition. But plenty of low-end phone and tablet makers were willing to forgo those applications, take the source code, and run with it—sometimes with less-than-stellar results.
So, Google has found a different way to enforce its will on device makers that do not directly license code from the company: stop providing the source. Since one of the goals of the project was to "keep the GPL out of user space", that means that the Android user space is licensed under non-copyleft terms. But even if it were all covered by the GPL, Google, as the copyright holder, would not be obligated to release the code. Copyright holders are not beholden to the license they provide to others for using their code.
As it is, most of the code is under the Apache Software License or similar terms, which means there is no requirement for anyone to provide source. The big exception, of course, is the Linux kernel, and one would expect that Google is GPL-savvy enough to not withhold that code. For the kernel, though, the interesting parts are not necessarily in Google's kernel tree, as it is the device makers that add support and drivers for their platforms. As we've seen, GPL compliance in Android tablets is rather spotty, at best, so that's where any license problems are likely to be found.
Part of the uproar about Google's decision is based on the somewhat faulty belief that Android was ever a real open source project. There were high hopes early on that it might become one, and, up until now, Google kept throwing its code over the wall to—more or less—continue the open source spirit of the project. But, unlike real open source projects, there were only limited attempts to build a developer community around Android itself, instead, for the most part, there were just the periodic code drops. Much of the effort was aimed at cultivating application developers, which has worked out quite well. It's hard to say for sure, but one might guess that the openness of the Android code played a role in how quickly the platform was embraced by application developers.
One could argue that Google needed to keep Android development in-house, so that it could keep up with the incredibly fast-paced smartphone market—and that may be true. One could certainly point to MeeGo as a counterexample of sorts, and one that has yet to really produce any tangible results in the form of products for sale. MeeGo clearly has a development community slowly growing around it, even though it is dominated by two (now one, really) companies. While MeeGo is much more upstream-oriented than Android, its governance has been largely top-down. So far, Google's model has been much more successful, but MeeGo is really only a year old at this point.
Google has made a lot of noise about how "open" Android is, including things like Rubin's famous tweet in response to Steve Jobs: "The definition of open: 'mkdir android ; cd android ; repo init -u git://android.git.kernel.org/platform/manifest.git ; repo sync ; make'" For Honeycomb, at least for the next few months, that will no longer be true, which is enough to sour some folks on the Android platform as a whole.
Google has evidently weighed the benefits that it gets from opening the Android code—bug fixes, enhancements, good public relations—and found that it was not enough to overcome its concerns. It is unfortunate that we won't be able to see what the CyanogenMod folks (and others in the "mod" community) might have done with Honeycomb, at least for a while yet. There are likely some low-cost tablet makers that could have done interesting things with it as well. While Google claims to be concerned about "user experience", it's pretty hard to read this move as anything other than a tightening of control over the platform. Hopefully, this is just a blip, and things will return to "normal" with "Ice Cream", but the damage may have already been done by then.
Over the last few weeks, we have defended the behavior of several companies (Red Hat and Google) when they have been faced with accusations of license violations. In all of these cases, though, one does not have to like what the company is doing to recognize that it isn't a violation of any licenses. Once again, we would much rather see Google keep the Android project open—or make it even more open—but recognize that it is well within its rights not to do so. With any luck, other open source projects will show the way such that Google finds it in its interests to open up Android further. Time will tell ...
Android and Honeycomb
Posted Mar 31, 2011 2:25 UTC (Thu) by cjb (guest, #40354) [Link]
It's not a counterexample. MeeGo's equivalent to Honeycomb -- the tablet version of its UI -- is its "MeeGo Tablet UX", which it's been demonstrating at conferences repeatedly (although they've thrown it out and started from scratch a couple of times) for the last year, e.g.:
http://www.youtube.com/watch?v=QqeeQd-YNL0 (June 2010)
http://www.youtube.com/watch?v=c1JalTArdKI (Feb 2011)
and which.. doesn't have any source available, as you can see looking at http://meego.gitorious.org/, and has never had any source available. So, MeeGo is just as culpable as far as developing in private, and moreover MeeGo's closed-source periods appear to be *longer* than Android's.
Maybe I'm missing something? I'm seeing lots of "Android sucks, I'm switching to MeeGo" posts (on identi.ca, mainly) since the Honeycomb announcement; I don't know whether I'm mistaken about how MeeGo actually works or everyone else is.
Android and Honeycomb
Posted Mar 31, 2011 3:49 UTC (Thu) by josh (subscriber, #17465) [Link]
Android and Honeycomb
Posted Mar 31, 2011 7:02 UTC (Thu) by tajyrink (subscriber, #2750) [Link]
The thing about UX:s is that commercial needs like marketing need to have some of "wow" effect, and some companies think it's better to develop such behind the curtains. The UX:s from Intel however should eventually all be open, and they've not yet failed any promise. Even if they would fail, the whole MeeGo Core is open anyway for anyone to build and extend, and there can be any number of UX:s (like say GNOME Shell, Unity, KDE Plasma Desktop etc.). I'm eager to see KDE tablet/mobile UX:s packaged into MeeGo via for example the MeeGo Community OBS: https://build.pub.meego.com/
MeeGo has still some way to go in its openness, but they are getting there. See for example the recently opened http://build.meego.com/project/list_public view to the buildfarm. While they are doing already so well, I don't want to take the opportunity to blame them for stuff they haven't yet achieved in the openness - I really do understand there are also other objectives than opening everything up, like dealing with the potential hw manufacturers and sw developers.
I have for example done test builds of MeeGo for ARMv4 (yes, the ooold instruction set) based on current development MeeGo snapshot. The possibilities seem to me to be endless, unlike with Android where I'm discouraged that I'd need to take some random stable snapshot without any possibility to see or influence development.
Android and Honeycomb
Posted Mar 31, 2011 10:00 UTC (Thu) by lbt (subscriber, #29672) [Link]
So your timing was just a touch off :
http://lists.meego.com/pipermail/meego-dev/2011-March/482...
From Imad Sousou : [MeeGo-dev] tablet user experience source is now open...
eg: http://wiki.meego.com/MeeGo_UX_Components
However - it was an "over the wall" delivery... this time.
I think the development model is the differentiation between MeeGo and Android - lets hope it continues to mature and differentiate.
Android and Honeycomb
Posted Mar 31, 2011 13:21 UTC (Thu) by cjb (guest, #40354) [Link]
Pesky MeeGo, making my argument invalid by releasing all their source code! Great to see they made a release.
Android and Honeycomb
Posted Mar 31, 2011 17:29 UTC (Thu) by xxiao (guest, #9631) [Link]
The I pastry
Posted Mar 31, 2011 7:06 UTC (Thu) by rvfh (subscriber, #31018) [Link]
Android and Honeycomb
Posted Mar 31, 2011 13:33 UTC (Thu) by emunson (subscriber, #44357) [Link]
Android and Honeycomb
Posted Mar 31, 2011 15:11 UTC (Thu) by Sufrostico (subscriber, #68053) [Link]
we need a geek device (was: Android and Honeycomb)
Posted Apr 1, 2011 15:55 UTC (Fri) by geuder (subscriber, #62854) [Link]
We can make our own software, but as long there is no decent hardware to run on, we are screwed. Any ideas welcome. I don't think jailbreaking is a permanent solution.
Android and Honeycomb
Posted Mar 31, 2011 16:02 UTC (Thu) by dmag (guest, #17775) [Link]
I wouldn't put Honeycomb in the same class as the Nexus S. It reminds me of the bad old days of Java/JME phones: people can write apps but not touch the OS.
keeping the GPL out of userspace? Nope...
Posted Mar 31, 2011 18:23 UTC (Thu) by armijn (subscriber, #3653) [Link]
Then it goes to companies who make an SDK so real products can be made out of it and this is where A LOT goes wrong. You would be surprised to see how much GPLv2 licensed code then slips back in.
So, it is not as simple as everyone says it is.
keeping the GPL out of userspace? Nope...
Posted Mar 31, 2011 19:47 UTC (Thu) by karim (subscriber, #114) [Link]
However, I wonder how applicable this is in the specific case of Honeycomb tablets. One would understand that 3rd parties creating SDKs out of the AOSP have "value-added" software (i.e. mostly stuff they pulled off the web and put in their SDK -- which is where the GPLv2 software you mention likely comes from, Busybox et al. presumably.) In the case of Honeycomb, though, which apparently Google has only given source access to a handle of pre-vetted companies, such 3rd party SDKs would likely not exist (right?). And, therefore, the actual Honeycomb shipped by said manufacturers should be snow white, so to speak.
And in the other cases, those of GPLv2-"contaminated" SDKs, this is likely no different from what embedded Linux vendors have been doing for over a decade now (i.e. a mix of packages from all different directions which still require the company shipping the product to make sure it actually understands what it's really shipping.) IOW, copyright holders still need to be on the lookout for potentially infringing parties. Which is no different from the way it was before Android ...
Any complementary info you could provide here would be great.
keeping the GPL out of userspace? Nope...
Posted Mar 31, 2011 21:01 UTC (Thu) by paulj (subscriber, #341) [Link]
keeping the GPL out of userspace? Nope...
Posted Mar 31, 2011 23:45 UTC (Thu) by cjb (guest, #40354) [Link]
If they're going to all the trouble of having their own libc and API-incompatible desktop environment, I don't think "surely" counts for much. That said, dbus and bluez are examples of code shipped with Android that are GPL.
keeping the GPL out of userspace? Nope...
Posted Mar 31, 2011 23:47 UTC (Thu) by rahulsundaram (subscriber, #21946) [Link]
dbus is dual licensed, so it doesn't really count and bluez is used only via a IPC mechanism that is supposed to enable proprietary apps to use it without being impacted by the license.
keeping the GPL out of userspace? Nope...
Posted Apr 1, 2011 1:04 UTC (Fri) by paulj (subscriber, #341) [Link]
keeping the GPL out of userspace? Nope...
Posted Apr 1, 2011 1:21 UTC (Fri) by rahulsundaram (subscriber, #21946) [Link]
I am not a lawyer. I assume Google legal team have competent people who have done what it is necessary and this is what I heard.
keeping the GPL out of userspace? Nope...
Posted Apr 1, 2011 2:44 UTC (Fri) by paulj (subscriber, #341) [Link]
keeping the GPL out of userspace? Nope...
Posted Apr 1, 2011 3:08 UTC (Fri) by elanthis (guest, #6227) [Link]
Which is yet another reason to avoid the GPL and the insanity it causes.</flame> :p
keeping the GPL out of userspace? Nope...
Posted Apr 4, 2011 1:47 UTC (Mon) by jhubbard (guest, #5513) [Link]
Your comment applies to any license or contract not just the GPL. If it's not been vetted by a court, it's open to interpretation. Most people try not to end up in court. While the specific clause about derivative work may not have been cleared up yet, there was a win against Westinghouse. Don't forget all of the victories in Germany as well.
keeping the GPL out of userspace? Nope...
Posted Apr 5, 2011 2:06 UTC (Tue) by cmccabe (guest, #60281) [Link]
P.S.
It might be better if the bluez people put in a specific exception for this kind of use, the way Linux has a clear statement that user-space code is not a derived work just because it uses the system interfaces.
It seems like these days you have to spell out everything, even if it's obvious, to keep from getting sued by unscrupulous people who want to waste your time in court.
keeping the GPL out of userspace? Nope...
Posted May 31, 2011 12:22 UTC (Tue) by Trelane (subscriber, #56877) [Link]
Jein. Relevant FAQ sections (http://www.gnu.org/licenses/gpl-faq.html bolding is original, italics are mine)If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?
It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them.
If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed.
If the program dynamically links plug-ins, but the communication between them is limited to invoking the main function of the plug-in with some options and waiting for it to return, that is a borderline case.
Can I release a non-free program that's designed to load a GPL-covered plug-in?
It depends on how the program invokes its plug-ins. For instance, if the program uses only simple fork and exec to invoke and communicate with plug-ins, then the plug-ins are separate programs, so the license of the plug-in makes no requirements about the main program.
If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.
If the program dynamically links plug-ins, but the communication between them is limited to invoking the main function of the plug-in with some options and waiting for it to return, that is a borderline case.
Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.
See also the question I am writing free software that uses a non-free library.
What is the difference between an aggregate and other kinds of modified versions?
An aggregate consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them.
Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).
If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.
By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.
keeping the GPL out of userspace? Nope...
Posted May 31, 2011 12:04 UTC (Tue) by fusebox (guest, #75304) [Link]
"bluez is used only via a IPC mechanism"??????????
Copyright © 2011, Eklektix, Inc.
This article may be redistributed under the terms of the
Creative
Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds