Does Android Have a Linux Copyright Problem?
An anonymous reader writes "TheRegister says Google's attempt to purge copyright from header files has put mobile developers at risk of being forced to reveal their own source code, according to legal experts. This time it's not patents or Android's reinterpretation of Java that's causing problems, but the Linux code that compiles down into Android itself. The discussion started with a Huffington Post article by IP lawyer Edward Naughton, who has serious doubts about Google's approach to the Linux kernel header files. He in turn links to copyright law professor Ray Nimmer's blog post on disclosure risks on copyleft platforms. And IP blogger Florian Mueller believes Google faces a serious Linux copyright issue."
No real risks, just header files which are not even copyrightable and things explicitly permitted by the lesser (lib) GPL licence anyway, noting to read here just Florian Mueller posting as anonymous for the FUD...
From TFA:
Google took a novel and quite aggressive approach to developing a key component of Android -- the Bionic Library. That library, a type of C Library, is used by all application developers who need to access the core functions of the Linux operating system. Google essentially copied hundreds of files of Linux code that were never meant to be used as is by application developers, "cleaned" those files using a non-standard and questionable technical process, and then declared that the code was no longer subject to the GPLv2
That "technical process" looks like it refers to an automated filter that it ran the standard Linux header files through, resulting in part of the API for the non-GPL Bionic Library used in application development. One reading of copyright law could determine that the Bionic Library is a direct derivative of the Linux Kernel and therefore must be GPLv2 and open source. This library is essential for Android application development, therefore it would become legally impossible to develop a closed-source Android app.
Personally, my reading of GPLv2 tells me that simply including GPLv2 header files does not mean that your application must also be GPLv2 (otherwise a large part of the embedded market simply wouldn't exist). So I'm marking this one down as FUD.
6th Street Radio @ddombrowsky
This won't play into a goddamn thing. It's headers. read the first post. Headers are not copyrighted. This seems to be about as blatant a lack of comprehension you can get.
[Ray] Nimmer is the real deal. He wrote the definitive treatise on copyright law.
You're thinking of David Nimmer. Ray Nimmer has lots of credentials too, but he's a different guy.
Parity: What to do when the weekend comes.
Well, from the last article linked from the summary:
Now, I have no idea if Linus making this assertion is a fully valid legal opinion, but he's sure as hell under the impression that they're certainly copyrighted.
And, the second link in the summary says:
So, I'm not entirely convinced that your assertion that the header files aren't copyrighted is actually true.
Most of these articles seem to be saying that this quite likely is a violation of copyright.
Lost at C:>. Found at C.
Well you're obviously not a copyright genius, otherwise you'd know that header files usually only contain structural information about functions that doesn't contain the level of creativity required to clear the threshold for copyright protection.
Ah. Concise. To-the-point. Quite possibly completely wrong.
Read and learn.
Actual practitioners of the law, people who don't have to say "IANAL" like you obviously should have, say that the answer is unsettled. There is precedent that header files, in general, may be copyrightable. Header files that express APIs, perhaps less so, because the API itself is not copyrightable. (But again, the idea of a big white whale and and obsessive whaler hunting each other isn't copyrighted, but I'm pretty sure Moby Dick certainly was.
But let me put your central assertion to the most obvious test. I write the Great American Novel. It's an awesome novel. It's breathtaking, ground-breaking, and lots of other "aking" things. But I'm eccentric. So I write it entirely as a C++ comment block, and in a file called "GreatAmericanNovel.hpp".
Why isn't it copyrighted, again?
Welcome to the Panopticon. Used to be a prison, now it's your home.
Header files implement an interface. That interface is a fact, not subject to copyright.
The fact "strcpy takes as arguments two character pointers, and returns a character pointer", is not copyrightable. This does not change if I express it in C as "char *strcpy(char *d, const char *s);"
A minimal C or C++ header file is just a collection of such facts.
The point Nimmer, an acknowledged authority on IP law, makes is that when you aggregate such "facts" the resultant text, essentially becomes an expressive description of how a whole system works, and therefore is copyrightable. Otherwise one could argue that each individual word in a book is such a "fact," and that copying a book is just copying a series of facts and therefore not a copyright violation.
Whether a work is copyrightable is a matter of examining the whole work in the context of its use, not just determining that individual lines are not copyrightable and concluding that the whole work is therefore not copyrightable.
So no, it is not yet a settled matter of law that header files are not copyrightable.
If the rest of "GreatAmericanNovel.hpp" describes an API and the comments are stripped, what creative work is left?
Analogies don't equal equalities, they are merely somewhat analogous.
OK, I am one of the IANAL guys spouting off about headers not being protected by copyright but you definitely raise a good point. So lets assume there are many comments in the header files in Linux, some useful, some funny, some coming close to the greatest written piece ever. I'll grant that those elements in the file are subject to copyright.
Now, back to your example, if the only thing in your header file is the comment itself which contains this fabulous piece of writing and the fact that you completed it on 3/18/2011* and I strip it out the writing, leaving only the date completed (a fact), is the header file still subject to copyright protection?
The point I'm trying to make is that Google claims (right or wrong, I don't know, I have not seen the files) that they stripped out everything but the sections of the header that describe the interface into the Linux kernel. Linux on the other hand copied some of this data from BSD and ATT SYSV header files claiming all along that this was needed for interoperability. A court of law held that IBM could do the same thing with regards to Linux and SCO could not claim protection over those files. I agreed with that then and I agree with it now; assuming Google did a thorough job of scrubbing anything out of the files that was worthy of copyright protection.
* Happy Saint Patrick's Day everyone!
Creationist Textbook Stickers Declared Unconstitutional by CowboyNeal
Because of an addendum Torvalds added to the GPL v2 as it applies to the Linux kernel. I couldn't find it quickly on Google
You can find it in the COPYING file at the top level of the Linux kernel source tree:
which is followed by the text of the GPLv2.
Read the RATIONALE section at the bottom.
After you've read it, if you still have a problem, to put this into perspective ... let's take a proprietary platform, Windows. There is nothing to prevent me
from creating a set of optimized headers that wrap around the windows api,
leaving out unnecessary parameters, constants, and code definitions that will
conflict with my userland application code, and defining new
"convienence" methods, functions, classes and structures.
If I then use the "cleaned up" headers to create an application, that application is no less my work because I used the "cleaned up" version as opposed to the original kernel source.
Proprietary applications can use these "cleaned up" header files without falling afoul of the GPL, the same as if they had used the original headers. Otherwise, the "binary blob" device driver problem would clearly not exist.
From the GPL v2:
An application distributed separately, just like a driver distributed separately, is not "derived" from the kernel source.
It's a tricky balance. The kernel is gpl, and the code is available, including the "cleaned up headers" code, as per the gpl.
Just remember, an application that calls kernel functions is not "derived from" the kernel any more than an application that calls the windows api is "derived from" windows.
I believe this is just more FUD on the part of certain parties ... ask yourself
"cui bono", then follow the money to the usual suspects.
Google's attitude seems to be that copyright is merely a hassle, an obstacle to be routed around. Even if they are not found to be legally in violation of the GPL, they obviously Bionic with the deliberate intent of routing around it.
If you read the rationale section of Bionic README.TXT it doesn't seem that Google's trying to claim these new headers are re-licensed. They're simply providing an (automatic) way to create cleaned headers that won't cause compilation errors due to a variety of reasons that the original headers can/will cause them. While I'm not a copyright expert, this doesn't sound anything like what these guys are claiming Google's doing.
Also, I've never heard of anyone having to release their source code because they used header files from Linux. You kinda have to use them to compile, and there's plenty of non-GPL software that compiles and runs on Linux that hasn't been forced to release its source code.
In other words, they're complying with the GPL by including the scripts necessary to generate the code. Florian Mueller is a liar and enemy of open source, has been for years. This is the guy who went around saying open source destroys value.