Slashdot Mirror


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."

16 of 292 comments (clear)

  1. NO... by Anonymous Coward · · Score: 4, Insightful

    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...

    1. Re:NO... by poetmatt · · Score: 4, Insightful

      yup. The real question is "Does Florian Mueller have a open source problem?" and the answer is yes.

  2. the core of the issue by davek · · Score: 4, Insightful

    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
    1. Re:the core of the issue by mmurphy000 · · Score: 4, Interesting

      This library is essential for Android application development, therefore it would become legally impossible to develop a closed-source Android app.

      By that argument, it would be legally impossible to develop a closed-source Linux app. Yet there are many closed-source Linux apps. Do not confuse "linking with a GPLv2 library" and "writing for an OS that contains GPLv2 libraries".

  3. Re:What the heck? by poetmatt · · Score: 4, Informative

    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.

  4. Re:This isn't random conjecture by the ill-informe by starfishsystems · · Score: 4, Informative

    [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.
  5. Re:What the heck? by gstoddart · · Score: 4, Interesting

    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.

    Well, from the last article linked from the summary:

    Linus Torvalds himself has clearly rejected the idea of using the original Linux kernel headers in programs that aren't licensed under the GPL. In a posting to the official Linux kernel mailing list, he made the following unequivocal statements:

            "In short: you do _NOT_ have the right to use a kernel header file (or any other part of the kernel sources), unless that use results in a GPL'd program."

            "So you can run the kernel and create non-GPL'd programs [...]
            BUT YOU CAN NOT USE THE KERNEL HEADER FILES TO CREATE NON-GPL'D BINARIES.
            Comprende?"

    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:

    Recently, Ray Nimmer, a well-known copyright law professor, observed that there could also be a problem with the way Google used some key Linux software code, called kernel header files, to create a vitally important element of Android. In fact, the way that Google used these files creates a legal quandary for manufacturers of Android devices and many developers writing code and applications for those devices.

    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.
  6. Re:Copyright is complex by Anonymous Coward · · Score: 5, Insightful

    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.

  7. Re:What the heck? by idontgno · · Score: 4, Insightful

    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.
  8. Re:What the heck? by Raffaello · · Score: 4, Insightful

    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.

  9. Re:What the heck? by arose · · Score: 4, Insightful

    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.
  10. Re:What the heck? by just_another_sean · · Score: 4, Interesting

    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
  11. Re:Applications shouldn't be at risk by Guy+Harris · · Score: 4, Informative

    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:

    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.

    Linus Torvalds

    which is followed by the text of the GPLv2.

  12. Florian Mueller, the F/LOSS-hating troll by tomhudson · · Score: 5, Insightful
    While "filing off" copyright notices and comments does not suddenly make code less covered by the GPL, this is not what is being done.

    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:

    identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.

    An application distributed separately, just like a driver distributed separately, is not "derived" from the kernel source.

    Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

    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.

  13. Re:This isn't random conjecture by the ill-informe by Maestro4k · · Score: 4, Informative

    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.

  14. Re:Copyright is complex by tomhudson · · Score: 5, Informative
    These are "cleaned-up header files that you can use with Android, because the original kernel headers are a bit of a mess, as explained here

    Bionic comes with a set of 'clean' Linux kernel headers that can safely be included by userland applications and libraries without fear of hideous conflicts. for more information why this is needed, see the "RATIONALE" section at the end of this document.

    these clean headers are automatically generated by several scripts located in the 'bionic/kernel/tools' directory, which process a set of original and unmodified kernel headers in order to get rid of many annoying declarations and constructs that usually result in compilation failure.

    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.