Helpful lawyers think Google stole Linux code

Legal analysts argue Android may be lifting code from the Linux kernel

By Brian Proffitt  19 comments

By now you have likely heard the noise about Google possibly violating the GPL by using Linux header files to create a new BSD-licensed library that userspace applications can interface with the Android kernel.

The allegation comes from Brown Rudnick partner Edward Naughton, who has done quite a bit of research into the matter and has come up with a 10-page report that highlights what he believes are serious concerns for Android's implementation.

You should read Naughton's report to get the full nuance of what he's suggesting Google of doing, but in a nutshell, Google decided for technical reasons to avoid using the glibc library of Linux kernel headers (which most distros use for the interface between the kernel and applications) and instead create their own Bionic library that comes with what Google believes is a better (less broken) set of kernel headers for Android applications to use.

The headers within Bionic, according to Google, are thoroughly cleaned of any comments or content that might be considered copyrightable works. The only thing that is left are standards-based constants, macros, and type definitions that many in the software development/legal arena consider facts, because they're not doing anything, they're just telling applications "here's how to interface with the kernel."

In "pure" Linux distros, glibc is used for this interface job and even though it is licensed under the GPL, application developers can use it to their hearts' content without fear of having their own works fall under the GPL because the Linux kernel developers have said (many times) that they don't regard glibc as a derived work, so deep interfacing with it will not create the old bugaboo of a "viral" GPL license.

Naughton, on the other hand, has serious concerns that what Google has done with Bionic (essentially creating a library analogous to glibc for Android) and then licensing Bionic under the Apache license violates the GPL. If that's the case, he argues, then Bionic could be considered a derived work under the GPL and therefore any application that touched Bionic would also be subject to the GPL.

Which would pretty much make the Android application space a ghost town, unless something were done to fix it.

Naughton makes a pretty solid argument, picking away at one notably grey area in this discussion: are header files truly non-copyrightable? But before I get into that, there are a couple of things that need to be pointed out here.

First, while Naughton did the legwork on this analysis, it was Florian Mueller who did the marketing. A number of my colleagues (along with myself) received an e-mail from Mueller yesterday highlighting Naughton's claim, a February 22 article from IP attorney Raymond Nimmer that raises the issues of whether copyright applies to header files (which Naughton also cited in his analysis), and a link to Mueller's own blog post on the issue, which does a lot of caterwauling about how Google faces a serious Linux copyright problem.

Update: Assertion that Mueller's claims regarding were wrong has been changed to they have been disputed. No legal proof has been demonstrated one way or the other. --BKP

To be clear, there's no indication Mueller and Naughton are directly working together, but Mueller is very interested in Naughton's findings. And Mueller's recent claims (which have been publicly disputed) that Google directly copied Java files into Android were also cited by Naughton in his companion blog entry on The Huffington Post... an entry that seems a bit biased against Google, with headings like "What did Google do this time?" Hey, call me crazy, but has anyone proven Google did something bad to start with? Or is that whole innocent until proven guilty thing a rule, not just a guideline?

Second, another interesting bit of trivia: for some reason Naughton seems to have erased any mention of having represented Microsoft in multiple past cases from his biography. To be clear: the fact that an attorney has represented Microsoft in the past does not have an ounce of bearing on other opinions he might have and it should not negate the veracity of his claims. So why hide that fact from your public biography?

If you look at Google Cache from March 8, 2011 to see what I mean. You really don't need to, however. Whoever edited the bio didn't do a great job:

"Co-counsel defending Fortune 50 software company against a putative consumer class action alleging that it had violated wiretapping statutes and common law privacy rights by designing Windows to permit third parties to place cookies on computers. Obtained dismissal of complaint," the current bio reads. I wonder which Fortune 50 company would be defending against a class action lawsuit against Windows? Hm, who could that be?

But I digress.

The core issue here is: are the kernel headers really copyrightable? If they are, then Naughton and Nimmer have pointed out something valid and troubling. The fact is, no one is 100 percent sure if header files are non-copyrightable, though traditionally software developers have treated them that way. When The SCO Group sued IBM for copyright infringement, the alleged copying of header files from UNIX to Linux was indeed part of SCO's lawsuit. Presumably this issue would have been tested in court--save for that fact that Novell body-slammed SCO's case when it was proved that SCO never owned the copyrights to begin with.

In this particular case, Naughton and Nimmer may be missing something important: their respective analyses hold the presumption that the Linux kernel is licensed purely under the GPL. It's not. Linus Torvalds, who holds copyright for the enitre Linux kernel, added one exception:

"NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls--this is merely considered normal use of the kernel, and does *not* fall under the heading of 'derived work.' Also note that the GPL below is copyrighted by the Free Software Foundation, but the instance of code that it refers to (the Linux kernel) is copyrighted by me and others who actually wrote it.

"Also note that the only valid version of the GPL as far as the kernel is concerned is _this_ particular version of the license (ie v2, not v2.2 or v3.x or whatever), unless explicitly otherwise stated," Torvalds' statement in the COPYING file of the Linux kernel source reads. That statement is then followed by an unedited version of the GPL v2.

This is the exception that lets glibc do what it needs to do, without virally "transmitting" the GPL into user applications. Torvalds can certainly add such an exception to the kernel; it's perfectly legal. In fact (somewhat ironically), it is a perfectly legal classpath exception in the GPL'd form of Java that does the opposite of Torvalds' exception: touch GPL Java with your software and your software is GPL'd, too. That's what Sun did to try to spook developers into using its commercial license for Java, which then caused Google to build its own Java virtual machine, which is now the subject of an actual copyright infringement lawsuit brought by Oracle against Google.

Layers upon layers.

If this exception applies to all software, like glibc, that handles the Linux kernel header files, then Google has nothing to be worried about. Naughton and Nimmer both make the case, though, that even if Bionic contains nothing but header files (which are considered facts individually), the way those facts are put together in a new and unique way makes those header files copyrightable in a meta-context. That, they argue, means that collections of header files, even cleaned up, may be subject to copyright.

But, there's one more thing to consider here.

Let's say, for the sake of argument, that Google got a little too creative with Bionic, and did indeed step on kernel code copyright. That does not necessarily mean there's a legal problem, because no one is suing Google about this.

It's like watching my 401(k) take a nosedive during the stock market troubles a few years ago: on paper, my mutual funds tanked. But in reality, since I am quite a ways from retirement, I knew my funds would ultimately recover (and they did). I would have only lost money if I had panicked in 2008 and sold my holdings at the then-low market prices.

In that sense, Google only really has a problem here (again, on the stipulation that they did anything wrong at all) if the kernel developers look at Bionic and say there's a problem. And given that Bionic has been around a while and Linux kernel developers are typically not known for being shy or subtle, does anyone really expect they didn't know about Bionic yet?

If there is something that makes the kernel developers unhappy in Bionic, I'm reasonably sure they'll say so. Loudly. Google should respond and ultimately things will get worked out. I suspect that is even more the likely outcome here because even though there are many individual copyright holders of small code snippets within the Linux kernel, pretty much everyone up until now has regarded the header files as uncopyrightable. I see no reason for that to change. To do so would seriously undermine the technical relationship between GPL operating systems like Android and Linux and the applications that run on them.

Unless, of course, that was the point of all this caterwauling.

Follow Brian on Google+

Brian Proffitt is a veteran Linux and open source journalist/analyst with experience in a variety of technologies, including cloud, virtualization, and consumer devices.

19 comments

    zeke12345
    zeke12345 44 weeks ago
    Are we through giving FUDmeister Mueller the attention he craves?

    The trail he has left the past few years is very long and just happens to always try to stir stuff and undermine FLOSS and-or Linux.

    I think the charade of concerned citizen who does this for the greater good is long finished.

    I think the venom he spewed on PJ as well as the old FUD he brings up against her should be the final nail in his coffin. (not too mention that he calls liars all the writers/bloggers who have personally met PJ.)
    He can still fool a few mainstream tech journalists who specialize in gadgets but I think most that write about FOSS like SJVN, Glyn Moody, etc know EXACTLY what Florian Muller stands for.
    Five letters: FUD, BS.

    Someone mentioned jokingly that Mueller and Rob Enderle have never been seen in a room together but Muellers love of all those how have attacked LINUX-FLOSS over the years, the Enderle, Bott, Ogara, Lyons and company really does a great job explaining what his positions are.

    Liars tend to stick with other liars for moral support.

    Syd
    Anonymous 46 weeks ago
    "Linus Torvalds, who holds copyright for the enitre Linux kernel"Completely incorrect. I stopped reading at this point./usr/src/linux $ grep -rh Copyright *
    Anonymous 48 weeks ago in reply to Anonymous
    It's indeed strange that the Linux Foundation's former community (!) manager says Linus Torvalds owns copyright for the entire kernel.But the much bigger problem I have with Brian's related logic is that he doesn't pay attention to this mailing list post by Linus Torvalds although both Naughton and I mentioned it:http://lkml.org/lkml/2003/12/5/13In that one, Linus Torvalds makes it very clear that the "normal system call" exception does NOT justify the use of GPL'd headers, which is a copyleft case at any rate and in Linus Torvalds' word only a "weasel" could claim the opposite.
    Anonymous 47 weeks ago
    This brings to mind a quote I once heard from (former Van Halen frontman) David Lee Roth: When asked how you know when you've "made it," Roth responded: "When you can spell 'subpoena' without thinking about it." The abundance of copyright and patent litigation volleyed against Android is testimony to its success. Time will tell whether or not it will be able to survive the onslaught.
    Anonymous 48 weeks ago
    Thank you for a concise and informative article. Well done.
    Anonymous 48 weeks ago
    One inaccuracy in your article. The GNU C Librarg (glibc) is licensed under the LGPL, not the GPL. The reason why proprietary programs like SAP R/3 and Oracle Database Server can legally link against glibc and use the header files shipped with Linux (which by the way are generated by glibc's build process via a process remarkably similar to Bionic --- it starts with the linux header files from the kernel), is because interface definitions are not copyrightable. This is nothing new or novel here.If this were not true, it wouldn't be OK for the LGPL'ed glibc to do what both glibc and Bionic are doing (or at least), it would infect glibc to make it be GPL'ed, and then IBM Websphere, Oracle Database Server, and all other proprietary programs running under Linux today would be violating copyright --- and that's obviously not true, and it's obviously was not the intent of the Linux kernel developers.Oh, by the way, the quotes froms Linus Torvalds which Florian cited were, if you look at the context of the e-mail thread, very obviously referring to kernel modules, and not code running in userspace, whether that's glibc, Bionic, or SAP R/3.It's pretty obvious that the lawyers who have been throwing this FUD in the air is in the pay and pocket of Microsoft. What I'm not sure about is whether Florian is just extremely ignorant and naive, is just after the attention, or is also being paid by Microsoft to spread FUD and attack Google.
    rossjudson
    rossjudson 48 weeks ago
    There's a very good reason why Oracle and Mueller obfuscate the package directives and headers on the Java code they produce that is supposedly duplicated.All of these duplicates are from the test tree of the Android source. They are NOT part of the shipping product. They are used only for testing, to ensure that the actual implementation conforms to the expected standard.Mueller refers to a "directory adjacent to the one containing PolicyNodeImpl". Why not just come out and say exactly what file and directory you are talking about, instead of hiding behind PDF files and Oracle?I encourage others to look past the PDF smokescreen and inspect the actual source code. While there, make sure you understand where you are in the source tree, and whether or not the code you are looking at is actually landing in the shipping product.On the issue of headers: While IANAL, my understanding is that there is a hard limit on copyright such that its strength varies proportionally with the range of expression. In other words, I will have a hell of a hard time copyrighting the phrase "My house has a door". I can write that sentence as many times as I want, but I'm not going to be able to use copyright to stop other people from writing such a common sentence, and one where there are few alternatives.When it comes to interfacing code with a certain system, using a limited set of calling conventions, there's almost no range of expression. In other words, you can't create headers that are different, in function, from those that are required to use the interface. In such situations, competent persons in the field can and will generate or create virtually identical headers -- because the range of expression is extremely limited. In certain situations, at the binary level, there may not be any range of expression whatsoever.Given that, courts will hopefully simply reject header compatibility claims.I don't understand the motivation behind Mueller's "analysis" of the test tree in Android, or why he is claiming that it is in production code. I'll leave it to others to decide.
    Anonymous 48 weeks ago in reply to rossjudson
    rossjudson, you're unbelievable. You say the opposite of the truth and you do it with full conviction.A couple of examples:"Mueller refers to a 'directory adjacent to the one containing PolicyNodeImpl'. Why not just come out and say exactly what file and directory you are talking about, instead of hiding behind PDF files and Oracle?"Hey rossjudson, I DID provide the EXACT directory path. It's not my fault, rossjudson, if you were unable to read my blog post. Your reading comprehension is only your problem, so don't tell people wrong things.In my post on those files I provided LINKS to the Froyo and Gingerbread versions of that directory (search for this text in that post: "The Android versions of those files are available on the Web (Android version 2.2 [...]").Now the other thing I want to comment on:I don't understand the motivation behind Mueller's "analysis" of the test tree in Android, or why he is claiming that it is in production code. I'll leave it to others to decide.In any part of the codebase, a copyright infringement is a copyright infringement. I talked about files that were similar to what Oracle presented as Exhibit J to its amended complaint. Later on it appears that Oracle also presented the decompiled Java files I pointed to, as you can read here.Nowhere in my post did I claim that the code was on any particular device. There were people who blew things out of proportion so they had a strawman to attack.However, I can definitely confirm that the official source code availability packages of a variety of Samsung, LG and Motorola devices include those files. You can find them on the websites of those manufacturers. So there's no doubt that those device makers are, at a minimum for online distribution, exposed to liability risks as a result of Google's infringement of Oracle copyrights.
    Anonymous 48 weeks ago
    brian, i've always held your work in high regard. this piece is no different and you have advanced your arguments in a coherent and incisive manner. i didn't know about naughton's affiliations when i wrote my piece (http://bit.ly/fW6fRm)but i have to say that i find your complaint about a headline (what did google do this time?) somewhat funny when your own piece carries the sarcastic headline "helpful laywers think google stole linux code."it's the old pot, kettle, black thing.sam
    Anonymous 48 weeks ago
    I would have to say not only are they right, they are doing simple honest companies like mine a real service by helping us again those big evil companies.Thank you Florian for your unwavering support.
    Anonymous 48 weeks ago
    if we can't sell Mobile 7 lets tear down everyone else!
    Anonymous 48 weeks ago
    If you look closely at the "before" page, you will surely note that in the technology and trade secret section, Microsoft is the only company mentioned by name. All the other clients are just described generically.It thus seems likely that the edit was to bring consistency to the page.
    Anonymous 48 weeks ago
    Naughton's claims are ridiculous for the reason that he (nor Nimmer nor Mueller) have actually identified ANY code that they believe constitutes a legal problem. They mew about the copyrightability of the collective work, without pointing to any examples to support this claim.If there's a copyright violation in an individual header file, then give us the reference. That should be easy, if they know anything about what they're talking about.glibc has used, for many years, supersets of the Linux headers now used by Bionic, but has never been required to be GPL because of it. (glibc is LGPL, not GPL)So how could a stripped subset of headers impose this constraint on Bionic? That alone tells you this whole episode is a lot of baloney.
    Anonymous 48 weeks ago in reply to Anonymous
    The claim that "he (nor Nimmer nor Mueller) have actually identified ANY code that they believe constitutes a legal problem" is absolutely wrong. I mentioned in my blog post that Naughton identified potentially copyrightable inline functions. In Naughton's PDF you can find a detailed discussion of those functions, including where exactly they are in the Android codebase, and why they are very likely copyrightable.You should have read that before making such a wrong comment.Also, you say that "[t]hey mew about the copyrightability of the collective work, without pointing to any examples to support this claim." That is wrong, too. Read Naughton's PDF I just linked to.
    Anonymous 48 weeks ago
    Everytime there is a tempest in a teapot concerning Android/Google Mueller is there to proliferate the story.What gives Mueller? Why are you apparently attacking Android/Google at every turn?You were quick to jump on Android/Google concerning the Oracle suit. (you were at least partially discredited)What's the motivation? Are you associated with any company/organization/group which may be threatened by competition from Android?
    Anonymous 48 weeks ago in reply to Anonymous
    I was not "quick to jump on Android/Google concerning the Oracle suit". I did my best to look at this analytically and impartially, despite a history of fighting hard against Oracle's acquisition of Sun in posts like this one and that one.Your words "at least partially discredited" lihk to an article that was full of errors. That article attacked strawmen as I explained here, and its only argument "not on devices" was discredited by the fact that Motorola, LG and Samsung provide those files as part of their official source code availability packages.
    Anonymous 48 weeks ago
    I wish to focus my comment here on only this part:" And Mueller's recent claims (since proven wrong) that Google directly copied Java files into Android"The "since proven prong" part is simply a false claim.I debunked the grossly inaccurate claims made by those who criticized my findings. I did so in the following blog post:http://fosspatents.blogspot.com/2011/01/android-device-makers-distribute-oracle.htmlI proved that the files I found are part of the official source code availability packages of various Android-based devices made by Motorola, Samsung and LG. No one has disputed that claim.In addition to presenting that additional evidence, I also debunked various misrepresentations and errors in two blog posts that criticized me (one on ZDNet by an Android fan whose blog is officially about software development in general, but 90% of what he does is Android propaganda, and the other one on ArsTechnica).Meanwhile, Oracle apparently presented half a dozen of the files I dug up in its lawsuit against Google -- while another critic of my findings, an author for ArsTechnica, totally inaccurately claimed those files weren't "at issue":http://fosspatents.blogspot.com/2011/02/oracle-alleges-google-derived-code-from.htmlSo my critics have embarrassed themselves by making demonstrably false claims, while I made demonstrably accurate claims.
    Anonymous 48 weeks ago in reply to Anonymous
    The concern I raised in my previous comment (to which I'm replying) has been addressed. There's no doubt that those claims were "publicly disputed". That's very fair.
    bproffitt
    bproffitt 48 weeks ago in reply to Anonymous
    ... I'll change it to "disputed." Because your claims are disputed, without question. Just as you are disputing your critics' claims.BKP

      Add a comment

      Post a comment using one of these accounts
      Or join now
      At least 6 characters

      Note: Comment will appear soon after you have activated your account.
      Obscene/spam comments will be removed and accounts suspended.
      The information you submit is subject to our Privacy Policy and Terms of Service.

      ITworld LIVE

      Open SourceWhite Papers & Webcasts

      White Paper

      Consolidating SAP Applications to Linux on Power by IDC

      IDC studied a group of enterprises that had deployed SAP applications on IBM Power Systems servers running Linux server operating environments and had been working with those systems for several years. Learn about the results...

      White Paper

      An Interactive eGuide: Open Source

      By now, enterprises are well aware of the benefits of open-source software, which boasts a clean design, reliability, and maintainability, as well as support for standards and community values. But perhaps the biggest benefit is quality; since open-source software users have access to source code, bug fixes and enhancements come from multiple sources, often resulting in superior software.

      See more White Papers | Webcasts

      Ask a question

      Ask a Question