A review of the driver sources and the use of nm or otool to look at the symbols of the binary portion suggests that the driver is using primarily nVidia's internal APIs and then those for MESA/OpenGL's GLX extension to X11, not Linux specific APIs. Go look for yourself. No, we're talking about the kernel driver here, not the X11 module. This is the stuff that gets installed in/usr/src/nv when you install their package. It contains some source code (everyone seems to be calling this a "shim", I prefer wrapper, whatever) and it contains a 5 meg nv-kernel.o file for which there is no source. The entire thing is distributed under this license. So we can totally ignore the issue of the binary blob, the source code for their shim is not under the GPL and it is intimately linked to, among other things, the PCI portions of the kernel. I honestly do not believe that any court would have trouble deciding that this was a derived work.
The end-user of a system is free to compile that shim to produce a Linux kernel module which can be loaded, but, because the GPL and the nVidia proprietary license conflict, the end-user cannot redistribute the combination, which is a derivative work of both. And if they do, NVIDIA is guilty of contributory copyright violation. They're deliberately thumbing their noses at the kernel developers. No court would fail to see that.
Man, I am so sick of this "but that would cause chaos" argument. I don't care ok? Copyright is wrong. If we have to completely reshape the way our society works to get rid of it, that's a small price to pay for doing the right thing.
They're musicians, who the fuck cares if their grossly inflated incomes are "declining" due to people recognising that a copy from their friend is exactly the same as a copy bought from a record label. At least at a concert you actually get something for the price of admission. "The problem" as you call it, is freedom. Your musician friends don't like it cause without draconian laws that try to turn people against each other, they would actually have to work for a living.
I assumed you were talking about glibc, sorry about that.
1. If you link your code to glibc, you are making a derived work of glibc. 2. If you distribute your source under a restrictive license without linking it to glibc and you only use apis that were documented elsewhere, then you're not distributing a derived work of glibc. 3. If someone then links your source with glibc, they are creating a derived work of glibc, which they may then distribute because glibc is under the LGPL, not the GPL. 4. If, however, you were to use glibc specific apis or extensions to the elsewhere documented apis, then you are making a derived work of glibc. This is the so called "independant programs" test. Does your program require glibc to run or will it run with something else? Requires glibc? It's a derived work of glibc.
So let's talk about GNU readline instead of glibc. It's under the GPL, not the LGPL.
1. If you link your code to GNU readline, you are making a derived work of GNU readline. 2. If you distribute your source under a restrictive license without linking it to readline and you only use apis that were documented elsewhere, then you're not distributing a derived work of readline. Problem is, there's no "elsewhere" for GNU readline. It was invented there. 3. This is moot as you can't legally distribute the source, let alone a binary. 4. And yeah, moot again because your program clearly isn't independant. You could remove the readline specific parts and distribute that under a restrictive license, but that's irrelevant.
So getting back to what we were talking about.. NVIDIA have written a kernel module which contains some source portions and some binary portions. They provide the source portions so the community can maintain their code for them. The whole thing is under a restrictive license. The situation is identical to the readline case. They're using apis that are a part of linux and are documented nowhere but in linux. They didn't exist before linux. They are not co-incidentally compatible with linux. NVIDIA has deliberately set out to create a restricted work that links to GPL code. A blind chipmuck with a pencil in its teeth could win this court case.
"By tidying up a small part of the copyright law, we believe Gowers may well be opening the floodgates to uncontrolled and unstoppable private copying and sharing from person to person, as well as format to format." I've got some bad news for you.
Sigh. This is why the C library is under the LGPL, not the GPL, so people can make proprietary applications for Linux. It's a strategy thing. As for making extensions to Java in the form of jars or class files, the license for Java specifically allows that. Much like the license for the C library specifically allows that. Much like the license for the kernel specifically allows the creation of proprietary software that uses the syscall api to access the kernel. Copyright is really simple ok? You have no rights unless the copyright holder has granted them to you. Sure, there's fair use and such, but that's the exception, not the rule, and no, you're not going to use fair use to get away from being a derivative work.
There's a really simple test. Does nv-kernel.o run without a kernel? No? Then it's a derived work of the kernel. That's the test that courts use. You really think this is the first time anyone has thought about copyright on plugins or modules? According to what you're claiming, Microsoft could write extensions to Java and distribute them seperately with a script to link them in at runtime and Sun couldn't do anything about it. Guess what, they had that court case last year, Sun won.
Ok, for a start, NVIDIA's linux kernel driver is not a derived work of "linux", it's a derived work of drivers/pci/search.c and some other files that are part of the linux kernel. Similarly, NVIDIA's Windows kernel driver is a derived work of Microsoft's driver development kit. The difference is, Microsoft's DDK has a permissive license that disclaims all rights over drivers that link to it. It is strategically useful for Microsoft to do this, because they want lots of binary kernel drivers that are maintained by third parties. Linux is not so permissive. It is licensed under the GPL and derived worked are required to be also licensed under the GPL. This is also a strategic decision, as the kernel developers want lots of source modules maintained in the kernel tree by the kernel developers.
if they use the standard published kernel APIs, Which APIs would those be? The whole point of them writing a wrapper is that there are no standard published APIs. They are #including header files from the kernel. It's clearly a derived work.
Man, what is so hard for people to understand about this? Yes, MS gave Novell some money for a convernate on Novell's patents. Novell also gave MS some money for a convernate on MS's patents. The fact that MS paid more than Novell just means that Novell has more valuable patents.
I don't know what "they" want, but yes, I want NVIDIA to show us the code or go home, as is the social contract of Linux.
Do you really think they want a linux kernel with no 3D hardware accelerated graphics drivers? The Intel 3d accelerated graphics drivers are completely open source. If we managed to get NVIDIA to give up on Linux, all it will mean is that embedded systems developers will use the Intel chipsets instead of the NVIDIA ones.
My guess is that he, like I, does not live in the US and is only informed with your customs by the few times we've visited and the drivel we see on television.
But thanks for being a prick about it. Karma I suppose.
Why are diamonds so expensive? Because they are rare? They sure are, why is that? Oh, cause there's people who control the supply. What caused that recent spike in oil prices? Same thing. Why is software so expensive? Same thing. If the price can float, then the people who control the production can jack up the price. The only thing that stops most producers is competition. This is easily overcome by collusion. Where there is bodies that prohibit that collusion, we see markets. Where those bodies have been corrupted, we see price gouging. When those bodies start to actively sanction or require collusion, we see monopolies. There is no greater requirement for collusion than copyright - a law that requires everyone to maintain artifical scarcity, because everyone is a potential producer of goods that can be copied. By 2040 we may have a machine that can copy physical objects. Will we continue to require active collusion by everyone in society to feed our primitive obsession with scarcity? Or will we throw off these shackles and create heaven on earth?
They don't have to supply a driver for linux, no. That is, unless they want a piece of the embedded linux market, which is the reason why they make these drivers. What? You thought it was to foster games development on Linux?
Forget the binary blob. As you just said, the "thin linker layer" is a derived work. Guess what? It's not licensed under the GPL. Just distributing that is a copyright violation.
Besides who has the money to contract the top-of-the-line lawyer that this would need? The FSF does and, although I can't speak for them, I wouldn't be surprised if they were perfectly happy to let NVIDIA know they won't tolerate this stuff, if only someone would assign their copyright to them.
Seriously though, don't americans only have like $750 limits on their credit cards? And that's if you've been a good customer for ten years with the same financial institution? Unless, of course, you have one of those unlimited american express cards. I had one of those, but the fees are just insane and only half the stores take them as a result.
There's a package, called linux-restricted-modules in the ubuntu repository which contains a whole lot of closed source drivers for Linux. Was a time when the user had to go through 5 steps to install this package. It was a pain. It was ment to be a pain. It was still unlawful, but at least Ubuntu was frowning on the practice. Now they detect your card when you install and silently install this package if they deem you need it. And no, it's not illegal for you to use it. It's unlawful for the person who gave it to you to be distributing it. unlawful == they can get sued.
On the side note, remember BeOS? They got their ass handed to them by Microsoft. Way too many dirty tricks on Microsoft's part. That's why no-one has bothered since.
I just looked at the Linux kernel license, and it's GPL. The GPL covers the kernel source itself, not third-party kernel modules.
kernel modules are derived works of the kernel. As such, they are required to be GPL licensed. This is pretty fundamental stuff to this very complex conversation the rest of us are having.
The debate is over whether or not NVIDIA:
1. are distributing a derived work 2. is bound by the license on the kernel if they are not distributing the kernel 3. is satisfying the terms of the GPL by distributing partial source code to their driver 4. would only be violating copyright if they were distributing binaries with no source code wrapper 5. are guilty of contributory copyright infringement by facilitating others to distribute binaries if 4 were the case
We're all sipping martinis and talking about this stuff, you're still trying to find your shoes and wondering what tie to wear. Come join us when you catch up.
The fact that there are so many proprietary kernel modules is telling. Linux is written by guys who just wanna hack, and yet, still hold onto their own copyright. Be nice if they assigned that copyright to someone who knew what to do with it. Be nice for the users I mean.
Cause, simply, the license on the Linux kernel says that if you write modules for it, those modules must be licensed under the GPL or you can't distribute them. If you don't like it, don't use the Linux kernel.
Oh, and your analogy, stupid as always, thanks for holding up the Slashdot tradition:)
A review of the driver sources and the use of nm or otool to look at the symbols of the binary portion suggests that the driver is using primarily nVidia's internal APIs and then those for MESA/OpenGL's GLX extension to X11, not Linux specific APIs. Go look for yourself. No, we're talking about the kernel driver here, not the X11 module. This is the stuff that gets installed in
Who said anything about dynamic?
Man, I am so sick of this "but that would cause chaos" argument. I don't care ok? Copyright is wrong. If we have to completely reshape the way our society works to get rid of it, that's a small price to pay for doing the right thing.
Umm, you want me to flame you? Ok, fine.
They're musicians, who the fuck cares if their grossly inflated incomes are "declining" due to people recognising that a copy from their friend is exactly the same as a copy bought from a record label. At least at a concert you actually get something for the price of admission. "The problem" as you call it, is freedom. Your musician friends don't like it cause without draconian laws that try to turn people against each other, they would actually have to work for a living.
I assumed you were talking about glibc, sorry about that.
1. If you link your code to glibc, you are making a derived work of glibc.
2. If you distribute your source under a restrictive license without linking it to glibc and you only use apis that were documented elsewhere, then you're not distributing a derived work of glibc.
3. If someone then links your source with glibc, they are creating a derived work of glibc, which they may then distribute because glibc is under the LGPL, not the GPL.
4. If, however, you were to use glibc specific apis or extensions to the elsewhere documented apis, then you are making a derived work of glibc. This is the so called "independant programs" test. Does your program require glibc to run or will it run with something else? Requires glibc? It's a derived work of glibc.
So let's talk about GNU readline instead of glibc. It's under the GPL, not the LGPL.
1. If you link your code to GNU readline, you are making a derived work of GNU readline.
2. If you distribute your source under a restrictive license without linking it to readline and you only use apis that were documented elsewhere, then you're not distributing a derived work of readline. Problem is, there's no "elsewhere" for GNU readline. It was invented there.
3. This is moot as you can't legally distribute the source, let alone a binary.
4. And yeah, moot again because your program clearly isn't independant. You could remove the readline specific parts and distribute that under a restrictive license, but that's irrelevant.
So getting back to what we were talking about.. NVIDIA have written a kernel module which contains some source portions and some binary portions. They provide the source portions so the community can maintain their code for them. The whole thing is under a restrictive license. The situation is identical to the readline case. They're using apis that are a part of linux and are documented nowhere but in linux. They didn't exist before linux. They are not co-incidentally compatible with linux. NVIDIA has deliberately set out to create a restricted work that links to GPL code. A blind chipmuck with a pencil in its teeth could win this court case.
Sigh. This is why the C library is under the LGPL, not the GPL, so people can make proprietary applications for Linux. It's a strategy thing. As for making extensions to Java in the form of jars or class files, the license for Java specifically allows that. Much like the license for the C library specifically allows that. Much like the license for the kernel specifically allows the creation of proprietary software that uses the syscall api to access the kernel. Copyright is really simple ok? You have no rights unless the copyright holder has granted them to you. Sure, there's fair use and such, but that's the exception, not the rule, and no, you're not going to use fair use to get away from being a derivative work.
Does a userland C program which does a "#include " become a derived work of the standard C library?
YES!
That's why the standard C library is under the LGPL, not the GPL.
Jesus, it's like copyright 101 in here.
Or Intel, as they offer full open source 3d accelerated drivers.
There's a really simple test. Does nv-kernel.o run without a kernel? No? Then it's a derived work of the kernel. That's the test that courts use. You really think this is the first time anyone has thought about copyright on plugins or modules? According to what you're claiming, Microsoft could write extensions to Java and distribute them seperately with a script to link them in at runtime and Sun couldn't do anything about it. Guess what, they had that court case last year, Sun won.
Ok, for a start, NVIDIA's linux kernel driver is not a derived work of "linux", it's a derived work of drivers/pci/search.c and some other files that are part of the linux kernel. Similarly, NVIDIA's Windows kernel driver is a derived work of Microsoft's driver development kit. The difference is, Microsoft's DDK has a permissive license that disclaims all rights over drivers that link to it. It is strategically useful for Microsoft to do this, because they want lots of binary kernel drivers that are maintained by third parties. Linux is not so permissive. It is licensed under the GPL and derived worked are required to be also licensed under the GPL. This is also a strategic decision, as the kernel developers want lots of source modules maintained in the kernel tree by the kernel developers.
Man, what is so hard for people to understand about this? Yes, MS gave Novell some money for a convernate on Novell's patents. Novell also gave MS some money for a convernate on MS's patents. The fact that MS paid more than Novell just means that Novell has more valuable patents.
My guess is that he, like I, does not live in the US and is only informed with your customs by the few times we've visited and the drivel we see on television.
But thanks for being a prick about it. Karma I suppose.
Alas, television has lied to me once again.
Why are diamonds so expensive? Because they are rare? They sure are, why is that? Oh, cause there's people who control the supply. What caused that recent spike in oil prices? Same thing. Why is software so expensive? Same thing. If the price can float, then the people who control the production can jack up the price. The only thing that stops most producers is competition. This is easily overcome by collusion. Where there is bodies that prohibit that collusion, we see markets. Where those bodies have been corrupted, we see price gouging. When those bodies start to actively sanction or require collusion, we see monopolies. There is no greater requirement for collusion than copyright - a law that requires everyone to maintain artifical scarcity, because everyone is a potential producer of goods that can be copied. By 2040 we may have a machine that can copy physical objects. Will we continue to require active collusion by everyone in society to feed our primitive obsession with scarcity? Or will we throw off these shackles and create heaven on earth?
They don't have to supply a driver for linux, no. That is, unless they want a piece of the embedded linux market, which is the reason why they make these drivers. What? You thought it was to foster games development on Linux?
Seriously though, don't americans only have like $750 limits on their credit cards? And that's if you've been a good customer for ten years with the same financial institution? Unless, of course, you have one of those unlimited american express cards. I had one of those, but the fees are just insane and only half the stores take them as a result.
They're called punitive damages son.
There's a package, called linux-restricted-modules in the ubuntu repository which contains a whole lot of closed source drivers for Linux. Was a time when the user had to go through 5 steps to install this package. It was a pain. It was ment to be a pain. It was still unlawful, but at least Ubuntu was frowning on the practice. Now they detect your card when you install and silently install this package if they deem you need it. And no, it's not illegal for you to use it. It's unlawful for the person who gave it to you to be distributing it. unlawful == they can get sued.
On the side note, remember BeOS? They got their ass handed to them by Microsoft. Way too many dirty tricks on Microsoft's part. That's why no-one has bothered since.
I just looked at the Linux kernel license, and it's GPL. The GPL covers the kernel source itself, not third-party kernel modules.
kernel modules are derived works of the kernel. As such, they are required to be GPL licensed. This is pretty fundamental stuff to this very complex conversation the rest of us are having.
The debate is over whether or not NVIDIA:
1. are distributing a derived work
2. is bound by the license on the kernel if they are not distributing the kernel
3. is satisfying the terms of the GPL by distributing partial source code to their driver
4. would only be violating copyright if they were distributing binaries with no source code wrapper
5. are guilty of contributory copyright infringement by facilitating others to distribute binaries if 4 were the case
We're all sipping martinis and talking about this stuff, you're still trying to find your shoes and wondering what tie to wear. Come join us when you catch up.
The fact that there are so many proprietary kernel modules is telling. Linux is written by guys who just wanna hack, and yet, still hold onto their own copyright. Be nice if they assigned that copyright to someone who knew what to do with it. Be nice for the users I mean.
Cause, simply, the license on the Linux kernel says that if you write modules for it, those modules must be licensed under the GPL or you can't distribute them. If you don't like it, don't use the Linux kernel.
:)
Oh, and your analogy, stupid as always, thanks for holding up the Slashdot tradition