4 ms·
Google copied 2.5 megabytes of code from more than 700 Linux kernel header files with a homemade program that drops source code comments and some other elements
by sjs382 16y ago
Google copied 2.5 megabytes of code from more than 700 Linux kernel header files with a homemade program that drops source code comments and some other elements, and daringly claims (in a notice at the start of each generated file) that the extracted material constitutes "no copyrightable information".
Uh, what?
If Google is proven wrong, pretty much that entire software stack -- and also many popular third-party closed-source components such as the Angry Birds game and the Adobe Flash Player -- would actually have to be published under the GPL.
Stopped reading after this...
- anon1385 16y agoIf you link to GPL libraries you must abide by the terms of the GPL. The same applies to using the kernel header files. Or at least Torvalds believes this to be the case, as do the IP lawyers quoted[1]. Quote from Linus: "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?" The solution seems to be to re-licence Bionic under the LGPL, which is what the C libraries of every other linux based OS do. Although that does seem to suggest that one can always work around the GPL linking restriction by creating an intermediate LGPL library, but I'm no lawyer so maybe there is some reason that is not allowed. [1] http://www.brownrudnick.com/nr/pdf/alerts/Brown%20Rudnick%20Advisory%20The%20Bionic%20Library-Did%20Google%20Work%20Around%20The%20GPL.pdf http://www.brownrudnick.com/nr/pdf/alerts/Brown%20Rudnick%20...
- FlorianMueller 16y agoI agree that linking to GPL libraries has GPL implications. Concerning a relicensing of Bionic under the LGPL, it's important to consider that only the original copyright holders can simply relicense (like MySQL, which granted non-GPL licenses to its database). The safe way would be for Google to use glibc, like MeeGo and webOS do.
- colanderman 16y ago> The solution seems to be to re-licence Bionic under the LGPL, which is what the C libraries of every other linux based OS do. Although that does seem to suggest that one can always work around the GPL linking restriction by creating an intermediate LGPL library, but I'm no lawyer so maybe there is some reason that is not allowed. Seeing as this is exactly what GNU's very own libc does, I don't see how it could not be allowed.
- FlorianMueller 16y agoglibc contains Linux kernel header code that the maintainers of the Linux kernel add to it. They can do so because contributors to Linux know that this happens and accept it. But third parties can't just take such code and put it under other licenses.
- colanderman 16y agoThis is interesting. I wonder about simply using generic POSIX headers. I realize this would be utterly complicated (knowing C's idea of "modularity"), but I suspect it could sidestep copyright issues?
- cabalamat 16y agoI'm sure that Linus does not think that programs that run on the Linux kernel should have to be GPL'd. I doubt if Angry Birds or Flash use kernel header files -- they call the kernel, yes, but as userspace programs not as part of the kernel.
- FlorianMueller 16y agoLinus Torvalds says that "normal system calls" are allowed, but once you use the original kernel headers, you're subject to the GPL: http://lkml.org/lkml/2003/12/5/13 http://lkml.org/lkml/2003/12/5/13 The way to avoid this is to use glibc.
- Tibbes 16y agoIn relation to Android and Bionic, I think the following message from the same thread is more relevant: http://lkml.org/lkml/2003/12/5/162 http://lkml.org/lkml/2003/12/5/162 (in general, the thread was about kernel modules - this message explicitly mentions user-space)
- cube13 16y agoLinus is saying that programs that use the Linux kernel HEADERS need to be under the GPL or LGPL. If you're using system calls(and associated headers), you're fine with any license, but using kernel headers to directly access kernel calls in non-GPL code is not allowed. Most non-GPL userspace programs use glibc, which is LGPL(and therefore can be linked by any license). If Google copied the headers verbatim, then created a non-GPL licensed wrapper around those headers, that is a GPL violation.
- rickmb 16y agoI almost stopped reading after this, because I agree it sounds like FUD, but I urge you and everyone who upvoted this to actually read the whole article. He actually makes a pretty decent case for this.