Slashdot Log In
Kororaa Accused of Violating GPL
Posted by
Zonk
on Sun May 14, 2006 05:19 PM
from the penguin-is-confused dept.
from the penguin-is-confused dept.
AlanS2002 writes "The Kororaa Project, a pre-configured binary install method for Gentoo Linux which bundles nVidia's and ATI binary drivers in its Kororaa Xgl Live CD , has put its Live CD on hold after being accused of violating the GPL. The issue appears to be the distribution of the Linux Kernel and nVidia's/ATI binary drivers together. When the binary drivers are built the GPL'ed code is included in the binary result, which is a violation."
Related Stories
[+]
Slashback: Kororaa GPL, ICANN .XXX, BellSouth NSA 216 comments
Slashback tonight brings some corrections, clarifications, and updates to previous Slashdot stories including an update to the Kororaa GPL accusations, BellSouth demands a retraction to NSA story, South Korea rejects Microsft antitrust appeal, Tim Berners Lee continues net neutrality fight, ICANN possibly pressured to nix .XXX domain, another side to Vista Beta2 reviews, and the worst tech IPO in 2 years -- Read on for details.
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Yep. (Score:4, Insightful)
One man's "useful" is another man's "treacherous. (Score:5, Insightful)
The GPL is designed to prohibit this for a reason, and it's not because the FSF people enjoy making people's lives difficult, it's to keep Linux and the kernel from becoming dependent on proprietary binary lumps. If you want to taint your kernel by adding proprietary modules, more power to you, but you can't redistribute the result. Every user has to add the tainted bits in themselves.
If every distro could just use the nvidia binary drivers, maybe the people working on the free "nv" driver just wouldn't bother. And then one day nvidia decides (because they suddenly become evil / get bought by Microsoft / whatever) to pull the rug out and cease development of the drivers. A few well-placed cancelled projects could set an operating system years behind the competition.
The GPL attempts to ensure that a basic Linux system is at least functional without proprietary add-ons, so that it can't become the hostage of someone who controls a lump of code that everyone has gotten used to depending on.
Parent
Re:One man's "useful" is another man's "treacherou (Score:5, Insightful)
What if I distribute the kernel with instructions on how to add add proprietary module? Would that be OK?
What if I then distrubute the kernel with a helper script that downloads the modules when the user runs it?
What if these modules would reside on the same CD as the kernel, and the script simply copies them from a specific directory instead of copying them from a server?
What if I also include a helper script that automatically installs the modules when the user runs it?
And what if this script is a boot script?
But, oh wait, that sounds an awful lot like what kororaa does already...? Where did I cross the line?
Parent
Re:There's more restricition in BSD (Score:5, Insightful)
No. It is the Nokia license that restricts you. The BSD license does not contain the restriction.
Parent
Whaaa? (Score:4, Insightful)
If anything I would have expected this to be a violation of nVidia and ATI's copyright, distributing their drivers rather than sending people to their respective websites to download.
No other options. (Score:5, Insightful)
Just out of curiosity, who are the non-suckers? The people who bought video hardware from
3Dlabs doesn't make GPUs anymore, 3dfx got bought by NVidia, and XGI is gone. That leaves ATI, NVidia, Matrox, and Intel making GPUs. Does Matrox or Intel release source code to their drivers? (Is Matrox even still in the consumer graphics card business?) Who else is there? ATI and NVidia basically have the market for aftermarket cards cornered, to the best of my knowledge, and in both cases their drivers are closed-source. There really aren't any other options for most people.
Personally I'd say go with NVidia, because they seem markedly less evil and their binary drivers seem to suck less, but that doesn't mean I'm happy about it.
Parent
burninating some karma... (Score:5, Insightful)
OK, I've got karma to burn.
I just happen to enjoy playing Doom3 and UT 2004. What card other than an ATI or Nvidia is going to pull that off and has open source drivers?
Actually, I use Nvidia's binary driver. :P
I was just waiting for one of you open source utopians to express the "closed source games are evil" opinion. Let's face it, while there have been some good open source games released, 99% of the games in the world are closed source, and some of them I have deemed are worth my time and money spent. The game industry wouldn't truly exist without the profit motive, and in general they see the need to keep things closed to ensure that.
Games don't need to be closed source to make money. That's what you're probably thinking at the moment. The only system that would work that I can think of is if a source CD was included in the same box as the binary CD. Obviously, you couldn't post the source on a publicly accessible server, for people who can would download the source and compile the game - never giving the company one dollar.
Things to keep in mind:
Parent
Re:Whaaa? (Score:5, Insightful)
If OpenWRT is distributing a Linux kernel with closed-source software linked into it, then yes, they are violating the GPL.
and RedHat Enterprise includes lots of Redhat only software that isn't GPL.
As far as I know, RHEL doesn't allow their trademark to be redistributed. That's a very different thing.
Now, if you created your own custom kernel in order to make the binary drivers work, but then didn't include the source code for that, I would agree with you. But they didn't modify the kernel at all. They just compiled kernel modules.
But the kernel modules are based on the Linux kernel. They use hidden magical interfaces. They don't necessarily make the modules GPL (says Linus), but that doesn't mean the resulting linked modules can be redistributed.
If the drivers themselves were "Derived works" then that would prohibit distribution. However, that would also prevent people from using them at all and require ATI and nVidia open sourced the drivers. This is not the case, though. The drivers contain a GPL kernel interface and a binary only driver. The kernel interface that the ATI and nVidia drivers use is the derived work, and is opensource. You can get it in the respective packages from ATI and nVidia's websites.
You're confused. The GPL isn't a usage-license, it's a redistribution license. You're free to download ATI or NVidia's copyrighted work (as they say- that's their distribution) and compile and link them into your kernel. You cannot redistribute your binary modules, or your built kernel with them, because you cannot satisfy the requirement of the GPL that says you need to be able to provide source code for those things.
Parent
What? (Score:5, Insightful)
Just because the kernel can load your module doesn't mean your modules is GPLed. The way I understand the GPL is anything you derive from GPL code must be open source and what not. The drivers are proprietary and just happen to be compatible with GPL code.
You've got the dependency graph wrong (Score:5, Informative)
Well, what nVidia chose to do in this case is to link the shim with their binary driver, and they're perfectly entitled to do that, by their copyright. Furthermore, since the shim and the binary driver are separate components from the kernel, they can certainly be shipped on the same CD as GPL components, as long as the binary code is not linked to the kernel. And it's not.
So you see, by virtue of being the copyright holders of the shim and GPL'ing it, nVidia easily comply with the requirements of the GPL but aren't constrained in what else they do with it.
If the binary module were linked against the kernel then you'd be right, but it's not. At no point in time did the binary module even get a sniff of the kernel, and it's shipped without knowing anything about it, nor viceversa.
Yes, the dependency is contrived, but that's how the GPL forced them to rearrange their code dependency graph in order to stay on the good side of the GPL's guidelines.
Parent
Aggregation is not linking! (Score:5, Insightful)
It's only when the CD is booted and the drivers loaded that a runtime image containing the binary modules linked with the kernel is created, and not before.
Distributing an aggregation is perfectly legit, according to the guidelines for GPL v2. (Dunno about v3).
Re:Aggregation is not linking! (Score:5, Informative)
According to information that the originator of Kororaa received from NVidia while investigating this matter, this is not true.
NVidia states that the binary is the same binary they use in all Systems. Be they Linux, BSD, Windows, or Bob's Unknown Mini-OS. The "shim" is the glue code they write that is OS specific that makes calls into the binary.
Parent
Re:Aggregation is not linking! (Score:4, Informative)
That is not "linking" in the sense that is covered by the GPL. The kernel headers contain declarations for kernel functions, structures, and macros. They don't actually produce any object code that is linked in the binary. The binary driver is produced from two object files, one distributed binary-only by NVIDIA and one compiled from NVIDIA's shim source, which is explicitly allowed to be linked with the binary, and not under the GPL. So no mixture of proprietary and GPL code occurs until runtime, when you actually use the driver, and while that is technically a GPL violation since the kernel runs in a single address space (hence the "tainted kernel" messages) neither NVIDIA nor any distributor is liable for it.
Why do you think that nvidia doesn't precompile their shim code too, when they distribute their kernel module.
They do, actually, or at least they used to (for the default kernels of specific distributions). Its just that the Linux kernel doesn't have a stable binary ABI for drivers, so it is necessary to recompile it for every single different kernel version. If it was up to them they likely wouldn't distribute any code at all, just a binary module, but because of the way Linux is that isn't practical. Other distributions, including even Debian, have also distributed linked binaries of the NVIDIA kernel drivers without trouble.
Parent
It all depends (Score:5, Insightful)
Oh no!!! (Score:4, Insightful)
KILL KILL KILL!!! STOP THEM!!!
Seriously, they put linkable drivers on a CD... That's 100% OK.
Stop trying to stop Linux you Microsoft plant, nice try tho.
I spit (Score:4, Insightful)
This is really not a reasonable thing to expect from a user, not even from a user like me who has been running linux since 0.99pl1.
What a prick (Score:5, Insightful)
The most infuriating thing is how he goes for the puppy angle with this bullshit:
The 'open source spirit of Linux' is that Open Source is supposed to enable people to stop worrying about this licensing crap. If nVidia and ATI aren't complaining, there shouldn't be an issue on our side.And for the most part there isn't. Which is why it's even more sad that he's actually caving to this:
My overall opinion is that this Koraraa guy ought to grow a pair and wait to see what the non-basement-dwelling grownups have to say about his distro's licensing.Re:All the more reason... (Score:5, Insightful)
You are confused. The GPL is designed to keep software big-F Free. The "caveats and 'gotchas'" are very much the point.
Parent
Re:All the more reason... (Score:5, Insightful)
Thus speaks the voice of one who sees widespread adoption of Linux as a goal. Others see the creation of a free operating system as the goal instead. The two aren't mutually exclusive, but nor do they go hand in hand. I would rather see Linux remain a niche OS than sacrifice my principles to chase market share. Of course, I'd like to see Linux gain widespread adoption as well. But if it came to a choice between the two, I'll stick with what I believe to be right.
Parent
Re:It wouldn't be Linux anymore. (Score:5, Insightful)
What would really be nirvana would be for an entire community of willing volunteers to write their driver for free, which could happen if the vendor would just release some damn specs! Then the support cost wouldn't just be lower, it would be zero because the community would be supporting itself!
Besides, "trade secrets" are not necessary for a hardware company to succeed anyway. Look at all the hardware that does have Free drivers: CPUs, mass storage devices, sound cards, network cards, etc. Those don't have any "trade secrets" that prevent drivers from being written, and there is absolutely no reason for video cards (and wireless chips) to be any different!
Parent
Why not wait to see if this is an issue? (Score:5, Interesting)
So far, an un-identified person sent an email to someone distributing a Live CD making certain claims.
As far as I can see, no one has said whether that person has any code of his/her own in that Linux distribution. Nor has anyone who would be able to say one way or the other been quoted.
Personally, I'd wait until Linus or ATI said that this was wrong before going off on how evil the GPL is.
Parent
Re:tainted kernel (Score:5, Informative)
So don't autoload the drivers and the kernel will not load with a tainted status.
Tom
Parent
Re:tainted kernel (Score:5, Informative)
So don't autoload the drivers and the kernel will not load with a tainted status.
That doesn't make any difference.
Copyright law prohibits the creation of derived works without permission, and the GPL does not grant that permission unless you distribute source. So the question boils down to "Are the binary-only modules derivative works under the law?".
The answer is: yes and no. The modules come from ATI and NVidia in two parts: a binary-only part that contains all of the interesting code, and some "glue code" that is distributed in source. Both parts have liberal redistribution permissions, which makes the GPL happy, so the big issue is source.
The argument is that the core, binary-only components of their drivers are not derived works of Linux, since they contain no Linux code (not even any headers) and I think they even claim that the same binaries are used on other platforms and wasn't developed specifically for Linux, at least in the beginning. The glue code that they distribute that wraps the binary-only component is clearly a derived work of Linux, but they distribute the source to that.
When a user compiles the glue code and links it with the binary-only component to produce a kernel module, the result is a derived work of the GPL'd Linux kernel. Note that I didn't say "and loads it into a running kernel". That's not really relevant. Technically, it's somewhat unclear whether the GPL gives users the right to create otherwise unauthorized derived works, but the general interpretation (including by the FSF) is that people can do whatever they like, and it's only when they start distributing that the question of whether or not the GPL has granted them permission becomes important.
When someone takes that same compiled glue plus binary module and distributes them, they're distributing a derived work of Linux, without complying with the terms of the GPL, and therefore without permission to distribute under copyright law.
I think it's quite clear that Kororaa cannot do this without infringing Linux copyrights. The only way they can justify it is if they can argue that the binary kernel modules (glue + core binaries) are not, under the law, derived works of Linux. That seems like a tough one, but IANAL, so maybe it's possible.
Parent
Re:tainted kernel (Score:5, Insightful)
Parent
A counter-argument (Score:5, Informative)
Furthermore, installing drivers for your ethernet, cd drive, etc is very simple on linux, because the drivers are open source and in kernel. Attempting to maintain a glue between the kernel and your driver is painful and prone to failure; unlike in tree drivers, when someone else breaks code you depended on, you have to fix it, not them. Recall that nvidia's nforce2 boards are better supported in the kernel than by nVidia itself! With no documents to support them in their efforts, even. I hear they even now recommend the reverse engineered driver over their own, but don't distribute or improve, oddly. If nvidia's drivers were GPL'd, installing them would be as simple as installing anything else.
It's pretty naive to think that their IP is so valuable that the source code would disclose it any more than the underlying binary code does. Their IP is already in jeopardy by distributing the software. One of the many reasons I suspect they have no intention of participating in OSS is that there's a number of speed over quality decisions written into it that would be exposed, perhaps even application specific optimizations. While this could be neat to have optimized drivers on a per game basis, this is never disclosed to the public (and when revealed sparks not applause but public humiliation). Furthermore, it means that optimizations are done on their terms, not the public's. Any application specific optimizations are given only to a specific application, with no cross over improvement in other applications, or the ability to make the change. If NVIDIA really wanted to share their drivers with the public and gain all the benefits often touted, they'd stop pointing at other people's IP they own and begin to change it. They haven't, and they won't. What nefarious secrets lie within? Perhaps just a case of "this stuff is really hard, and we don't do it very well?"
Just a thought -- if you dislike the open source spirit as embodied by the GPL, why not do something productive about it, like make a liveCD based on BSD running Xgl. There's nvidia drivers for BSD too, ya know. And for all the talk about pressuring vendors to open their code, they have no qualms about giving it away reguardless with no expectation of anything in return. Linux needs to focus on being Linux, not beating Redmond.
The good news is that I suspect the person who wrote to Kororaa doesn't actually have any basis for the claim. While nvidia's legality has been on shady grounds, the message published doesn't provide any insightful evidence in either direction. Anyone seriously familiar with the kernel and binary objects should be familiar with the recurring arguments and whatnot. It's clear to me that if the drivers themselves were in violation, nvidia would have been sued some time ago.
Parent