GPL violations in Android: Same arguments, different day

New whitepaper re-hashes old opinions on Bionic

IP attorney Edward J. Naughton is repeating his arguments that Google's use of Linux kernel header files within Android may be in violation of the GNU General Public License (GPLv2), and tries to discredit Linus Torvalds' thoughts on the matter along the way.

Naughton, or the clients he may be representing, seems intent on trying to cast doubt on the legal framework upon which Google's Android platform rests. To that end, Naughton has released a detailed whitepaper containing what he claims are more examples of the kind of problems he's been pointing out.

Here's the basic premise of Naughton's arguments:

Google, citing technical reasons, deliberately chose to avoid using the glibc library of Linux kernel headers (which most distros use for the interface between the kernel and applications) and instead created their own Bionic library. Bionic contains what Google believes is a less broken set of kernel headers for Android applications to use.

To create the headers within Bionic Google cleans the Linux kernel header files of any comments or content that might be considered copyrightable works, using automated scripts. The only thing that remains in the Bionic library 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 other Linux distros, glibc is used for this interface job and even though it is licensed under the Lesser GPL, application developers can use it to their hearts' content without fear of having their own works fall under the LGPL 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 mean software using it will in turn have to be licensed under the kernel's GPLv2.

But Naughton isn't buying that argument. He maintains that Google isn't completely removing copyrighted material from the header files, so their methodology is flawed. He dismisses the arguments made by several commentators--including me--that this cleaning is complete and even if it weren't, the Linux kernel header files as a whole are not copyrightable, so an incomplete cleaning problem is moot.

Naughton repeatedly points out that legally the argument for noncopyright of the kernel header files has not been tested. In this, he is absolutely correct. The "noncopyright" state for any header file has never been ruled upon in court. Naughton also makes the argument that when the judge in the Oracle vs. Google case rejected Google's contention that Java application programming interfaces (APIs) were noncopyrightable, Judge Alsup demonstrated that the same implication for the header files was on shaky ground.

This analogy seems to be a bit of a reach. From what I know, header files are used within APIs, so it is entirely possible that while APIs may indeed contain elements which are unique creations (and therefore are copyrightable) it doesn't necessarily follow that header files are anything but factual statements. Naughton also forgets to mention that Alsup was denying a Google motion for summary judgement when he made this decision. Alsup wasn't immediately saying that APIs fall under copyright; he was saying that the jury should have a right to examine the APIs and make the infringement call (one way of the other) themselves. The very article Naughton cites makes this quite clear.

But Naughton is right in saying that this argument isn't tested: it's a matter of convention in the developer community that header files are not copyrighted, not law. More on that in a bit.

There are parts of Naughton's whitepaper that are oddly contradictory. On the one hand, Naughton argues (emphasis his):

"…[T]o defend Google's approach, and to be sure that all copyrightable material was removed, it is necessary to examine every one of the files. Judge Alsup recognized this in the Oracle case, and so, too, did some of those who criticized my analysis and defended Google; one observed that it would require a lot of work and a 'careful analysis done jointly and in close collaboration with a lawyer.' Yet no one undertook this analysis; they simply took Google at its word, trusting the boilerplate header."

But then, in very next paragraph, Naughton argues that you don't have to examine the individual header files for copyrighted material after all:

"Regardless of whether any particular header file is copyrightable, the overarching structure of the API (or, to be technically precise, the application binary interface, or ABI) defined by the 750 header files is almost certainly copyrightable."

Naughton's defense of this stance even references the same article linked in the emphasized quote above as attacking this position back in March when his original white paper on this subject was released. "Hardly any of the commentators considered this point," Naughton writes in his most recent whitepaper. "One who did claims that I made a 'sweeping conclusion' without any analysis, but that's just incorrect."

By referencing Bradley Kuhn's article like this to alternatively support and counter his own points, Naughton essentially ends up killing his own reasoning. Kuhn's March 18 article correctly assigns all of Naughton's conclusions as basic hypothesis. A hypothesis is not fact, it has to be proven. Naughton uses Alsup's ruling in the Oracle case as legal "proof" that header files will fall under copyright law, then--just to make sure all the bases are covered in case they don't--cites several cases that lead him to conclude that the entirety of the 750 kernel headers are copyrightable as a whole.

Okay, I realize that I am not a lawyer, but the last time I checked, Naughton is not a judge, so he can conclude all he wants: none of this is certain because it's not been ruled upon in a court of law. His theories are just that: theories. But, as he did in March with virtually the same arguments, Naughton makes his arguments sound like real problems. But they really aren't because none of this has been ruled upon in a court of law, nor specifically legislated.

His most recent paper does include some new arguments, though: he goes after Linux kernel creator Linus Torvalds' dismissal of the problem back in March when I asked Torvalds what he thought of the Bionic/Linux header file business.

Torvalds responded to my inquiry on March 21 and had this to say:

"It seems totally bogus. We've always made it very clear that the kernel system call interfaces do not in any way result in a derived work as per the GPL, and the kernel details are exported through the kernel headers to all the normal glibc interfaces too.

"The kernel headers contain various definitions for the interfaces to user space, and we even actively try to make sure that the headers can be used by user space (and try to mark which of the headers are expected to be usable in such a way). Exactly because we know user space needs those details in order to interact with the kernel.

"So I haven't looked at exactly what Google does with the kernel headers, but I can't see that they'd want to do anything fundamentally different from glibc in this respect."

Naughton takes some time in this new whitepaper to pick apart Torvalds' statement--he pretty much has to, since all his legal theories are so much air without the possibility of concern from someone in the Linux kernel community about Bionic.

Naughton's main thrust here is that whatever Torvalds said ultimately doesn't prove anything in a court of law. In fact: here's his big-finish hypothesis: "Quotes in blogs don't provide legal certainty for businesses."

That didn't stop Naughton, by the way, of trying to use Torvalds words against him earlier in Tuesday's whitepaper:

"When Linus Torvalds defended Google's approach, he said that he didn't think that the software giant had done 'anything fundamentally different from glibc.' But Linus admitted that he had not reviewed the code at issue. A review of the code shows that his speculation was simply wrong. Bionic is very different from glibc in origin and content, and those differences are legally quite significant."

Quotes in blogs, it seems, can provide the basis of shoring up unproven legal theories. I hesitate to mind-read Torvalds' intent here, but I don't think he was saying that Bionic was identical to the glibc library, only that it performed a similar function. I mean, of course Bionic is different from glibc--that's why Google cleaned the files up.

Naughton highlights (literally) Torvalds own statements made back in 2001 that Torvalds does not hold the copyright for individual contributions to the Linux kernel.

"I want people to know that I cannot control the sources. I can write you a note to say that 'for use XXX, I do not consider module YYY to be a derived work of my kernel,' but that would not really matter that much. Any other Linux copyright holder might still sue you," Torvalds wrote ten years ago during conversations about loadable kernel modules (LKMs).

In all of this Sturm und Drang about header files, Naughton tries to sneak in some supposedly damaging evidence. If you recall, there were a lot of arguments from the Free Software Foundation and other organizations about the inclusion of binary modules within the Linux kernel. Such inclusion, the FSF and others argueed, would immediately make those binary modules derivative works of the GPL and therefore fall under the GPL license.

"Viewed strictly from the perspective of copyright law, that analysis has some force, and one of the more persuasive pieces of evidence cited to support the argument was that a LKM includes literal copies of code from header files--just like Bionic does--such that it was a derivative work under the law," Naughton wrote.

Wow, so the FSF has used kernel header files as a point to prove GPL violation before? No, not exactly.

It's helpful that Naughton so readily provides links to his cited material, since his inference was a bit unclear. The analysis he cites is a whitepaper from 2006, well after the question of LKMs was resolved (at least, in the kernel developer's minds) published by Wasabi Systems, Inc. Wasabi, as you may recall, makes embedded storage systems that rely on embedded BSD. Wasabi has published more than one whitepaper that boosted BSD at the expense of Linux. This one from 2003, "BSD or Linux: Which Unix is best for embedded applications?" pretty much sums up how Wasabi feels about Linux, so it's a little hard to treat their comments about Linux and the GPL as neutral.

But hey, let's join Naughton in his so-called role as neutral observer and go with Wasabi's analysis as solid legal opinion, shall we? In the 2006 whitepaper referenced by Naughton, it does indeed point out the inclusion of Linux kernel header files within binary modules as proof that binary modules are derived works:

"The inclusion of one or more of these header files, which are distributed as a part of the GPL'd Linux distribution, within one's own LKM, arguably makes an open and shut case that the module contains verbatim copying of GPL'd subject matter, and is, hence, an infringement of the author's rights unless made under the authority of a license."

Boy, if only that argument had been made by a judge instead of a known Linux competitor. That would be compelling, wouldn't it? But alas, it wasn't. And even Wasabi's authors had to admit that there might be an exception to their theory:

"It is possible that an exception to this argument exists under copyright law. Copyright law has a blanket exclusion on the copyrighting of facts and the useful aspects of a work, protecting only the creative expression that augments the utilitarian part of a work. The question is whether header files are sufficiently creative and non-factual to warrant copyright protection."

So this begs the question: if quotes in blogs don't provide legal certainty for businesses, how about quotes from position papers made by competing businesses?

Naughton does make one reasonable argument: even if there is no GPL violation claimed now, it may not matter because people can change their minds. Businesses who work with on Android cannot depend on Bionic not being found in violation because someone could change their mind and sue Google.

This is absolutely true. It is also similarly true that developers may always feel that header files fall into the noncopyright category and will never sue Google. Naughton doesn't know for sure, and neither does anyone else. It would be great if there could be legal clarification on this issue, and on that I think we would all agree. Of course, Naughton then overplays this point by citing cases where GPL violation has been enforced (BusyBox) and trying to cite an instance where the free software community changed its mind by bringing up the problems with TiVo.

"TiVo was at first acclaimed by open source proponents because it brought Linux to widely popular consumer devices, but then the climate changed. The FSF said TiVo had only 'complied with GPL 2 by the skin of its teeth,' and 'Tivoization' was declared one of the great evils that GPLv3 was intended to address."

1 2 Page
Insider: How the basic tech behind the Internet works
Join the discussion
Be the first to comment on this article. Our Commenting Policies