TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Google's Android faces a serious Linux copyright issue

58 点作者 FlorianMueller大约 14 年前

18 条评论

sjs382大约 14 年前
<i>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".</i><p>Uh, what?<p><i>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.</i><p>Stopped reading after this...
评论 #2336500 未加载
评论 #2336929 未加载
jmillikin大约 14 年前
Oy, this guy <i>again</i>? For those unaware, Florian Mueller has made a mini-career of spreading anti-FOSS and anti-Android propaganda.<p><pre><code> &#62; Google copied 2.5 megabytes of code from more than 700 &#62; Linux kernel header files with a homemade program that &#62; drops source code comments and some other elements, and &#62; daringly claims (in a notice at the start of each &#62; generated file) that the extracted material constitutes &#62; "no copyrightable information". </code></pre> In the US, APIs are typically considered mere specifications, and cannot be copyrighted. You can copyright a particular encoding of an API (eg, a C .h file), but the API <i>itself</i> can be used by anyone. If APIs could be copyrighted, projects like Wine and Mono would be illegal.<p>Whether Google's libraries are considered derived works will depend on how the tool works. If it just regexes out all the comments, then the result is probably a derivative work. If it parses the headers and then outputs the API information, the output is probably not a derived work.<p><pre><code> &#62; The GPL's copyleft nature requires all derivative works &#62; of a GPL'd program to be made available on the same &#62; terms. </code></pre> Wrong; the GPL requires any derivative works to be under a <i>compatible</i> license. If I copy GPL-licensed code into my BSD-licensed library, none of my code has to be relicensed.<p><pre><code> &#62; If Google is proven wrong, pretty much that entire &#62; software stack -- and also many popular third-party &#62; closed-source components such as the Angry Birds game &#62; and the Adobe Flash Player -- would actually have to be &#62; published under the GPL. </code></pre> Completely and egregiously wrong. Unless these programs are actually copying parts of the kernel into their source, they are not derived works.<p>Come on, this is software copyright 101. Copyright doesn't propagate from a library to its clients; otherwise, every Windows application is infringing Microsoft's copyrights, every iOS app is infringing Apple's, etc.<p><pre><code> &#62; The only realistic way to fix the problem: replace &#62; Bionic with glibc </code></pre> How would this help? According to the author's reasoning, glibc is also an illegal derivative work of the Linux kernel. Any application which infringes if it uses Bionic will also infringe if linked against glibc.<p>The rest of the post is a bunch of doomsday scenarios, all built on the incorrect assumption that running proprietary software on a Free kernel/libc is illegal.
评论 #2337102 未加载
评论 #2337165 未加载
评论 #2337122 未加载
评论 #2337204 未加载
评论 #2337461 未加载
rst大约 14 年前
Odd that he doesn't explicitly mention the legal basis for Google's claim that this stuff is non-copyrightable. Which is this:<p>Copyright protects the expression of an idea, not the idea itself. So, the courts have held, if you don't have any choice over how to express something, it isn't subject to copyright protection. In particular, if a particular mapping from names to magic numbers is necessary in order for standard-conformant programs to operate at all (as in the mappings specified by &#60;errno.h&#62; and &#60;signal.h&#62;, which came up in the SCO litigation), that stuff isn't copyrightable.<p>So, Google's saying, they've written tooling to explicitly drop all the expressive elements, leaving the bare, functional, non-copyrightable bones --- which they don't need legal permission to use, from Linus or anyone else.<p>This is, I guess, why Mueller thinks it's a big deal that the processed files still include inline functions --- if there's another way to write the function which does the same thing, then there is an expressive choice in writing it, which would be subject to copyright protection.<p>But if userland code has no reason to want to run particular inline functions in kernel header files, then Google has an easy remedy: just ditch 'em --- or rewrite the few that matter, and ditch the rest.<p>So, this really doesn't look like a big deal...
评论 #2337506 未加载
haberman大约 14 年前
The Linux kernel <i>specifically</i> allows programs to make system calls into the kernel without being GPL. From <a href="http://lxr.linux.no/linux+v2.6.38/COPYING" rel="nofollow">http://lxr.linux.no/linux+v2.6.38/COPYING</a><p><pre><code> 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. </code></pre> The Linus quote on the other hand, pertains to <i>binary modules</i> -- ie. binaries that are linked into kernel-space and use <i>non-system-call</i> APIs.<p>Since user programs are specifically exempt from being GPL'd, I cannot see how you could possibly make the argument that Angry Birds is somehow affected, unless it is being linked in as a kernel module.<p>What is in these headers? If it is just definitions that are required for making system calls, I would expect that all of this falls under the exception above.
mycroftiv大约 14 年前
I think the part of the article everyone should make sure to focus on is that Google is doing exactly what Linus says is impermissible. "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?" - Linus Torvalds quote, taken from the linked article
评论 #2337233 未加载
评论 #2337254 未加载
评论 #2337142 未加载
jcl大约 14 年前
As I understand it, Google is using the header files only to extract "structure declarations, constants, etc." -- i.e. to get the interface right, not to link to kernel source. The question is whether or not this is a copyright violation... If not, then the GPL has no power.<p>Note that it's possible to use a copyrighted source to reverse-engineer an interface and not have it be a copyright violation: <a href="http://en.wikipedia.org/wiki/Clean_room_design#Case_law" rel="nofollow">http://en.wikipedia.org/wiki/Clean_room_design#Case_law</a><p>I'm hoping this is a lot of fuss over nothing, as there will no doubt be cases in the future where people want to create open-source drop-in replacements for proprietary systems, and if it is ruled that extracting information from header files makes a derivative work, it will be very difficult for them to get the interface right.
ajju大约 14 年前
It's hard to take the author's claims of infringement seriously because of his laughable claim that third party applications such as Angry Birds running on top of Android would have to be open sourced under GPL if actual infringement is found in Android.
评论 #2336629 未加载
dminor大约 14 年前
How not to get snookered by claims of "proof" of copyright infringement: <a href="http://www.groklaw.net/article.php?story=20110122054409107" rel="nofollow">http://www.groklaw.net/article.php?story=20110122054409107</a>
评论 #2336510 未加载
jrockway大约 14 年前
I think the issue is whether or not header files are copyrightable. In verbatim form, they are, but it's easy to recreate identical header files without copying the source code: have someone read the header file, write a list of functions and signatures, use this spec to write an identical header. Google wrote a program to do this.<p>I am fine with the outcome either way. If everything on Linux has to be GPL'd, excellent: more freedom for everyone. If Google's stuff is OK: that makes sense too, because the OS's copyright shouldn't infect its apps'... apps have to use an OS.<p>I love not having a pony in the race.
评论 #2336741 未加载
Sandman大约 14 年前
Oh my, oh my, oh my...<p><i>Developers of applications using Bionic would only be able to charge (via the Android Market) those customers who don't know what rights they have under the GPL. All others would find ways to download and install those apps on GPL terms, i.e., free of charge.</i><p>Mr. Mueller doesn't seem to understand that if something is released under GPL that <i>does not</i> make it automatically free of charge. Just because most GPL software is free of charge, that does not mean that you can't charge for your software if you release it as GPL.<p>Another common misconception is that if your code is under GPL, you have to give the source code to just about anybody who wants to see it for free. No. Wrong. Only people who have the license for your software can get the source code, they have this right because it is granted to them by the GPL. And if you want to, you can certainly charge for use of this license.<p>So there is nothing stopping you from releasing your software as GPL, charging for it, and giving the source code to those interested parties that payed for the license to use your software.
评论 #2336976 未加载
tzs大约 14 年前
A couple quick points about copyright and header files.<p>1. It is well established in US copyright law that elements necessary to interoperate with something aren't copyrightable. So, for instance, the function signatures and probably function names (if names are necessary in order to make the call) of an interface would not be copyrightable. Same for structures used in the interface.<p>This has been fairly extensively litigated. It arises when you have, for instance, someone trying to make an unauthorized third party game for a video game system, or someone trying to write a plug-in for someone else's closed program.<p>2. Header files often contain more than just the bare elements necessary to interface to something. They often contain macros that expand to code, comments, maybe even implementations of small inline functions. There is plenty in header files that can be copyrighted.<p>So, depending exactly on how Google produced its header files, they may be in the clear or they may have made a big mistake.
评论 #2337519 未加载
JulianMorrison大约 14 年前
So wait, the grumble is that they extracted function signatures from a header file? What a non-event.
comex大约 14 年前
I don't get it. The LGPL lets you promote to the GPL, but the GPL does not give any special status to the LGPL; it doesn't even mention it outside of the preamble. Why is going through a LGPL library any different than going through a BSD one?
tzs大约 14 年前
I am at a complete loss as to why no one like Google, or a consortium of smaller embedded system developers or users, have not made a BSD based system available as an alternative to Linux based systems.<p>Linux has some desktop advantages in terms of package management and perhaps consumer hardware support, but none of these matter to someone seeking an OS for a phone or a TV or a microwave oven and so on.
评论 #2337053 未加载
评论 #2338832 未加载
radu_floricica大约 14 年前
This may or may not be true, but what is fundamentally different from the Oracle suit is that the GPL holders take a very pragmatic view of violations. Release the code as GPL, or stop using it, and you're ok. I never heard of a GPL suit involving damages... not even sure it's possible.<p>Oracle on the other hand wants either to hurt Android, or a (preferably large) piece of the pie.
评论 #2336807 未加载
CoffeeDregs大约 14 年前
Interesting... Assuming the article is correct in that Google's tool says that no copyrighted information is left, it seems that Google is saying that header files stripped of all of english/whatever-language text and left with only pure code are not copyright-able because it's just code?
评论 #2337507 未加载
评论 #2337184 未加载
评论 #2336891 未加载
nextparadigms大约 14 年前
This is what you get when lawyers try to understand developer stuff. Plus, it sounds like more FUD to me.
评论 #2336575 未加载
himmele大约 14 年前
would it be possible to relicense the output of google's tools (the rewritten kernel header files) to LGPL with the permission of the kernel developers (just like glibc or uclibc do) and build a separate library out of this? This library would consist mainly of header files. And this library can then be linked against the rest of bionic whereat bionic could keep its current license. Would this be ok?