Alan Cox to NVIDIA: You Can't Use DMA-BUF
DMA-BUF is a recent kernel feature that allows multiple GPUs to quickly copy data into each others' framebuffers. A use case would be the NVIDIA Optimus that pairs a fast GPU with an Intel integrated GPU, where the NVIDIA GPU writes into the Intel framebuffer when it is active. But, NVIDIA won't be able to use this infrastructure because it's GPL. Alan Cox replied on LKML to a request from one of their engineers to mark the API non-GPL: "NAK. This needs at the very least the approval of all rights holders for
the files concerned and all code exposed by this change. Also I'd note if you are trying to do this for the purpose of combining
it with proprietary code then you are still in my view as a (and the view
of many other) rights holder to the kernel likely to be in breach
of the GPL requirements for a derivative work. You may consider that
formal notification of my viewpoint. Your corporate legal team can
explain to you why the fact you are now aware of my view is important to
them."
The rest of the thread is worth a read (a guy from RedHat agrees that this code is GPL and cannot become non-GPL without relicensing from a major subset of graphics system contributors). This has a ripple effect: it means that all of the ARM SoC GPU drivers can't use it either, and it may prevent any proprietary drivers for the proposed DRI version 3.
And, as such, forbidden under copyright laws in, for example, the USA or EU.
The only way to avoid that would be to write your own kernel to ACT like (at an ABI level) the Linux Kernel.
If you do not like this, then please get in touch with your legislative branch and ask them to change the copyright laws.
Seriously. Freedom and GPL are two very, very different things. No matter how much you try to turn and twist it around, freedom never comes with a "but".
add.: captcha is "harmless" - oh, the irony.
Thus, continuing to push Linux into irrelevance. You whine that the Graphics chip maker need to provide better support for Linux, but it's the wrong kind of support.
Us FOSS types are against greedy cheaters using our work for their profit, while not sharing theirs, with the community for non-profit purposes.
If it leads to vendor GPU drivers being developed in the open then I'm in!
Why were you upset again?
-- no sig today
No, this is why it's GOOD, and why many developers, myself included, will not work on non-GPL projects. Without the GPL, they would have taken this code and added it to their proprietary code bases and we'd never have seen future improvements of it. That's not a good thing, ever.
I still have more fans than freaks. WTF is wrong with you people?
Its not an external API like google maps or what not, its an internal kernel interface that video drivers that are running inside the kernel would use.
APIs GPL only? Seriously guys, WHAT THE FUCK?
No, they were asking to include the code - or some derivative of it in their proprietary driver.
If they just wanted to interface the API there would be no need to mark it non-GPL.
Yes. It is a tool, used to coerce big business to give the user information about the product they buy.
There are a few other major operating system vendors out there that would be happy to have you as a customer if you don't like the GPL way.
c++;
Nvidia are the bad guys here, not Alax Cox nor the GPL.
But I'm torn because Nvidia is the only great solution for 3d on Linux right now. So my pragmatic self is screaming "NOOOOOOOOOOOOOOO!"
Intel Ivy Bridge stuff is pretty awesome though, I use it more than the dedicated Nvidia gpu on my Clevo. I'm really hoping the next iteration of Intel GPUs makes dedicated support obsolete but it's just a dream ;).
Mod me down, my New Earth Global Warmingist friends!
Well, I guess that's yet another way to make sure Linux stays niche in desktop use forever.
As AC since I'm sure this will garner much hate, but this is honest speculation with the intent of stoking real discussion:
1. NVIDIA and Intel want to use a new whiz-bang feature in the Linux kernel to bring faster and more feature-rich graphics to Linux. This is a good thing, a very good thing.
2. The current licensing in the kernel makes that impossible unless NVIDIA open sources its IP. Whether this is good is questionable because:
a. It means NVIDIA has to give up a competitive edge OR
b. NVIDIA has to write code and implement hardware in a manner that specifically prevents them from having a competitive edge.
3. NVIDIA's only other option is massive duplication of effort and a fork of the Linux kernel. This is a questionable premise.
So, given that NVIDIA's choice is to give up a competitive edge or to intentionally implement its feature set in an obstructionist manner, how is the GPL "good" in this case?
And this is why graphics support will always be a third class citizen on linux.
Congratz!
It is THE LAW. </Dredd>
They woul dhave a bad time coming along anyway, since they can't be compatible with the secure boot (UEFI) way of working (workaround if one prefers), that is being adopted by major distributions: all Kernel level code, and X11 code, will have to be signed to work out of the box in a UEFI restricted boot environment. And any distro that would sign binary code coming from NVIDIA or whoever else would be mad.
It may be we get some months across a new "no working 3d drivers" dark ages on the Linux desktop, but one way or the other, the time for proprietary drivers is past.
-><- no
Am I missing something? Isn't this going to hurt Linux a lot more than it is going to hurt nVidia? Sure, it would be great if nVidia open-sourced their driver code, but it's pretty clear that this is not going to happen. What effect will this have other than to make Linux drivers for nVidia cards of inferior quality?
For Linux the religion, this is a triumph. For Linux the operating system, it is a major setback.
You may consider that formal notification of my viewpoint. Your corporate legal team can explain to you why the fact you are now aware of my view is important to them.
Translation: Go see your corp lawyers. FYI, you're about to get spanked.
Exactly what's the impact-level difference between the GPL and software patents then?
Oh yeah, patents expire, and copyright doesn't. Gotcha.
Great PR here guys.
While Linus got lots of publicity for mouthing off at Nvidia over Optimus support, the truth is that X.org just recently released server 1.13 that has initial support for Optimus-like technologies and it would not have mattered one bit what license Nvidia used for its driver code.
The cold hard truth is: Nvidia isn't going to GPL its drivers and it couldn't do so even if it wanted to. Nvidia's developers *have* been trying to help out with adding code to the kernel for DMA-BUF that will be GPL and will help other pieces of hardware in addition to Nvidia hardware. There will probably have to be a compromise at some point on this even if the idealogical purists get their panties in a knot over it.
AntiFA: An abbreviation for Anti First Amendment.
Actually, he's telling them that they can use DMA-BUF in their video drivers. And so can anyone else, provided those drivers are released under GPL.
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
Why is it so important to Nvidia and the other hardware people to keep their software propietary?
Copyright is for stuff that can be easily copied.
They're selling cards, not code!
Bullshit they can't use it! They can indeed use it. All they have to do is GPL their own code.
It's a two way street. You can't make it oneway simply because you're feeling selfish.
There, fixed it for you.
They simply won't use it at all, and thus graphics support on linux lags further and further behind.
Grats on the ideological win though!
Playing devil's Advocate here, as personally I agree with this (and don't let the proprietary nVidia driver anywhere near my system).
But just for kicks, how does the recent case of Oracle trying (and failing) to claim copyright on the Java APIs affect this.
If you cannot copyright an API, then you cannot apply a copyright license either.
What if nVidia challenged this with exactly the same arguments that Google used with Dalvik.
My code, my rules. Don't like it? Well, make your own code then, but do not use mine!
Grey's Law: Any sufficiently advanced incompetence is indistinguishable from malice.
Intel IGPs won't ever be fit for gaming, so dedicated GPUs are always going to be around. If all you need is day to day surfing/productivity, having a dedicated GPU is pointless.
The Amarri pray for god, the Caldari pray for profit. the Gallente pray for peace, but the Minmatar pray their ships hol
I agree but ultimately I want good 3d acceleration even if that means douche bags like Nvidia skate the license requirements.
Mod me down, my New Earth Global Warmingist friends!
No, they would have called this API from their proprietary binary blob drivers, not copied or modified the code implementing it.
And if it leads hardware vendors to avoid writing sophisticated drivers for Linux (a far more likely outcome), what then?
Why would nvidia want to deal with fanatics like this when they can just ignore them?
If I were to write fanfic for Harry Potter, this is considered a derived work, even though Rowling has only copyright on a specific expression of an idea.
Even though I may have written 80% or more of the words myself, my "Harry Potter and the Mixed Blood Prince" will never be allowed on sale.
If you want to include your code running in the kernel, you are making a derived work of that kernel and this is not allowed except by license of the copyright owners. Even if your additions are your own work entirely, the combination you want to produce is not.
If it leads to vendor GPU drivers being developed in the open then I'm in!
Spoilers: It wont.
ATI driver being open is the reason it's so stable and leaves nvidia in the dust performance wise, right? Oh wait
If it leads to vendor GPU drivers being developed in the open then I'm in!
Why were you upset again?
...because it won't, and never will, and because this is the Linux community attempting to force Nvidia to develop open-source drivers, which is just about the exact opposite of freedom. Or at least, that is what it looks like to me (hard to say, since IANAL nor do I work on the Linux kernel), and therefore is what it will look like to a lot of people. And it's why graphics on Linux sucks, forcing people to use Windows instead.
Linux's greatest enemy is quite often itself. Which is fine, if you only ever want to use it on a server... but if you want it to be a serious competitor to Windows, it won't be. Ever. There will never be a "year of Linux on the desktop", not so long as these kinds of restrictions exist.
"None can love freedom heartily, but good men; the rest love not freedom, but license." --John Milton
This won't lead to open better open source drivers. This will lead to less useful closed source drivers and even less functional open source drivers
The Ivy Bridge GPUs are pretty serious.
Mod me down, my New Earth Global Warmingist friends!
Correct me if I am wrong, but didn't NVidia have a small GPLed kernel module which communicates with the rest of the driver which is platform neutral (e.g. the same on Windows and Linux) and therefore not derivative work.
This is a bit of a gray area, but so far the Linux devs have not complained. So if NVidia exposes this functionality in their GPL kernel module in a platform-neutral way will that be ok?
I thought Oracle v. Google said APIs weren't copyrightable. As such, GPL-only APIs make no sense because the API can't be copyrighted to begin with.
Since the GPL requires copyright to work, and APIs are not copyrightable, there should be no such thing.
Can't really have it both ways - can't have GPL-only APIs here, and have Java APIs that are completely uncopyrightable Which is it - APIs are copyrightable (and thus can be GPL-enforcable), in which case Oracle was right, or APIs are not copyrightable (and GPL is not enforcable since copyright defaults don't exist), and Google/Android is right?
One of the thorny aspects of the Oracle v. Google.
While the ideal use-case would be to force graphics drivers to be open, the unintended side effect may be that drivers don't use the API, and instead reimplement their own versions if they need it, or just put up with lousier graphics performance, neither of which do any good for Linux (or Android). Or graphics moves into user space.
So you get incompatible interfaces doing the same job, these interfaces will probably be closed source making a hell as every vendor will end up implementing his own version
Apparently they think it is worth it, as they have been doing it for a while. It is all a matter of who has the power. The tech company that wants the market or the consumers. In this case it is the consumers (or fanatics if you prefer).
Bowing to the will of tech companies is the best way to have very disgusting stuff pushed into your throat.
That is not correct. If the symbol is marked EXPORT_SYMBOL_GPL then only GPL-licenced modules can use that symbol (i.e. call the API). They are already unable to include the code in their proprietary driver, as the code is released under the GPL which already prohibits them copying the code into a non-GPL-compatible codebase.
Well, this is not really just "some dude". His disappearance will be noticed.
c++;
What I'm wondering is, since he came out and said the little bit about using DMA-BUF with the proprietary code, and NVIDIA is starting to share specs with the nouveau devs, do you think NVIDIA might be able to help make nouveau work a bit better with optimus?
If you want good 3d acceleration, then write the code yourself. Isn't that the Linux mantra, "You can always write your own code."?
Wait, you're not a developer? You can't code? Awww, sucks to be you.
Now you know how everyone else feels who tries to use Linux to get something to work and is told either to roll their own code or RTFM.
If this is to become "The Year of the Linux!"*, the folks managing the packages need to make some hard decisions on how to proceed, otherwise this situation will keep coming up over and over.
* From Cletus, the slack-jawed yokel. Similar to saying, using these here internets.
We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
NVIDIA stops developing the Linux driver.
The Intel drivers are a better example: they are rock solid, Intel has contributed tons toward advancing the graphics stack, etc. AMD has maintained a split development effort: hiring external companies and providing some docs for the Free drivers, all the while putting their main development effort into their proprietary FGLRX driver. I suspect that's the real reason their drivers are kind of crap.
HAL 7000, fewer features than the HAL 9000, but just as homicidal!
Underlying implementations of Java were also copyrightable. Didn't change the fact that the interface is not.
They are changing Linux into what it's critics charged it with being. A virus.
Soon any application that calls any Kernel function will 'have to be GPL'.
Watch BSD become the open source gaming platform. Will it be the year for BSD on the desktop soon?
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
It's an interesting idea.
If Nvidia was forced to either reveal their "trade secrets" (i.e. IP that is valuable but not patentable) or not sell products in the Linux, or more importantly, Android Linux ecosystem.
I wonder if they'd find a way to open source them at that point? I bet they would.
Before Android, Linux didn't really have a big club to beat Nvidia with. If Linux et al went after them for infringement, Nvidia could just take their ball home and it'd be a much bigger loss for the Linux community than Nvidia.
But now with mobile being so important, could Android be used to force Nvidia to stop being douche bags and open up? Could it be that fiscal club of smiting?
Mod me down, my New Earth Global Warmingist friends!
Compared to a GTX560+/650+ or HD5770+/6750+/7000+, they're not. The only good thing about the Ivy Bridge IGPs is it means you don't need dedicated video for HTPCs. You'll still need dedicated graphics for gaming. Keep in mind, there are a few games out now that make a GTX460 the minimum to play. Playing these new games at their lowest settings and 25FPS isn't exactly fun.
The Amarri pray for god, the Caldari pray for profit. the Gallente pray for peace, but the Minmatar pray their ships hol
Actually, I am a developer.
That's why I know how hard reverse engineering a very complex device like a modern GPU is and why my hat is off to the nouveau devs.
Mod me down, my New Earth Global Warmingist friends!
It's more like the classical mob protection racket "Why, nice business you have there.... would be a shame if we wrecked it... unless you hand over a lot of goodies to us that we are too lazy or incompetent to earn honestly"
Isn't the Linux kernel and its API expressly exempted from the viral nature of the GPL? Per the COPYING file: “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".”
geek. lawyer.
Okay, great, if the world was perfect you'd have a great day! Yay!
But, what if this change means that nVidia and all ARM graphics drivers come up with their own non-GPL kernel API, it would probably not be compatible with DMA-BUF, and that means that the graphics drivers in the Linux kernel - both open source and not - would pick and choose which buffer sharing mechanism they support/use, leaving the rest out in the cold. This situation just so happens to negate the ENTIRE purpose DMA-BUF was created for, namely, to act as a SINGLE way for ALL drivers to share and pass buffers around. So, instead of creating a BETTER situation where all graphics drivers are compatible with each other (even the proprietary ones), we have a crappy situation that we've continued to have since day one - proprietary and open source graphics driver not playing nice with each other.
It's even in your short term and long term best interests to get everybody to use DMA-BUF, because the faster that happens the easier it is to use Linux, the more people start to use Linux, and Linux users slowly start to become more and more relevant to driver manufacturers to the point that, like Mac users, they become a profitable segment of the computer using population (note that this is both for desktop users with nVidia cards, or short term uses, and all ARM drivers for embedded devices which are becoming more popular, or long term uses), and graphics developers start to support them as best they can (read: supporting open source driver development).
While this is happening - in other words, while the world is ruled by proprietary graphics drivers because the open source ones suck (as is currently the case, and although it's improving is likely to continue to be the case for at least another two years), you can have your Left 4 Dead 2 on Linux with the proprietary nVidia driver that it needs, you can have lower power usage on all Linux laptops because Intel and nVidia cards can share buffers and therefore change which card is actively processing depending on what is running, and you can actually have useful drivers for all embedded devices until open source graphics drivers are available (whenever that happens, as it is barely on the radar of developers at this point).
So, you (and Alan Cox) can be complete dicks about this and hold the Linux desktop and Linux embedded devices with decent drivers back for years because nobody bothers to support such a tiny market with open source drivers, or you can allow proprietary graphics card manufacturers to keep their hold on graphics drivers for a few years and keep the vast majority of users happy because they have a device that works well enough (even though it doesn't have open source graphics drivers) UNTIL the community develops open source drivers themselves.
So, what's more important to you, possibly helping proprietary vendors temporarily and helping desktop and embedded users out tremendously for the next few years; or keeping your kernel untainted by proprietary crap, unhelpful to proprietary vendors, and keeping the kernel the same mess it has always been, and pissing off the vast majority of desktop and embedded users for years?
I would argue that Valve is only porting Steam and their games to Linux because the nVidia graphics drivers exist (because their games require OpenGL 4+, which isn't supported, and will not be support for years, by open source drivers). And yet, them porting their AAA title games is going to tremendously help Linux break out of its insignificant shell on the desktop - which will drive adoption, drive demand for Linux, and ultimately drive the demand for open source drivers anyway.
So, take a deep breath, calm down, and just accept the fact that allowing something to be temporarily imperfect in your world is a good trade off to make to have a much better world a few years from now.
Furthermore, DRI3 (the userspace API) will become dependent on DMA-BUF once it is developed, which means that DMA-BUF will become a usersp
Pretty obvious the linux crowd can't convince the lawyer-marketing team. They speak a different language. In their dictionary "cooperation" does not exist. They know competition, and that is all there is.
We don't need these competition suckers anyway. That paradigm is just blocking real progress.
So what? Now, instead of taking the code and producing better though still closed drivers, we are left with either worse drives or a significant duplication of effort. Good job GPL?
Licensing and open sourcing are complex issues. Simply put though, I don't think there is a single significant project in the world that would become GPL for want of a GPL library. Sure, a project might go GPL and some GPL code might be part of that, but releasing source _and_ giving free, irrevocable license too it is not a simple decision. There's a reason the LGPL exists, despite RMS's ideology: no library is worth re-licensing your application over. So this is exactly why it's BAD: You come up with a solid solution to a problem that people could use, but you waste it by only letting people use it if they play by your rules. You have nothing but a hollow ideological victory. (Hollow because one of the big ideas/benefits of free/open source is to have that one solid solution to a common problem so people don't have to reinvent the wheel.)
Which isn't to say that the GPL is bad for applications or Linux, but get a little perspective here: nvidia isn't going to GPL their drivers because of this, so it becomes just another neat toy in Linux that will ultimately atrophy waiting for someone to really use it.
Bowing to the will of tech companies is the best way to have very disgusting stuff pushed into your throat.
You need to chose your fights carefully. If this was about forcing a 10G network adapter to release it's code as GPL, I would have supported it 100%. No NIC vendor can afford to ignore the Linux server market.
On graphics though, Linux has very little leverage. The mere fact that nVidia delivers a huge blob that barely works is a big red flag. Adobe dropping Flash is another. Beggars can't be choosers. So even if you support the ideology, it's a lame move to further it, you amplifying the snowball effect against Linux. I can accept it's technically unfeasible to gather all those approvals. But to reject on ideological grounds is like trading a queen for a pawn.
Are you hating or just misinformed? NVIDIA ranks second in terms of total lines changed for the ARM kernel, and fourth in terms of number of changesets for all employers or organizations. That's sharing.
The only thing they don't share is their graphics drivers - which seems like a fair trade overall. nVidia has licensed patented code which they couldn't share even if they wanted to.
NVIDIA will likely just build their own DMA memcpy routine - because copying memory is SOOO unique.
Full disclosure: I develop (unrelated) proprietary kernel modules, I'm very familiar with the licensing, patent and copyright issues and we work within the GPL limits defined by the kernel team.
Perhaps I don't understand, but it sounds like NVidia will work without this feature, just more slowly. I doubt they need Linux to have the last ounce of performance so badly they would release their IP.
HURD has no users because HURD was rewritten a gazillion times for different microkernels. It has never been stable, much less attractive to any non os geek.
Well.. maybe. Or Maybe not. But Definitely not sort of.
Well.. they did write the code, so... maybe they have a right to their own ideology for their own code? If you want to say, all copyrights be damned... fine... but then NVidia's code would also be uncopyrightable.
If Nvidia wants to use the Linux kernel, they need to abide by the license rules.
Otherwise it's like saying bank robbers are the good guys, because people need money and the banks are trying to enforce their ideology on everyone.
Mod me down, my New Earth Global Warmingist friends!
Because they include a lot of patented stuff (including algorithms) in their hardware that would be exposed if the full source code for the drivers was available, and they legally are not allowed to permit that.
Bzzt. In order to get a patent in the first place, you have to describe the process you're patenting in sufficient detail so that a practitioner of ordinary skill can implement the process (when the patent expires). Thus, the public domain is enhanced by the (delayed, but inevitable) inclusion of your (temporarily exclusively yours, but eventually "the world's") patented process.
They might, however, have trade secret algorithms that may not necessarily be patentable (or the useful life of the TS is expected to outlive a traditional patent), that they may wish to protect.
They may have third party code that they cannot (re)license under an open source license.
Who knows what their rationales are...
geek. lawyer.
Settle down, techno-ignoramus. They asked to use an API marked as for GPL modules only under non-GPL terms and were denied. No GPL violation occurred. All that's going to happen is that nVidia will just have to leave out this feature in their Linux drivers until they get around to writing their own version, if ever. Sucks to be you.
BSD/Apache/MIT is all the rage these days.
Yeah, you can tell by the way so many supercomputing clusters, Android phones, TVs, your home router, etc. have switched to a BSD kernel.
Oh wait...
0 1 - just my two bits
The point is, they are deliberately making changes to force others to comply, even non-derivative works. At that point, they've become a dictatorship
Say this again when NVIDIA GPUs stop being picked for android mobile devices...
> Interesting that BSD/Apache/MIT is all the rage these days.
Really?
The only place I see that is the trollfest that is /g/.
--
BMO
User programs, not in-kernel drivers.
The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
derived works definition for software.
Which is what, exactly? I'm a copyright attorney who has studied computer science at the post-graduate level (and am a Tau Beta Pi member), and I still can't give you a coherent, comprehensive definition for 'derived work' in software that's applicable throughout the whole of the United States, let alone internationally. The GPL is a clusterfuck in that respect, and it's never been considered by any authoritative (i.e., Federal Circuit level) court...
geek. lawyer.
They have many licensed components in their code. So they have to remove all that and rework it, and do it in such a fashion as to not get sued by those companies (who might claim that the nVidia programmers couldn't work on the new code since they'd seen the licensed code). This isn't just some more minor features such as S3 texture compression, but OpenGL itself. Go look it up, OpenGL isn't a free "do whatever you like" setup. There is licensing for it for companies like nVidia.
Even worse is that because the issue isn't just opening the source, but actually GPLing it, that makes it so much harder. Some of their licensed components are things the companies might be ok with source distribution. However nVidia doesn't have the right to relicense that code under the GPL. So even if they opened it, it wouldn't do any good as the GPL is what is required here.
So the argument of "just open the driver" is somewhat unrealistic. It isn't just that nVidia likes to have a competitive edge, though they surely do, but that it would be a major issue and a lot more work to try and do so, if it were even possible.
Again, take the OpenGL issue since it is a pretty fundamental one. nVidia licenses the code and has the latest OpenGL 4.3 implemented on cards that support it. Ok so let's say they decide to grab the Mesa code for an OSS branch. It's MIT license which is GPL compatible so good to go right? Well, not really. Mesa is OpenGL 3.1, 3 years out of date, and it only recently got that. So they can either deal without a bunch of features on all platforms, have two different drivers one full featured on Windows and such, one with less features, or they can invest a ton of work to try and make their own up to date OSS OpenGL implementation and hope they aren't sued.
None of those sound like very good uses of resources.
GPL licensors demand that others don't redistribute GPL code as their own. Proprietary licensors demand that others don't use their code at all without their express permission, full stop. Who's the fanatic here?
I am literally 3000 tokens away from the chaotic crossbow --Stephen
Google used the apis and re implemented the code.
if nvidia wants to re write linux with the same apis, they are welcome to.
Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
So obviously Alan Cox is much more of an expert than I am, but I've installed the binary nVidia blob on many, many machines, so I'm aware that there is a "shim" interface layer that gets built at install-time to bridge between the closed-source nVidia stuff and the actual kernel. This shim is visible, obviously you can *read* it if you unpack nVidia's installer, and it uses kernel header files at build-time.
It seems that this has to mean that there is already a way to get closed-source binary blobs to talk to the kernel, and that nVidia already knows how to do this.
Can someone explain why this is different? Why can't the DMA-BUF code be part of the shim, or part of a different shim? It's technically more complex, but I can't believe that nVidia of all people are slowed down by some technical complexity.
2*3*3*3*3*11*251
No, that's you trying to turn it around, with an inane comparison. And you haven't understood it either.
It's an API, not a full-blown code implementation that's copy-pasted, yet the Linux kernel guys are trying to force it upon non-derivative works. If it had been a library or something, it'd have been one thing, but as said, this is an API.
No, this is why linux exists in the first place.
Without the GPL, they would have just used the existing implementation.
With the GPL, they're going to have to recreate the functionality themselves. Their implementation will probably be closed source. They might consider contributing it to the kernel with more permissive licensing terms, but considering how Alan Cox reacted to their request, I doubt it would be received well. Now we'll have duplicate, incompatible functionality being maintained by the kernel devs and NVIDIA. Either that, or NVIDIA will simply do without the feature and release inferior drivers.
Nothing *forces* Nvidia to write drivers at all. It's their own choice.
GPL is a protection against abuse. The only freedom-restriction is that people are disallowed to abuse the freedoms granted by GPL.
Nvidias propriatary software *IS* the exact opposite of freedom for anyone silly enough to use it.
As for quality of software being better on Windows, that's sadly true sometimes. GPL won't change, it's practically set in stone to guarantee freedom. Nvidia however, can choose to create free drivers, just as many others do. Blame Nvidia for failing to meet the costumers needs.
(IANAL, but i think i'm in the ballpark)
If NVIDIA were the only GPU makers then your concern would make for a stronger point. However, there are other GPU makers: ATI and Intel for example.
Linux has a license (GPL) that states some requirements on what you can and can't do with it, this license is wrote that way so the code will remain free. This is an ideological ideal and not a business ideal, therefore they clash. It protects against companies like Microsoft doing 'Embrace, Extend, Extinguish". Evidently you like the idea of a world where a few patent holders control our computing technology. True freedom is also allowing the biggest, baddest, and meanest to set the law. True freedom is allowing business interests to take chunks of Linux wrap them up in binaries and keep them hidden away from everyone the community that built it. True freedom is a person busting in to a house with a gun, killing everybody, and taking what they want without any worry of law.
The GPL is preventing that corporate psychopath from taking what he wants with his power and instead establishes a level playing field.
It seems odd you want 'Linux' to become Microsoft to beat Microsoft, I don't see how anybody gains anything in the end.
Android developers don't care about desktop Linux and are willing to fork anything that gets in their way. They've done it before.
Android will end up with 3D that works fine; it will just be based on different APIs than desktop Linux.
The Ivy Bridge GPUs are pretty serious.
According to Intel and fanboys, sure. Not according to benchmarks.
My current video card was released in late 2007 and was ~$250 upon release so wasnt even top notch at the time, and I significantly down-clock it to keep its fan quiet.
It still delivers nearly twice the FPS as Intels flagship HD 4000 Ivy. So we are talking about a down-clocked 5 year old mid-range video card that is still beating up Intels greatest offering ever.
Try again, fanboy.
"His name was James Damore."
I have BSD on line one. They would like to have a word with you.
Shai Schticks:"You don't make peace with friends, you make peace with enemies"
"...because it won't, and never will, and because this is the Linux community attempting to force Nvidia to develop open-source drivers"
laughable. we keep on hearing how open source/free softwar developers are incompetitant nin-compoop basement dwellers. Except when corporations want to use Free software in their closed source programs, then its the Free software authors making breakthroughs who are wrong. See if these closed source lackies are so better, why don't they just re-implement the ideas from scratch like FOSS does with priopretary software.
"which is just about the exact opposite of freedom".
The only "freedom" we are taking away from nvidia is the freedom to take other people's freedom away. Irony?
What needs to happen is nvidia needs to open source its drivers, like intel does. Intel drivers are far more stable. even open source nouveau drivers are far more stable(albiet feature incomplete, poor 3d performance, no power management, no OpenCL support). The very least is nVidia can release the specs to the noveau team so they can make a feature complete driver.
Now you know how everyone else feels who tries to use Linux to get something to work and is told either to roll their own code or RTFM.
And even if you are a programmer and want to fix some random bug, it takes a lot of time to get familiar with that particular code, to set up a proper compile/test environment, etc. To me it seems that bug fixing is usually only viable to those who are the actual routined developers of the project in question.
Please don't echo the Microsoft buffoonery of calling the GPL "viral".
If it's viral it's a virus you choose to contract.
Also, from what I understand in the GPL, that notice isn't an excemption added to the GPL, it is a notice that simply clarifies what is already in there.
There will never be a "year of Linux on the desktop", not so long as these kinds of restrictions exist.
And without those restrictions there will never be a "year of linux on the desktop" because after you bolt enough proprietary stuff onto it it's not really linux anymore, and the whole point of having an open source operating system will have been entirely subverted.
Linux's greatest enemy is quite often itself.
Not really. Its greatest enemy are those willing to compromise on the ideals for convenience or marketshare.
To use a car analogy; suppose I started a car company with the goal of releasing an affordable all-electric emissions free vehicle. Sounds great. But the range is kind of low, and its a hard problem to solve.
We could install a diesel engine in it, which is inexpensive and gives us the range we want. Sure it subverts the entire idea of making an all-electric emissions free vehicle... but hey did we want to get a car to mass market this year or not?
Richard Stallman's fierce stance on freedom may be seen as a hindrance to Linux adoption by many; but he's the guy drawing a line in the sand saying "No, you can't put a diesel engine into the all-electric emission free car because."
He, and the people who draw a line in the sand are the ones that ensure Linux can exist in a meaningful way at all.
A couple years ago, back when they had the upper hand, NVIDIA did not even open up the drivers for their ethernet chips, $DEITY knows what trade secrets could have been hidden in a ethernet driver.
Also, don't say that they're not opening the code because it's licensed by third parties: they don't even release documentation for their chips. The truth is that they don't care about open source, and will behave only when forced to.
Full disclosure: Linus Torvalds develops the linux kernel, he's very vamiliar with the licensing, patent and copyright issues and relationships with NVIDIA, and sent them to "fuck themselves" (sic.).
The point is, does Nvidia consider the Linux market for their hardware big enough to justify open sourcing their drivers making it easier for their competition to see what they are doing.
For the desktop market Linux doesn't have enough penetration to seriously impact their sales. A slightly slower driver will be sufficient for most people and the number additional sales by having a GPL'd driver is probably not enough to make them GPL it.
Remember they consider that a GPL driver in Linux will impact their sales in the Windows market where they actually do make money.
Android may change this if it becomes a significant driver for sales of Nvidia parts.
and then will turn around and repeat the FUD about how their closed source project is better, while relying on open code.
the GPL prevents corporate smack talkers from being hypocrites.
it also allows for the "open source" model of business, because instead of suing to keep people from copying you, you can sue for the right to use their innovation. Hence competition happens at a much faster rate, and a bunch of smaller companies can all work together and sell the same product of which they only develop pieces.
Ultimately all it will do is lead to nVidia not supporting Optimus on Linux. People need to remember that their "give a shit" index for Linux is way less than Windows to begin with. Then understand that most of their market in Linux is high end stuff like visualization workstations, CUDA compute systems, and so on. Linux laptops are not a big thing. It just is not a large enough market for them to care all that much.
So what that means is that they might well support it, if they can do so with a reasonably small amount of resources. However if it ends up being a real problem, they'll probably just write it off and not bother.
The ideological crap with regards to the GPL pisses me off. I think it is wonderful that LInux itself is GPL, however they shouldn't be hostile to non-GPL software. To me it would be as stupid as Windows refusing to allow an open source driver or program to run. There is no reason Linux shouldn't have a good setup to work with binary only drivers.
Developers need to understand that to most people, computers are tools and they are pragmatic about it. They want the tool that does the job well. So if you go and let ideology get in the way of usability, they'll just ignore you and look elsewhere.
NVIDIA are the outliers here, everyone else is doing the good thing.
Linux developers are not trying to "force" anybody to do anything. Nvidia is trying to force the linux community to accept their unacceptable "super secret" blob into the kernel agains the linux community's development and participatation standards.
If I showed up on your doorstep and said "you have to let me use your bathroom and your kitchen, but I am not going to wash my hands or put on pants" you would not be "forcing" me to (anything) by saying that my intended pantless, unwashed use of your facilities was unacceptable.
The Linux community is telling nvidia "we use soap and pants here, if you won't do likewise, we don't feel like accomodating you."
Nvidia _knows_ they want in, otherwise they wouldent be trying to get in, Linux Don't Care if they come or not, but if they come they need pants...
Requiring someone to meet minimum standards for participation is not "forcing them" to do anything,
No pants, no access is not an unreasonable position.
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
The reason they won't go open source is that it exposes them to patent lawsuits, frivolous or otherwise.
There will come a time when we either have reformed patent law, or we have a widely accepted binary ABI like x86 or arm7 but for GPU's, and that'll be the end of this nonsense with the closed source drivers.
GPL does not impose technical limits, only legal ones.
If Nvidia (or others) choose to not work within those limits it is their own choice.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
The preceeding mail from Jan-2012 mentions the reason why they need to have the drivers that interact with the interface gpl-ed:
'A bug on a driver using such low-level interface could cause side effects
at the wrong places. In order to handle such bugs, the developers and the
maintainers of both subsystems need to see the source code of the entire
pipeline, with is not possible if is there any non-GPL'd driver.
NAK
Mauro.'
why would they implement the api in such a way that you have to be gpl in order to _use_ it in the first place?
that sounds dumb - might just as well have called it the GPL-BUF.
and you know what's funny? Torvalds was complaining about the poor optimus support on linux.
world was created 5 seconds before this post as it is.
Exactly the opposite. If NVIDIA were the only GPU makers they would be able to force down our throats pretty much whatever they wished, but, because they are not, we can force GPL down their throats instead.
I have two for them. Fuck off.
I'll use BSD code. I respect the people who choose to write it. But I have not and never will contribute to a BSD project- if I release code as open, I want it to stay open in all its derivations. I explicitly do not want someone to ever use it without keeping their derivations open. I'll consider something like the LGPL, depending on the code, where changes to the code I wrote need to be contributed but not to code that links to it. But never a purse BSD.
I still have more fans than freaks. WTF is wrong with you people?
Nvidia can go and reimplement (in a 'clean room') Linux kernel and it's APIs - nobody would have problems with that. But it seems like to much work for Nvidia. Instead it takes existing Linux environment, stuffs it with their blob and starts making money on selling chips for smartphones/tablets/etc. And it doesn't give anything back to the community. And that sounds like a violation of spirit of the GPL. And nobody asks Nvidia billions of dollars, nobody even asks Nvidia to give their chips for free. People just think it would be nice of Nvidia to open source its drivers. Drivers for products customers already payed for! It doesn't seems like to much to ask, does it?
wait, the open source community does write things themselves.
It'd just be easier if it came from the manufacture of the hardware, as the community doesn't have full specs on cards that are NEEDED to write the drivers.
And for the record, the open source nvidia drivers are a fuckton more stable than nvidia's proprietary binaries.
http://nouveau.freedesktop.org/wiki/ and they hit a 1.0 stable release recently.
"You can always write your own code."
The original topic is that nVidia can't use GPL code in their proprietary drivers, and now they are bitching we are not sharing. irony?
If nvidia doen't want to release their drivers GPL, they always write their own code.
If they want to duplicate the functionality, that's their choice. They can then pay for doing that.
If we end up with worse drivers because of it, that's something I'm completely willing to accept. On this issue the philosophical points far outweigh practical to me.
I still have more fans than freaks. WTF is wrong with you people?
Linux developers don't care, nor shoud they, about the decision of one company to play nice or not.
Linux kernel developers have been letting Nvidia get away with the whole "binary blob" thing for a long time. Nvidia has taken no real steps to come into conformance with the GPL requirements. They keep getting a pass for their bad citizenship.
Eventually bad actors (Nvidia) either have to shape up, or they need to ship out.
At the moment Nvidia is freeloading on the linux kernel. They are putting themselves in there for free. Now they are asking to break even more rules, or more accurately, to have the rules changed in the name of their personal interests. Nvidia has fouled their own bed, but now they are whining that they don't want to have to lie in the filth of their own making. They are a full grown company. They know what they _ought_ to be doing. They want a pass to have things their own way regardless.
Sometimes you have to tell a spoilt child that they don't get the lolly this time.
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
If by "force" you mean the philosophy behind using GPL code, then that has been around long before Nvidia even put out binary drivers. The freedom here is not freedom to do whatever the hell you please, but freedom to take the current source and modify however you wish -- provided you contribute back by sharing your modifications. No one is forcing Nvidia to open their drivers -- they can choose to not do so as they have been doing.
Cool story bro
Mod me down, my New Earth Global Warmingist friends!
If it leads to vendor GPU drivers being developed in the open then I'm in!
Why were you upset again?
Because everyone was arguing that APIs are not copyrightable in the Oracle vs. Google case but somehow you think that they should be GPL? GPL is built on copyright law which means that you are saying that Oracle was right and that an API can be copyright protected.
Don't be a hypocrite. You either believe that APIs are copyrightable which means that Google should pay Oracle or you don't. If you don't then you cannot say that they are protected by GPL.
Jesus was a compassionate social conservative who called individuals to sin no more.
Binary drivers suck: it means you need the vendor to recompile them for each kernel version. This leads to extreme difficulties with commercial use of Linux: you have pressure to use a particular version of the kernel for one reason, but you can't because the binary driver was built for a different version. You may have to try to get the vendor to recompile their driver for you, but then there is a schedule dependency. Why have the vendor in your release loop? GPL APIs also suck: Frequently custom hardware comes with proprietary non-GPL drivers, but which do come with source (usually terms are "free to use and re-distribute but only with my custom hardware"). I've seen where a kernel API changed from free-access to GPL restricted.. but now what? You are free to change the custom driver sure, but you can not use it because you are not free to change the vendor's license. Ugh. IMHO, both the binary drivers and the GPL APIs need to go.
The GPL is preventing that corporate psychopath from taking what he wants with his power and instead establishes a level playing field.
During this week I skipped using an open source component for a work project and started developing one of our own. If the project had been of supreme quality I might have created a wrapper which would have allowed us to use it in the (proprietary) project as it was GPLv2. If the component had been BSD or some other reasonable license (WTFPL is my favourite) I would have fixed the project and sent the creator the patches.
We do have plans for releasing at least some of our stuff as open source, but I don't think it will be GPL. Then again GPL would prevent some competitors from using it, but that isn't exactly my idea of free.
It is what it is.
No one is forcing anyone to use DMA-BUF
nvidia can always re-write it from scratch. You know you'd think being a computer company they'd find or be able to hiring someone, right?
now compare linux, and Free software, and this so called "protection racket" to what it takes to develop for other platforms such as microsoft or apple, or any of the game consoles and get back to me on "racket".
Or its a racket that we prevent them from running their own racket?
...because it won't, and never will, and because this is the Linux community attempting to force Nvidia to develop open-source drivers, which is just about the exact opposite of freedom.
It's the exact opposite of freedom from Nvidia's perspective, that's true. But, on the other hand, it increases freedom for the users of the driver (those that want to modify the code and improve it or make drivers that work slightly differently). And on the third hand, the GPL grants only limited freedom (albeit freedom that might not exist otherwise) of those that would fork or otherwise make derivative works. There's probably more hands involved, too.
Freedom is often a matter of give-and-take, unfortunately.
The theory (whether or not this works in practice is another matter) is that forcing drivers, etc. to be open will improve user experience (more eyeballs, more developers, etc). There's something to it, as well ... closed graphics drivers have been one reason "why graphics on Linux sucks," which has prevented linux devs from fixing the problem in the first place.
where are mod points when you need them +1 good sir
Depends on what your goals are. If your goals are to be used by as many people as possible, you're right. If your goals are to promote free software, you're wrong. I disagree that its a hollow victory though- I'd call it a hollow victory if you sold out your goals and views in exchange for shinier graphics.
I do agree that some things should be LGPLed, that's a strategic call. I'm not sure if I'd agree on this piece of code though.
I still have more fans than freaks. WTF is wrong with you people?
Graphics on Linux don't suck, unless you own an NVIDIA graphics card, but your complaints for this unfortunate situation are to be directed to NVIDIA, because the kernel developers for their part are doing their best to develop quality drivers, even with NVIDIA's policy of obfuscation and secrecy in place.
If this was true, then TODAY would be the year of Linux on the desktop, because no "restrictions" exist for PCs with AMD or Intel graphics. The truth is that Linux exists only because it's open source. It's impressive how easily people tend to forget this simple thing.
If copyrights are done with, GPL is obsolete.
The Linux promise: It will work someday, when the entire world arrives at a place of utopian freedom.
The Linux apology: We're sorry that it doesn't work now; just wait for someday.
STOP . AMERICA . NOW
I have a feeling this is very much a "you can't eat you cake and have it too" situation... Linux has managed to badger many companies into eventually providing open source drivers for their various sound cards and network cards and raid controllers and wifi cards and whatnot. I admit, I have used the nVidia drivers quite a bit I'm glad it's not two dozen binary blobs around an open source mini-kernel, which is almost certainly what would have happened if Linux had a well defined ABI from the start. Graphics cards have by far been the hardest since they're huge drivers on top of a quickly changing and complex hardware, far exceeding anything else but they're also now almost alone in needing binary drivers.
Intel's driver are open source as always while their performance is starting to not suck horribly, AMD's open source efforts are ongoing, even nVidia has said they'd release some tidbits of 2D specifications at least. If you're going for the quick win of give me binaries and give them to me now, why pick this specific point in Linux history? Linux on the desktop is not growing, but it's not dying either and if you include Android then it's absolutely not dying on mobile. With the latest Mesa release Intel is up to OpenGL 3.1 support (3.0 on most other cards) and that's 3.5 years behind the standard - and full Open GL ES 2.0 support. Great? No. That terrible? Also no. Linux has persisted and procrastinated against the allure of binary drivers for 20 years now, if they do it a decade more I think the last pieces will fall in place.
And for a number of reason I still don't think it'll be YotLD, all open source drivers or not.
Live today, because you never know what tomorrow brings
Because of a Chicken/Egg problem, not because of Optimus.
Your argument is a bit off - this isn't about Nvidia wanting to use "Free software" in their "closed source programmes", it's about Nvidia wanting to use an advertised feature of the Linux kernel platform to enhance performance *on Linux*. Nvidia already have access to similar functionality on Windows and OSX (or will soon) - they won't be taking anything from Linux to Windows or OSX if they used the feature Linux advertises.
All this is doing is hurting ongoing performance on Linux, and people are trying to blame Nvidia because of it.
Is has not yet thrived and for this reason will not thrive in the future.
People are glad to take, but they never give unless forced.
What sort of trade secrets? It's not sarcasm, I'm really curious. From what I know all 'innovations' that make them competitive should already be patented. What else can they put into driver that they are giving away for reverse engineering by competitors?
I thought Oracle v. Google said APIs weren't copyrightable. As such, GPL-only APIs make no sense because the API can't be copyrighted to begin with.
You're wrong.
It is fine for someone to go and make a new, compatible implementation of the DMA-BUF API, with the same calling conventions etc., and license it however they wish. That is what the Oracle vs Google judgement said.
It is not okay to link your code into the GPL version of the DMA-BUF API unless your code is also GPL'd. That is something different.
Pirate Party UK
Bullshit. It's NVIDIA who sent a patch to the Linux developers asking them to change the license of their work because they're not willing to change the license of their own.
Apparently they think it is worth it, as they have been doing it for a while.
To my understanding NVIDIA has never released GPL-licensed drivers for their GPUs. My bet is they develop Linux drivers because they think Linux is a viable and innovative computing platform, not because they agree with FOSS purists.
"Please comply with the very permissive licence that we chose to licence our code under" does not amount to a religious argument.
Pirate Party UK
The one who tries to insist all code in the world should use their preferred license.
Sadly not :)
GPL infringement happens when you have a non-GPL compat app accessing memory of another -- which is why linking dynamically against GPL is no-go (needs LGPL). Passing data-structures is historically a problematic area.
Sadly, that probably means that the GPL is incompatible with copyright law in a number of jurisdictions. I look forward to seeing a company like NVIDA challenge the GPL in court for the good of us all. Tyranny is never a good thing regardless of who the tyrant is or whether you agree with their aims.
This viral nature has never sit right with a lot of people. No license can extinguish the copyright of another.
Jesus was a compassionate social conservative who called individuals to sin no more.
APIs GPL only? Seriously guys, WHAT THE FUCK?
That's not what's happening at all.
The basic fact is: the Linux kernel sources are GPL licensed. This was an early decision by Linus, and no amount of wishing will change that. There are just to many contributors that would have to approve a re-license.
Now, the GPL is very clear regarding derived work: if you distribute such a work, it needs to have a GPL-compatible license and provide sources.
What constitutes a derived work for a kernel? Basically, calling any code from the kernel would create a derived work, so the Linux license contains exemptions for user space code that calls the kernel through the public interface.
However, in this case the nVidia driver would call an internal kernel function, that is not exempted, so this would create a GPL derived work. The function is so low level that it would create an intimate bond between the Linux kernel and the nVidia binary driver.
Even if the Linux maintainers would allow this, anyone that wrote any part of Linux could start a court case against nVidia for breach of license. Would that be a better outcome?
How many FPS is that?
All I need is 60, monitor does not show more than that anyway.
The time is coming when intel GPUs will be good enough for even gamers. They already good enough for Source engined games.
Much like moores law killed sound cards the dedicated GPU is not going to be around forever.
Sorry to say, he's right. Even the 9800GTX+, released 4 years ago, wipes the floor with the Intel HD 4000. http://www.videocardbenchmark.net/gpu.php?gpu=Intel+HD+4000 http://community.futuremark.com/hardware/gpu/Intel+HD+Graphics+4000/benchmarks The HD 4000 from Intel is great, if you don't plan on gaming in any serious manner.
The Amarri pray for god, the Caldari pray for profit. the Gallente pray for peace, but the Minmatar pray their ships hol
I have a sincere question about proprietary code.
If the concepts underlying the code are indeed patentended then is the copying of said code not protected by the governing countries laws? If I had patended a really cool/advanced algorythm then by showing it's implimentation how am I hurting my 'invention'? I was of the understanding that by recieving a patent for an invention I was able to show everyone how I did it because I was protected by law from anyone implimenting it for a period of time with out my explicit permission.
So I guess tl;dr if someone got their hands on Nvidia's/ATI's driver code and showed the world how would that effect patents and/or intellectual property rights?
A loop, by its nature, continues. If that didn't make sense, start reading this sentence again.
No, even... hell, _especially_ if your goals are to promote free software this is bad, and that's exactly my point. Nvidia will not open their source because of this. Free software spread? In the best case no. And in reality, Nvidia's drivers aren't what they could be so Linux continues to have crappier than necessary drivers which either are slower than they need to be or have a nasty hacked version of this. Does that help spread free software? I'd say not. Bad drivers are one of the big issues people have with Linux.
Now, if there were good GPL drivers and this would be their selling point, I'd agree: you could spur adoption of open source by restricting the API to the free version and letting Nvidia play catch-up. But that is simply not the case. All this does is artificially make the graphics situation on Linux worse, and that does absolutely nothing to help spread free software.
The kernel is still GPL. Anything android devs do there has to be released. They will be stuck sticking to user space drivers, like they do now.
Right, because promoting open source GPL-compatible drivers didn't work for Linux.
Oh, wait, it worked. The Linux hardware support is overall quite good (with many hardware manufacturers working with upstream to contribute drivers). In fact, Nvidia is a minority - Intel has the biggest market share in graphic chips (avobe 50%), AMD/ATI is second. Both have contributed open source drivers which are getting better and better.
Who said anything about Apple?
I am literally 3000 tokens away from the chaotic crossbow --Stephen
0) People chose GPL v2 for the kernel for very good reasons and the sheer success of it from phones to all Top 500 clusters is proof ..nuf said on that.
1) You can use LGPL if you want to release code that is GPL but allow people to link with proprietary blob but without forbidding users to see and modify the LGPL code.
2) Linux kernel is GPL V2.0 licensed not LGPL...so if you want to bind to it and release the binary then you have to release the code under GPL V2 of your stuff that is calling the kernel stuff...you don't need to contact any body if you abide by this
3) You can request all the copyright holders in the kernel code to release that bit of the code to you under another license if you do not like GPL.
GPL licensors demand that others don't redistribute GPL code as their own. Proprietary licensors demand that others don't use their code at all without their express permission, full stop. Who's the fanatic here?
GPL licensors demand that others not use their code without making it available under the terms of the GPL, so that it must be made public. Proprietary licensors demand that others not use their code without paying a licensing fee and/or not redistributing the licensed code except under the terms of the proprietary license. I consider neither to be fanatical, although fans and foes of the GPL can certainly be fanatical in their support of or opposition to the GPL.
Nvidia are the bad guys here, not Alax Cox nor the GPL.
But I'm torn because Nvidia is the only great solution for 3d on Linux right now. So my pragmatic self is screaming "NOOOOOOOOOOOOOOO!"
Intel Ivy Bridge stuff is pretty awesome though, I use it more than the dedicated Nvidia gpu on my Clevo. I'm really hoping the next iteration of Intel GPUs makes dedicated support obsolete but it's just a dream ;).
No, Alan Cox and the GPL are the bad guys here. They are trying to copyright an API which is precisely what Oracle tried to do and you probably were against it. You are being a hypocrite.
The GPL is incompatible with copyright laws in various countries and because of that, it needs to be challenged by a company like NVIDA in a court of law. Alan Cox cannot copyright/GPL his API any more than Oracle could copyright their Java API. The GPL is supposed to be built on top of copyright law but if it is incompatible with that law then it is not a valid license and needs to be rewritten.
Jesus was a compassionate social conservative who called individuals to sin no more.
Their Optimus support for Linux requires they be able to use the same buffer sharing mechanism as everybody else (read: DMA-BUF), and the reason they want to be able to use this API is because they are currently developing Optimus support for their Linux drivers.
Furthermore, they are looking into supporting Wayland, but they wanted a 1.0 release first to prove that it wasn't just some fad before committing engineering resources to supporting it.
And no, if we don't let them use this API, they won't support Optimus on Linux, and Linux will be far worse off on laptops and embedded devices because of it.
"Shinier graphics" = hardware that you paid for, which works with its advertised feature set? Jesus, way to trivialize an entire range of useful, revenue-generating products in the professional world.
Really? Ignore them? You're kidding, right?
If you're going to provide an OpenCL driver, you'd best work with Linux since pretty much all the top 10 supercomputers USE that as the core OS. We won't get into most of the CGI shops needing the same sort of thing for workstation drivers (which is WHERE the OpenGL drivers came from...not out of the kindness of their hearts...).
There's a reason AMD did what they did. What I just pointed out is that.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
So, you (and Alan Cox) can be complete dicks about this and hold the Linux desktop and Linux embedded devices with decent drivers back for years because nobody bothers to support such a tiny market with open source drivers, or you can allow proprietary graphics card manufacturers to keep their hold on graphics drivers for a few years and keep the vast majority of users happy because they have a device that works well enough (even though it doesn't have open source graphics drivers) UNTIL the community develops open source drivers themselves.
So then Valve must be a bunch of Idiots.. http://games.slashdot.org/story/12/08/31/1551230/valve-finds-open-source-drivers-to-be-great Apparently, those dumb-asses seem to think that having access to the drivers makes it easier to find bottlenecks, performance issues, etc, and to improve the drivers at the same time. In fact, their Blog mentions this several times. If only they just understood the closed source model..
What are we going to do tonight Brain?
Oh noes, you had to write your own code instead of taking others hardwork as your own with no intent to contribute back. What a big problem.
You would not have sent any patches to the BSD project, that is why BSD is lagging so far behind. Everyone wants to take and take.
The day when an Intel IGP is able to play a newly released game at 1920x1080 at 60FPS at Medium or High settings is when the dedicated GPU is obsolete. That day isn't going to be coming for an extremely long time. Moreso since newer more powerful GPUs are coming out yearly.
The Amarri pray for god, the Caldari pray for profit. the Gallente pray for peace, but the Minmatar pray their ships hol
What it will lead to is *zero* vendor GPU drivers being developed in the open. Who the hell would expose their proprietary code to placate less than one percent of the desktop market share?
GPL zealots are both stupid and clueless. Keep your actions up and you'll be lucky if you have access to accelerated 3D drivers -- even closed-source ones -- five years from now.
Heh... There's other uses for a GPU and they're not graphics.
Ever wondered why AMD opened up most of their programming info? Stop and contemplate why they did that and offer off-and-on assistance in the FOSS driver stack at their expense. It's not because of them being altruistic. It's not because they see more than a nascent market for games.
It's because of the same thing you pointed out. That 10G card is important to supercompute clusters. So's the GPU. I honestly wish people would step back and quit thinking with the blinders you just espoused just now.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
Nvidia is creating Linux driver not because of good will, but because Linux gives Nvidia access to very fast growing market. And yes, Nvidia will notice if this market won't be accessible. Everybody else on that market will be just happy without Nvidia. In short: Nvidia needs good Linux driver more then Linux needs Nvidia at all.
It's thrived? Would you mind sharing what you're smoking? It's got to be GOOD.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
If it leads to vendor GPU drivers being developed in the open then I'm in!
Why were you upset again?
...because it won't, and never will, and because this is the Linux community attempting to force Nvidia to develop open-source drivers, which is just about the exact opposite of freedom. Or at least, that is what it looks like to me.......
What it looks like to me is that in order to use _some_ features of _some_ kernels NVidia must do some driver work in the open (source). Whereas the prior situation to this kerfluffle included NVidia being of the position that in order for linux users to use _some_ features of _some_ NVidia hardware, that they must accept drivers that are closed source.
Big whoop. NVidia has a choice to make. Ignoring a potentially lucritive market is one of their options. (not to mention how things like individual human good or ill will towards companies tends to spill across markets in non-obvious ways...)
Because everyone was arguing that APIs are not copyrightable in the Oracle vs. Google case but somehow you think that they should be GPL?
If Nvidia were able to produce a non-GPL kernel module that implemented that API, they could use it. It's the in-kernel implementation that's GPLed and that only GPLed code can use.
GPL is built on copyright law which means that you are saying that Oracle was right and that an API can be copyright protected.
In this case, it's an implementation, not an API.
The GPL is about the freedom of the customer not the vendor. You are already free to choose what tools you use. An end-user with closed or closable software that they depend on is not free, but dependent on the whims of the developer or the corporate strategy of the software company.
What is the reason for this distinction?
No... Trying to force them would be to say they can't do them at all- which is NOT what was stated. Quit putting words into Alan Cox's mouth there.
All they said was this nifty interface that would help them do even better than they already are is going to stay GPL and they can't use it unless they GPL things. It's no different than if I had a patented compression algo for textures and insisted upon licensing it out before using it. Keep your biases to yourself, please.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
Weird. Wasn't it just a couple of years ago that the hue and cry on Slashdot was that headers couldn't be copyrighted? Something about the SCO trial, IIRC.
Or is this symbol somehow special in ways that those others were not?
My guess is they'll eventually give up and stop giving the Linux community drivers at all. Considering how small the market is, and how ungrateful the recipients are, I doubt they'll worry too much about any drop in hardware sales.
That word "fork", it doesn't mean what you think it means...
This fork and forget behavior is allowed for BSD licensed bits, but not the GPL bits because the GPL doesn't let someone just make off with the goods like the BSD license does. So no, the Android peopld "can't fork and forget" the GPL.
The GPL _requires_ fair play. Thats why it is "better" in this case than BSD, because even after a fork you still have to play by the rules and the rules here are "you want DMA-BUF, you need to be GPL compliant." You have failed "forking 101". Your assertion is wrong.
"they have done it before"? Not wiht GPL ware they havn't, at least not where it involved the GPL'd bits like those at issue here.
NVidia has bad-citizen'd themselves into a corner here. Too bad. So sad. Bye bye.
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
I don't like paying for bathrooms, but I'm not going to shit my pants to prove a point.
bolt enough proprietary stuff onto it it's not really linux anymore
Yeah, it would probably end up being something that's better and more usable than Linux.
I've never really understood so much of the background on this. I really don't. Nvidia are probably *the only* fucking company that really went the whole way and really release the right 'kind of ' full drivers for Linux. Yes, they are closed source binary. Yes, they are proprietry. Yes, they don't comply with religious level political idealogy. But they contribute in a less than optimal way to your platform.
And your platform, at least in the short and medium term would be vastly shittier without their efforts.
So, next you publicly go viral dropping a bucket of shit over them. Their response has been moderatly to try to come in and talk, make changes and be more of a interactive unit with you. I bet that the devs inside the company are probably very pro making progress but face real world limits of legal and other things that they themselves are not empowered to fundamentally change.
I'm not surprised at Alan's answer - but here is my raw take on this. What would have been the better way forward was to take their request and frame it globally to that group of people and put Nvidia's request forward. I appreciate that many would likely answer no, and I appreciate this would perhaps not be what Nvidia wanted, but it would have opened a bridge for interaction and perhaps longer term bridge building. Instead, they get a fuck you, fuck your company, and do this our way or the highway.; What were Nvidia trying to do? Provide an answer to the problem they had a bucket of shit thrown over them in public about. ie - trying to solve a problem they were abused about.
The benefit of doing this is fixing something in linux - albeit with a closed driver that people asked for. Linux users asked for this. Linux Kernal people bitched about it. Linux coders refusing to help provide this moves this off being a purely Nvidia are a bunch of fucks to shooting your own platform in both feet.
I don't fucking get it. These bits of code I presume are already fully in Linux. Sat there in daylight .Refusing to let Nvidia use them to help you do something_you_asked for is demented. Or rather - let me reframe that - Its really lame to not engage in a process to find a way forward instead of ramming the ideology down the throat of a vendor who is a closed source bunch - but have come to try and engage with you on a problem.
Let me put it more plainly. Linux needs Nvidia more than Nvidia needs linux - but together you make something that is symbiotic. You think your mythical Ubuintu tablets are going to surface on the very proprietry ARM platform by not getting down and working with people like Nvidia on problems. Linux won't run 'well' on their platform without their help. You want to be there? Take your heads out of your asses.
As much as Linux gets hobbled by closed source folks not playing the game, its just as hobbled by killing off their interactions and opportunities by being too hard headed about the religio-political idealogy.
And a fucking note to the Intel GPU Linux fanboys. The drivers have almost always been shit. And the hardware is low end garbage. I'll take a Linux box with Nvidia GPU *EVERY fucking time over intel gfx. Every time.
We`re all equal
Oh lordy - two (old) games can run natively on Linux! Surely the days of Windows as the superior gaming platform are numbered!
I would rather know exactly what software my hardware is running that having it run secret software that does who knows what. I don't particularly care how 'incredibly useful' that software proclaims to be. If the creators won't open it up to me, it almost certainly serves their interests over my own and is a tool to enslave me.
Need a Python, C++, Unix, Linux develop
Why does that matter? All that matters is that I have a perfectly usable set of computers that do what I want. I don't care if dear old gran or my neighbor uses it. I hope they would for their own benefit, but I don't care if they don't.
I second your observation about Intel drivers. Intel has invested a lot of real labor into Linux graphics and chipset drivers and the result is impressive. Running a sandybridge quad with Intel's integrated GPU and it is simply the most stable and nonsense free *nix desktop I've ever seen.
My next motherboard has a new requirement as a result; it must have HDMI or DisplayPort to leverage the integrated GPU, even though I will have a discrete GPU as well. The Intel stuff is just too good to neglect.
AMD has simply continued the tradition of ATI with half-baked unfocused driver work. It's a shame. I've never bought an AMD graphics device for exactly this reason. Thousands of lost revenue to AMD.
I can foresee the day when FPS no longer matter to me. Then, I will abandon NVIDIA and it's miserable, proprietary ways and rely on Intel.
If I actually cared about desktop market share that might mean something, only I don't. I don't care what other people use and what I use varies depending on what I'm doing.
Yeah, I had a sig once; I got bored of it.
How tyrannical that people who write code want a say in how it's used. The bastards!
And if it leads hardware vendors to avoid writing sophisticated drivers for Linux (a far more likely outcome), what then?
Why would nvidia want to deal with fanatics like this when they can just ignore them?
Calling Alan Cox a fanatic? I think you don't know what you are talking about. He does a lot for the Linux community and I think he is 100% right in protecting the GPL'd code. He was not being rude or fanatical in any way with his response.
A company wants to try to make their product work better on your OS, and you tell them to fuck off? Why am I not surprised?
Enjoy your ideological win. Likewise, enjoy your permanent relegation to second class status in the desktop OS world. Nvidia certainly won't cry themselves to sleep if their drivers don't work as well under Linux as they'd like. It's not as if losing the few thousand video card sales (integrated and discrete) that are made to desktop Linux users would affect their bottom line much.
It could change, however. If Valve start putting pressure on GPU manufacturers, maybe we will see a change. If only devices supported by all steam platforms get the Steam seal of approval, that could be a reason for the manufacturers to start paying attention. Not saying that this makes it all a great idea, just saying.
-- Lattyware (www.lattyware.co.uk)
Do they really have access to similar technology in Windows and OS X or do they have to provide it themselves within their drivers there?
They already good enough for Source engined games.
Some of the pre-teens that played Source games are now in college. Why not be even more intellectually dishonest and say that Intels Ivy GPU can run Wolfenstein 3D just fine?
The source engine was several years old even when it debuted with Half-Life 2 in 2004, since that games release was significantly delayed by the development of Steam.
"His name was James Damore."
Selfish fuckers doing what ever they want with the code they wrote. They should be working for NVidia for free goddammit!
for every other sort of driver many companies have no trouble releasing open drivers. graphics cards are not a special case.
But this is not about the API, it's about linking your code with GPL licensed parts of the Linux kernel. This is nothing like Oracle vs Google.
Nvidia doesn't need Linux or to make drivers for it at all. The top two environments are OSX and Windows and it can ignore Linux completely if it must leaving you with some shitty integrated video adapters. Between negotiating terms or heavily modifying the driver to fit the GPL taint (probably removing functionality) and whatever else it may simply ignore the new functionality since while advantageous it wouldn't effect the position of NVidia at the top of the video heap and most of the cards that would take advantage can't compete with Nvidia anyway. The bug is really in how Linux is licensed not in what NVidia is doing, but there is nothing stopping Nvidia from taking linux sources removing all of the bits it doesn't like and licensing the changes with the library exception and plugging its kernel module into that effectively creating their own branch over which GPL cronies have no say over since this is all GCC has really done by creating the standard library. As long as Nvidia plugs into these 'changed' hooks and not the originals everything still works.
The GPL is preventing that corporate psychopath from taking what he wants with his power and instead establishes a level playing field.
The attitude that closed source developers trying to deliver their software to Linux users are possible "corporate psychopaths" is why Linux will always have issues attracting third party developers.
I can't believe that this actually got modded up, but I'm glad to see it did.
This is priceless. NVIDIA is trying to keep their graphics drivers up-to-date on the linux platform and are basically told to fuck off. Everybody wins here, right?
And we stand around and talk about how patents are blocking progress?
The only great solution? I'm using a Radeon at the moment in Ubuntu with no problems what so ever with great performance in both applications and games, just because some people remember how bad ATIs driver where 10 years ago doesn't make their experience valid today.
As far as i know, the interface of an API is not subject to copyright and is therefore not subject to the GPL or any other proprietary licensing agreement. Sun lost that lawsuit. If all they do is call the api in the kernel, they have not violated the GPL. They would have to copy the implementation of the api in order to infringe.
Did that case test whether, if a given implementation of an API is covered under the GPL, code making calls to that API, when those calls go to the GPLed implementation of that API, is considered a "derivative work" of that implementation of the API? If the answer is "yes", then, whilst an API can't be copyrighted, i.e. you can't use "that API is copyrighted" to stop people from re-implementing the API, the code calling that API can't use the GPLed implementation unless it is itself GPLed.
It's not the API, they are completely free to copy the include file and implement their own version of the API and release it under whatever license they want. It's only if they want their module to link with the specific code paths in the Linux kernel that this API exports that they have to abide by the GPL.
You don't even need to focus on the derivative work aspect in this instance. "Linking" to an API allegedly creates a derivative work, but I don't recall "linking" ever having been ruled to fall outside of 17 USC 117(a). I especially don't recall an instance of "linking" or otherwise inserting a hardware driver ever having been ruled to fall outside of 17 USC 117(a).
(emphasis added)
If you look back to the CONTU report that resulted in the addition of this exception back in in 1978, you'll find this little gem:
CONTU Final Report, Chapter 1 (emphasis added).
Between this provision and the clear uncopyrightability of simple names such as the symbol name used for this API call, I think that Cox's belief is based only upon propaganda and wishful thinking.
I agree with you 100%, a patented piece of code has far more power being open sourced than being proprietary. In fact it's practically radioactive.
But it also has the potential for disaster, as IBM-SCO demonstrated. Trolls can sift through code looking for violations. Investors look at such things and weigh the pros/cons and sometimes decide that being proprietary affords more protections.
I'd love to have everything open source - and I always encourage it wherever I go. At the very least, code should go open source when patents expire. But businesses have a different perspective, and they see code in terms of sales, market and distribution controls.
The GPL is about the freedom of the customer not the vendor. You are already free to choose what tools you use. An end-user with closed or closable software that they depend on is not free, but dependent on the whims of the developer or the corporate strategy of the software company.
That is a very good argument for open source, but can you elaborate on how there's more freedom with GPL than with BSD (WTFPL and Apache)? While we really haven't released much as open source, the bits that are out have been licensed with Apache 2.0 (not my favourite, but I'm not complaining).
However, even if we disregard the idea of eventually publishing as an open source and just consider the core of our current project: our customer will end up with our source anyway, so I don't see how they would be dependent of our whims. Perhaps we could limit what they can do with it by licensing it as GPL, but I don't see the point.
It is what it is.
Well, JUST IN THE USA, that would be $150,000 (times three for wilful infringement) for copyright infringement FOR EACH COPY MADE.
Alan could download 10,000 copies of the driver from the NVidia site and buy himself an Island!
Intel 3D is "good enough" now for most purposes including less demanding games. I'd like a stronger graphics solution, but closed drivers is why I didn't buy an NVidia or AMD graphics solution for my last rig. Back in the day I bought a laptop with an ATI chipset because it WAS open (a high end Toshiba Tecra). It survived for six years with no worries about drivers being EOLed. Closed drivers suck... Ubuntu kinda made it work, but not for real geeks - brittle and inflexible, and increasingly not worth the effort. Closed drivers have made Linux a second class citizen on the desktop IMHO, but that doesn't have to be the case anymore. It's a shame for those trapped at the higher end though.
I assume that by "force" you actually meant "persuade," right? Linux is offering this k3wl new interface as a carrot to graphics performance freaks in exchange for GPL-licensing their driver. If Nvidia rejects the offer and has their driver do the same stuff it did before this interface existed, the csonsequences to them are ... ? Alan Cox has them arrested and sent to the Gulag? If not, then please watch your use of the word "force."
Also, this is all based on the pretty radical assumption, that using an interface is enough to cause one side of the interface to be a derived work of the other. That may or may not be true, but I doubt you'll find a lot of unity of opinion on that. They might be able to get away with totally ignoring Alan's opinion, his veiled threat about the lawyers, notwithstanding. This shit is not clear-cut and if it ever gets to court (it never does) you'll see what a mess it is, and no matter who wins, half the people will be rightly calling the decision arbitrary.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
The GPL is a bad thing.
Then don't use GPL'd Software.
Really, it's that simple. Here, let me show you, it goes like this:
Don't like the licence of the software you're using? Don't use it.
See? Very easy.
Isn't it nice that we have a choice?
Thanks for stopping by.
We suffer more in our imagination than in reality. - Seneca
Yeah, it would probably end up being something that's better and more usable than Linux.
It would probably end up being like OSX. Which is fine, but it belongs to Apple not the community that built BSD.
nVidia has told the Linux community repeated, their drivers will be closed binary drivers, period.
Time to quit this BS crap nonsense, and just accept it. 99.999999999999999999999% users could not give a damn what license your software is, or if the source code is available or any of that. All they want to do is use their hardware.
This is simply being a bunch jerks to try to force a change in the operation of a company. They've told YOU to FUCK OFF! So lets just all move on.. Allow the use of whats needed to fix this mess and move on! GROW UP DEVELOPERS! This is not the school yard and you not get to try and bully back the bullies of the past.
GROW UP AND LETS SUPPORT the OEM's who are actively helping and developing drivers for thier hardware on Linux.
1311393600 - Back to Black
Does it matter the intentions of the person going through the code if some infringing code is found is it any more legal if it is obfsucated by compilers? Maybe if there is infringing code the patent holders of said code should be informed since it is their legal right to assert their claims. Maybe if this was the case where all code that holds patented material was to be availible to all to review but not implement the result would be the realization that no one can really innovate with the current system and force the market to correct it's self like capitalizim it's self insures?
A loop, by its nature, continues. If that didn't make sense, start reading this sentence again.
No, they don't have to provide it themselves, it's provided by the OS as it allows functionality between disparate GPUs.
I should probably post this anonymously, to avoid all the bad karma... ...but fuck it. Getting bad karma for this would just make me feel good as I'd know I've forced some people to think about the issue.
I agree entirely with what you've said. In fact, I wrote my own open source license, The Antiviral License. The section "Lack of Silly Distinctions" is especially relevant to this discussion.
I'd thought about writing such a license for quite some time, but finally decided to do it after needing a function to calculate MD5 hashes for a Minecraft classic server I was working on. I didn't specifically need a non-GPL function, as I had no intention of distributing the code, but I like to leave my options open. ...but every freely available implementation I could find was GPL.
So I set about writing my own from the reference documentation, which I assumed would be easy since I'd done the same for SHA1 and following the reference documentation was easy. I found that the documentation for MD5 provided example code, but its ambiguous licensing terms rendered it useless. (I forget exactly what, but it's something stupid like mixing statements of "public domain" and "all rights reserved.") The documentation also left a lot to be desired when it comes to endian issues. It explicitly says to use big endian for this and little endian for that, then says nothing at all about a couple of other things, and given the nature of the algorithm it isn't something you can just figure out by seeing where the math goes wrong. If it doesn't give you the right answer, the answer you do get gives you no clue whatsoever about where you went wrong.
So after trying random combinations of endianness for a while, I give up and decide to consult the reference implementation to figure out the correct endianness. However, the code is blatantly unreadable, and after trying to understand it for an hour, I'm no closer to figuring out the answer to my simple question about the endianness of one part of the process.
So I look at the code for the GPL md5sum program. Interestingly, it strongly resembles the reference implementation's code, but claims to be a copy of someone else's implementation which is public domain. So I find that person's code, and he freely admits to copying the code from the reference implementation, claiming that doing so is OK since it's public domain. (...and it might be, but it might not be. Like I said, the licensing terms are ambiguous.)
Indeed, every implementation of the hash algorithm I could find appeared to be a derivative of the code in the documentation. ...and, like I said, it's pretty much all picked up the GPL licensing terms for some fucking reason, turning it into code that I can't use. Eventually I simply had to resort to making random changes until finally the code started spitting out the correct answers. The correct endianness was obvious in retrospect, which probably explains why it wasn't documented.
So, while I was planning to release my code as public domain, as I initially thought that attaching any license to such simple code was dumb, I eventually realized the GPL people are being every bit as dumb every day, and it's time people started doing something about it. So I decided to use the license for anything I release. Insisting that people not use my small little functions when they choose to spread the GPL virus is certainly no worse than insisting that I use the GPL just because I use one small little function in what is otherwise mostly my own work.
The MD5 code is available here if anyone cares. Also some SHA1 code and some FFT code there. IIRC, FFT code is another area where everything is infected with the GPL, which is unfortunate as the algorithm itself, while not anything particularly difficult, seems to lack
...or didn't pay for... specifically because of the closed drivers. :P
Intel graphics chips are awful and the ATI open source drivers are still a complete joke. If you want even moderately decent performance you need the closed source drivers. Congratulations on making Linux worse in an area where it needs all the help it can get.
Intel fine for games that matter, at reasonable gfx quality. Only freaks care about running the latest Call of Modern Madden 17 or whatever at the highest possible detail levels at 2560x1600
Climate Progress - Hell and High Water
Why does that matter? All that matters is that I have a perfectly usable set of computers that do what I want. I don't care if dear old gran or my neighbor uses it. I hope they would for their own benefit, but I don't care if they don't.
If what you're doing with it only includes things that do not require broad support, congrats. If on the other hand you'd like to still play games on a PC and not have to reboot to Windows, this stance is in fact one of the things that relegate us Linux users to second or third class status.
It is a legitmate question as to why Nvidia doesn't open source the drivers or write new open source ones. The most logical thing is the chicken and egg problem of there being no money in it because there are no users, and no users because there isn't enough support.
We have awesome desktop environments, the same browsers (or better) as every other OS, and generally the same hardware support. This is the one last thing that always results in a "nope".
"Can I play games on it?"
"Only if you want to play ancient games over a decade old, or humble bundle games."
"So, nothing made in the last 10 years?"
"Want to fiddle with WINE?"
"Nope."
End of discussion.
I was raised on the command line, bitch
"Nemo me impune lacesset"
Can you guess how I know you've never worked in a non-Windows shop?
And this is why, you are an idiot.
Really, fuck you.
If you do not like the GPL, don't use it. But, I bet you have never contributed a thing in your fucking worthless life, and just like to bitch.
If you really feel that strongly about it, don't use the software released under the GPL either-- nobody is forcing you to benefit from the efforts of others who want to protect their work.
You complaining that I and others want to ensure that someone doesn't steal our code-- code you probably use every day, but have never contributed to-- shows you are a self entitled fucking moron.
Fuck you.
Hey, wha... what? They've got a bunch of coders just waiting to help them, and yet they want to sit in their proprietary gheto... and not only that, they want to force the kernel developers to forgo developing better ways of doing things just so they can keep on with their brittle and consumer-unfriendly way of doing things. I suppose change IS scarey, even if it's for the better.
...except for the fact that you can't take GPLed code and turn it proprietary as you suggest. That's one of the central points of the GPL.
The GPL is a bad thing.
Not because it's viral, because it's become much worse. A religion, and alas religions have their fanatics.
APIs GPL only? Seriously guys, WHAT THE FUCK?
Until today, I thought the anti GPL crowd just had sour grapes. This is bad, and a perfect example of what folks have been complaining about. What a mess.
"Who the hell would expose their proprietary code to placate less than one percent of the desktop market share?"
Intel
AMD/ATI
That's number 1 and number 2 for most GPUs sold in the market.
Paying taxes to buy civilization is like paying a hooker to buy love.
No, this is why it's GOOD, and why many developers, myself included, will not work on non-GPL projects.
Most contributors to the linux kernel are paid by their bosses to make these contributions.
As a commercial developer GPL means I won't look or touch a GPL 'API' project let alone contribute anything to it because when I reference it all of my propritary shit gets sucked into GPLs uselessly vauge definition of derivative work. For godsakes I have every incentive in the world to send in my patches so I don't have to deal with maintaing deltas.
I have seen LGPL projects spring up and surpass in popularity functionality of GPL analouge it replaced. There does not seem to be any lack of users willing to contribute LGPL code back into these projects.
I have seen LGPL maintainers go through great pains to keep GPL tainted code out of the project... seems like an extraordinary waste of talent and resources to have these crappy disputes because a few purists refuse to acknowledge reality that industry is footing the bill for most of our open source code.
Say this again when NVIDIA GPUs stop being picked for android mobile devices...
You are aware this features is about copying data between framebuffers of multiple GPUs? This isn't going to stop nVidia being chosen for android mobile devices.
I think that you have a grudge against the GPL for some reason, because why else would you cast aspersions such as "clusterfuck" on the GPL with respect to the legal definition of derivative work?
How is the GPL to blame if the courts have not defined the term to your satisfaction? The term "derivative work" is contained in the Copyright Act, and the responsibility for defining it precisely belongs exclusively to the legislative branches of each national government, and when they fail to perform their duty, then the definition will fall into the hands of the courts, but under no fair analysis can it be said that it is up to the authors of the GPL or any proprietary software license to define a term which is contained in national and international law.
i don't know ... what's a non-windows shop? how many companies can get away with producing zero software that runs on windows? i'm not a windows developer and i've never worked in a company that primarily produced windows software.
anyway, that doesn't even matter. the issue is that once GPL gets inside the firewall, the company has to track where and how it's used and make the necessary consolations when it's used. they have to ensure that the GPL code is never used by code for which they have a license to use but not to distribute.
it's very easy to make mistakes and get into violation of the license. most companies just so "no" to begin with to avoid the headache.
It has dawned on me over the years of reading slashdot and following the community that GPL enthusiasts are rarely competent at business. And for those who are wondering, this is primarily why the year of Linux on the desktop has never happened, and is never going to happen.
There's a reason most successful tech companies are the ones who follow standards, whereas the companies that implement proprietary solutions have died off or been marginalized. Companies don't follow standards necessarily for the the Microsoft reason of Embrace Extend Extinguish. They do it because they know it will help the adpotion of their product (the degree of help varies). They do it knowing full well that standardizing goes both ways: it can win them customers from a competitor who's also standardized, or they can shed customers for the same reason. But they know that if they don't standardize, they wouldn't have even a chance at those customers, irrespective of the quality of the rest of their product (Microsoft is an outlier due to it being a monopoly).
And they know that standards are not determined by ideology or by license agreements. Standards are determined by usage. ISO certification doesn't make a standard a standard. Critical mass does (if anything, ISO just formalizes and cements it). GPL people don't seem to get this. They don't seem to understand that if you put out a method that you want standardized, cherry-picking the players who get to implement or dictating how it is implemented is the fastest way to irrelevance.
And they don't seem to understand that businesses are incredibly risk-adverse. Even talking about lawsuits, whether there's any actual standing, will be enough to discourage a business from adopting something, especially something not even close to having that critical mass.
That, and if this is just an API or headers, then it's not copyrightable, with precedent being set by Oracle vs. Google. And a copyright license therefore is inapplicable (or did everyone forget that GPL is enforced via copyrights). Not that it matters. Nvidia and others will just build their own proprietary interface and standardize that via the usual way, through a committee and RAND agreements with other fellow members. It's not like someone has a patent on the actual method.
"If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
By "mess" I guess you mean "ships more units in one year than desktop Linux did in 15 years".
The current Nvidia binary blob resides in a bit of a grey area. They have a binary blob that was originally written without looking at the linux specs, and is not a derivative work of the kernel.
They then have an open-source "shim" that is clearly a derivative work of the kernel that allows the binary blob (which has its own API) to interface with the kernel (which has a different API).
The GPL says that any derivative work must be released under the GPL. Normally (as a logic shortcut) this means anything linked against the kernel, however in this case there is a real argument that the binary blob is NOT in fact a derivative work.
However, now we have a new funky feature being added to the kernel. If the binary blob is updated to make use of it, then there is a reasonable argument that it now actually IS a derivative work of the kernel and thus should be released under the GPL.
The nVidia guys should stop being freeloaders on a GPL platform. There are BSD kernels out there, not to mention windows mobile (if you want an actual existing mobile platform). Linux is popular amongst the people doing actual FOSS development for a reason, and that reason is the GPL.
Since my reply was apparently considered to be a troll and his was insightful, can someone kindly explain what this insightful idea was, considering that he is replying to a message where I described how I would have sent the patches? Hate BSD how much you want, but even if you won't send a patch if you are not forced to, it doesn't mean I won't.
It is what it is.
The GPU is no anymore a peripheral device, it's more and more integrated on the same die as the CPU. Intel, AMD or ARM have plans to lowering the difference even more on how GPU and CPU will exchange data and will view the rest of the system. Basically, the CPU cores and GPU cores will share the same location into the architecture. This move is not so different from the integration of the FPU core into the CPU that have existed back to the 80486/68040 days. About ten years before the FPU integration, the FPU chips was a lucrative business: this part was so expensive that it was an option that only a few can buy. Not anymore, FPU less CPU are now only found in the lower part of the ARM embedded market. There is no x86_64 chip without FPU by the design of the instruction set. GPU is the next core to get the same integration.
What this means ?
First, since Nvidia don't own a licence to build x86_64 chip, the game is actually already over for them. There known that since the failed merge talk with AMD and explain why there focus on the high end and ARM chips since this time. This also explain why Linus Torvalds "fuck you Nvidia" response was focused on the Tegra ARM SoC despite the fact that the original question was about a x86_64 laptop.
Secondly, Intel and AMD known that sooner or later, the GPU core will be so integrated with the CPU core that there cannot be managed anymore by only a driver to do in a efficient way there new roles aside of the graphic display. The trigger point will probably be when the GPU will passe on the CPU side of the MMU (or something that look like this). At this stage the paging management for the GPU will be almost impracticable from within a driver to cooperate efficiently with the core operating system, not counting the brainfuck crap in case there are not developed by closely related peoples. This don't automatically say that GPU driver will cease to exist for some graphic aspect, but the GPUCPU part will end up into the kernel for the most critical aspects. It's easy to see why on Linux, access to the GPU from a proprietary driver is really not an option for the future (even if the current issue is only about DMA sharing data between devices).
The GPL is a bad thing.
Not because it's viral, because it's become much worse. A religion, and alas religions have their fanatics.
I wouldn't necessarily say the GPL is a bad thing, it's a choice that developers have the right to make, though in this case it is harmful to the user. In this case the GPL attempts to force the ideology of one party upon another, if that other party doesn't accept it who gets hurt? The user.
If this were BSD-style then both parties would be able to co-exist and not have to abandon their ideology in order to work together.
Let me put it a different way: Have you ever worked in a shop that did anything with Unix within the past five years?
Apparently they think it is worth it,
That view needs modifying to "They think it's been worth it, so far.
Once they start feeling they have been put at a disadvantage, there are two ways they could go: they could either have a flash of insight and start a programme to rehabilitate themselves, or they could decide that a kick in the nuts like this tips the balance and makes it not worth the effort of supporting their graphics cards any further - after all, it's only Linux: no big deal.
I doubt that Nvidia will hurt too much from pulling out of the Linux market - the question is, will the Linux users feel the same about losing a graphics supplier?
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
No, it really isn't. Most gamers run at 1920x1080, with the runner-up being 1366x768. Intel IGPs barely run Unreal Engine 3 games above Low/1366x768 at a decent framerate, much less Medium or High at the same resolution.
The Amarri pray for god, the Caldari pray for profit. the Gallente pray for peace, but the Minmatar pray their ships hol
exclusively.
Your argument only works in the case where Linux is the only operating system. Both terms of the argument (GNU/Linux, OS's and GPU suppliers) are equally interchangable. Although where one party is weaker in it's market share: either GPUs or O/S, then that one is obviously at a disadvantage and needs the other more than it's needed, itself.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
The GPL doesn't prevent your competitor from using it. It prevents your competitor from taking it, improving it, and using it directly against you. In the GPL he has to release the improvements back to the community. The entire 'community' benefits in the end because of the code you released.
With the BSD license, the competitor takes your code, makes it better then charges you to use the improved features. Granted there are a lot of cases where BSD code is good, but long term open computing platforms are not one of them.
In every case a freedom has a set of associated costs. If you use 'free' software to reduce business costs, there is going to be a cost when it comes to selling the software. It seems an odd position that you want the code to be 'free' as in no rules so you can sell it and be protected by IP, copyright, and trademark rules.
Linux is the kernel for all Android devices, which is a huge market at the moment.
If we're calling licences such as the GPL "viral" then we should refer to proprietary closed-source licences as "dead-end".
"Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
Or maybe because they want to keep selling GPUs to mobile devices...
Bingo.
The patent system is broken. Those who strive for new ideas and create new designs never seen before are far overshadowed by people patenting variations on blinking cursors, linked lists and sorting algorithms.
The patent system has congressional oversight - which is broken also. The patent system is abused by large corporations who push through hundreds of patents a year knowing that not all of them are truly unique.
I said no... but I missed and it came out yes.
No, it's the unfortunate condition of the law in its current form that will take a group of reasonable people, add a charter and a lawyer, and turn it in to an immoral and ahuman device. Your business might shit flowers and go on nature walks with Jesus today, but get bought out by Oracle tomorrow and start killing seals with a bat. It's a good idea to license your software before you release it. The GPL was designed to address abuses that had already occurred with open/free computer code at the time it was written. The corporate world doesn't have to play that game. They can submit to Apple's and MIcrosoft's will any day of the week and get rich from doing it.
Well, it's a crazy made-up IP law hack, so it's not going to have a perfect real-world analogy. A virus as an analogy is as good and as bad as any. The point is that it will infect your code, and it can be difficult to avoid. That serves MS marketing quite well. On the other hand, they would probably not use the analogy of their own software being like a blood-sucking parasite or a tax - yet both are pretty good analogies.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Now I have to admit that I have been playing Minecraft lately... but honestly, gaming is not a reason that I have a computer.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Of *course* a discrete card is going to spank an integrated one. However you're talking about a $250 card vs an entire laptop costing $500.
And unless you're doing CAD or gaming, the integrated stuff is just fine. My 2-year-old i3 with integrated graphics handles basic effects and does hardware-accelerated h.264. Realistically, that's 99% of what it spends its time doing.
"Please comply with the very permissive licence that we chose to licence our code under" does not amount to a religious argument.
No, the GPL is a restrictive license. Unlike the GPL a permissive license does not push it's own ideology on others.
The code behind them is protected, and as a kernel module you are derivative work of the code behind those APIs. Trying to suggest that the APIs (that is to say, the prototypes, which is what Oracle tried to claim) themselves are being claimed is ridiculous.
But this is just another anti-GPL, anti-Linux attack to try and skew things in favor of uncooperative closed source vendors.
How tyrannical that people who write code want a say in how it's used. The bastards!
You can simply choose to not share them in the first place.
I don't think you understand how dynamic linking works. I do not have to distribute libraries that I have dynamically linked my binary to. The end user can download them separately and that binary will work with those libraries as long as the interface has remained the same.
Jesus was a compassionate social conservative who called individuals to sin no more.
See: http://lwn.net/Articles/154602/ By using EXPORT_SYMBOL_GPL the kernel's linker simply prevents any kernel module NOT marked as GPL, which is using EXPORT_SYMBOL_GPL'ed functions, from loading. EXPORT_SYMBOL is not magically allowing non-GPL code, it just means that people can play ignorant and pretend they didn't know better. IANAL
And that is exactly what the GGP was saying. Open source is no capitalism. Which is not to say that capitalism is bad. It's just that open source works differently and Linux is open source.
He's pissed because if you don't integrate, the resulting operating system is a mess to develop, debug and maintain. Not to mention, that it's much worse for end users.
Which is an elaborate way of saying:
they did exactly what they wanted to do, in order not to share code like everyone else on the desktop (ATI, Intel) is doing.
I don't doubt that, but why are you throwing patents into the discussion, when patent protection is independent from the open source status of the code, as patents by definition must be disclosed?
The reason they won't go open source is that it exposes them to patent lawsuits, frivolous or otherwise.
I've been hearing that for probably a decade. I used to believe it, I don't any more. The reason for my change is that AMD/ATI and Intel don't seem to have had any significant problems in that regard with their open source gpu drivers.
So, either Nvidia explicitly knows they are violating some patents (and haven't don't anything about it for ~10 years) in which case they are deliberately sitting on a ticking time bomb anyway, or it is just misdirection.
When information is power, privacy is freedom.
And while GPL may not be viral, it is my-way-or-the-highway.
Show me a license that's not "my way or the highway". In fact, show me any legal contract that's "my way or... you know, do whatever you want."
.
As far as I understand it, this is not an "interface" in the sense of header files. It's an interface to a particular hardware I/O use-case and is implemented in the kernel in real, compiled, C code. It's much like how the socket code in the kernel is an "interface" for user applications to use network hardware. While sys/socket.h might not be copyrightable, the underlying implementation in the kernel is.
I'm pretty sure this makes it subject to the GPL. Please correct me if I'm wrong.
Header files are a language specific concept. Not all languages use header files. Some languages just define the interface in another file with the same extension as the class.
If you expose methods the the "public" either as methods in a class or an interface then that constitutes an API. If you don't want the public to use your library without looking at your code base and therefor being "infected" by it, then don't expose your method calls as public in either your class or interface.You can use polymorphism to expose a generic method that can be transformed into more specific methods internal to your class. Using those methods would require having intimate knowledge of your codebase which would prevent a "clean room" implementation of a client to the library.
Another option would be to use a magic number or magic object type to "lock" your library from use by anyone without implementing a class contained within your GPL'ed codebase. Any client not able to reproduce the same object type with the correct attributes would fail to operate.
The GPL is a classic example of developers who have no real understanding of copyright and property rights working with lawyers who do not understand how software development works coming up with a license that those does not reflect the reality of either software development or the law around property rights.
Jesus was a compassionate social conservative who called individuals to sin no more.
I agree with your response. People who tell you what you would do in direct contradiction to what you said you would do so they can build a bogus argument are assholes and calling out their intellecutal dishonesty with straight-foward vulgarity is entirely appropriate.
But, if you take that personal shit out of his response and assume the general case, he does have a good point. It sure seems like that vast majority of BSD code re-users just drop it into their proprietary system and leave it at that. Even those like Apple who do contribute back to BSD projects do it explicitly so that they can picka and choose how much or how little they give back. The questions of what is "fair" or what is best in the long run are complex and pretty much unanswerable which is why BSD/GPL debates tend towards never-ending repetitions of the same talking points.
When information is power, privacy is freedom.
http://en.wikipedia.org/wiki/Tragedy_of_the_commons
Nothing more than a line in the sand.
APIs GPL only? Seriously guys, WHAT THE FUCK?
That's not what's happening at all.
The basic fact is: the Linux kernel sources are GPL licensed. This was an early decision by Linus, and no amount of wishing will change that. There are just to many contributors that would have to approve a re-license.
Now, the GPL is very clear regarding derived work: if you distribute such a work, it needs to have a GPL-compatible license and provide sources.
What constitutes a derived work for a kernel? Basically, calling any code from the kernel would create a derived work, so the Linux license contains exemptions for user space code that calls the kernel through the public interface.
However, in this case the nVidia driver would call an internal kernel function, that is not exempted, so this would create a GPL derived work. The function is so low level that it would create an intimate bond between the Linux kernel and the nVidia binary driver.
Even if the Linux maintainers would allow this, anyone that wrote any part of Linux could start a court case against nVidia for breach of license. Would that be a better outcome?
If the above was even one bit true, non-GPL modules would have been completely forbidden from loading in the kernel at all. But they are not, here is explanation why.
The derived work of the GPL kernel and non-GPL NVidia module is produced when the module is loaded. This is when the linking of both happens. It is very important to note this, because the "calling" thing you are using is just red-herring.
This derived work is allowed because it is done by the user of the system. The result never leaves the memory of the user's system, so it is never distributed. GPL explicitly allows the user to do anything, as long as it doesn't involve distributing the result.
It also means that GPL kernel + non-GPL-nvidia cannot be distributed together.
If you take a look of the code that compiles the NVidia module for your kernel, you will notice that the code does not contain any GPL code in itself. It may require some kernel headers and config files, but these have been established to not be copyrightable (and thus no need of license for them).
So, what is the problem?
NVidia can implement its own kernel (API and ABI compatible with linux) that have its own DMA-BUF implementation that uses the same API. This module would work on it. However it won't work on normal linux kernel.
The problem is that some kernel developers have implemented DRM system, that artificially limits the user in what he can do with his system. If he tries to compile a module that is not under GPL license, a selected number of functions would cause the build to fail. The freedom of the user is artificially taken away. Well, thanks to the GPL the user can hack the kernel and remove the marks of these function, however this is procedure that takes time and effort that are basically wasted.
This is what NVidia wants removed. These functions are not special in any legal way. All kernel functions called by any module are covered under GPL, because the whole kernel (including the files from BSD) is GPL.
What if I produce GPL code that exposes effectively the same API as the kernel, and the implementation of that API directly calls the kernel. Is that legal?
What if I was to then release the same code (or just the header files the define the new API) under a different license?
Because business/profit/popularity religion is so much better!
May Peace Prevail On Earth
Linux has a license (GPL) that states some requirements on what you can and can't do with it, this license is wrote that way so the code will remain free.
Riiight...because if someone uses GPL code in a commercial application, suddenly that GPL code can no longer be used by anyone for free? The source just mysteriously vanishes from the Internet, forever lost to the evil corporation which stole it?
:(){
They just can't put it in one of their proprietary blobs when they give it out to other people.
Put what in their proprietary blobs? As far as i can tell this is about linking with exported kernel symbols, not putting kernel code in the proprietary driver and distributing it.
Without the GPL, they would have taken this code and added it to their proprietary code bases and we'd never have seen future improvements of it. That's not a good thing, ever.
You would get the same future improvements with or without the GPL.
With the GPL, a corporation will just refuse to use the source outright, leaving you with only the GPL contributors to provide future improvements.
Without the GPL, you still have the contributions that you would have had with the GPL, but now there's at least a chance that the corporation will give back improvements to the code base, if only so they don't need have to fork the source and handle maintenance when the project makes a new release. Even if the corporation didn't contribute back, there is NOTHING stopping the original contributors from continuing development.
:(){
And yet not a single copy of bash or gcc anywhere. Not a single instance of linux or piece of hardware that uses linux internally. Not a single dell machine with a DRAC? And so on and so on.
Freedom is often a matter of give-and-take, unfortunately.
But this isn't freedom, the user now does not have the freedom to choose a proprietary driver.
There's something to it, as well ... closed graphics drivers have been one reason "why graphics on Linux sucks," which has prevented linux devs from fixing the problem in the first place.
So allowing the user to choose a proprietary nvidia driver shouldn't matter anyway because they could choose an open source amd driver which - if what you say is true - should be vastly superior. Don't take the user's freedom, allow the user to make the choice.
Yes, normal system calls. nVidia wants to link against internal kernel functions.
...and that's despite the BSD's which are open source and would suit nVidia better. Why? GPLed code has more market share for exactly the reasons nVidia is bitching and moaning. nVidia can enjoy their userspace second-class citizenship - they really don't belong in the kernel and it's high time they were kicked out of desktop Linux too. The kernel guys really should have left the market open to anyone who actually wants to play ball (ie. Intel, and perhaps ATI back-in-the-day would have stayed open without the closed competition. Hell, perhaps even a niche player like Matrox could get a leg-up again.
So you've never heard of GCC, or the GNU userland utilities that most Linuxes and BSDs (including OS X) use, or the Busybox userland utilities that all the rest of the (embedded, etc.) Linuxes use? All that's GPL, and (IMHO) more important than the Linux kernel (even though I'm not one of those folks who cares about calling it "GNU/Linux").
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
For most other hardware it has.
GPL licensors demand that others don't redistribute GPL code as their own.
What's that got to do with this situation? nVidia are not distributing GPL code, they are distributing a module that would link with GPL code on a user's machine if it weren't for the EXPORT_SYMBOL_GPL declaration, if the user changes this to EXPORT_SYMBOL it will link fine and they can use the proprietary driver, so what's the point of preventing users who don't recompile their kernel with that change from using proprietary drivers if they want to?
1. high end routers are all proprietary anyway, making the bsd licensing of some components irrelevant to the issue between proprietary and gpl.
2. android is also a fucking mess as a result. It's riddled with binary blobs that break, making upgrading devices to current versions nearly impossible. I'ts like building a house with toothpicks. I can see why the kernel devs want none of that in the kernel.
3. I'll bet the reason for it was that, at the time, linux was more easily portable to broadcom than any of the bsds, so linksys used it for the original wrt line. like it, there are plenty of modern home routers that suffer from blob disease, nullifying the point of open source in the first place.
if 'linux people' don't stand up for the reasons behind their licensing structure, they lose anyway as their project gets riddled with more and more blobs that cripple portability and debugging. better to stand up and fail than not to.
They don't have to. They can leave the GPL code as is, add GPL w/library exemption (since it is their work) to the tack on (remember GPL prevents you from limiting rights not expanding them..), and link their code to the new interface. This is exactly what every single program that links to the standard library (GCC) is currently doing regardless of it's license. Thus, they only have to "GPL" their glue code and connect to the glue -- the glue would be GPL and the proprietary module would only interface that thus no GPL violation -- the interface can be open source since it doesn't cause a problem. If it worked as suggested by you it would be impossible to link anything in Linux without it automatically becoming GPL since technically everything 'links against' the kernel libraries by extension. GPL lets you fork and branch the code all you'd like the GPL specifically states you can modify the software you just have to distribute the code.
Some of us are already there.
I actually learned that I didn't need non-Intel 3D (I'm not a FPS gamer), and I admit I am a little sad about this. Still, Intel deserve the extra oxygen and nVidia don't.
Awesome. That little gulp of oxygen really belongs to someone who isn't nVidia.
...and they're providing support for Linux out of the goodness of their hearts? What rot.
Because even though you would the average developer often doesn't - GPL is winning for a reason.
If you don't like the license of a particular software, don't use it. Is that such a difficult concept?
If you disagree with Microsoft's license, don't pay for it, and don't use it.
If you disagree with the Linux license, don't use it.
Feel free to write your own Microsoft layer, like people did with WINE. Or like how VMware reimplemented some things so that they can re-use Linux drivers. See? Instead of bitching, you get to decide what you should do. Isn't that the right way to do this shit?
There is very little benefit in having open source software which people can't alter and distribute because it would infringe on someone's patent. That is not open. Of course they could always write a statement promising not to sue over patent infringement, but that would water down the patent.
Then you are a fucking idiot. Even Microsoft uses and has written GPL code.
...and closed source drivers have helped keep Linux 3D second-class. Linux wireless is finally a first class citizen, and 3D is on it's way. Intel is there, and AMD is slowly breaking. nVidia will get there dispite the bitching and moaning.
You are aware they tried that right? Back in the days of Tegra 1 they decided that they wouldn't cooperate with Linux/Android and that Windows was the only OS they would support. That strategy worked so well they didn't sell any chips.
Linux IS required for their business. It's a MASSIVE share of their current business and they've bet the company on it's future. If they walk away from Linux they are walking away from the entire High Performance computing industry, cellular (Android) and almost all GPU based computing (almost all of it is Linux based scientific computing).
Maybe they can declare that the Tegra will only work under Windows Phone like they did in the past and see how far that gets them.
If you thought from a kernel developers perspective you'd see things differently. Development is HARD, and bug reports become pointless when binary blobs are involved. It's a colossal waste of time, and a crying shame. Linux has enough trouble making headway with out this bullsh*t, and the latest Intel solutions are becoming good enough (finally) for casual gamers. It's time nVidia was cut off from the Linux desktop... perhaps the other makers can gain an extra gulp of oxygen as a result.
Now I have to admit that I have been playing Minecraft lately... but honestly, gaming is not a reason that I have a computer.
Sure, and I don't game that much either. That said, lots of people do who are more or less trapped on Windows.
I was raised on the command line, bitch
"Nemo me impune lacesset"
I'm so glad for "free software".
I'll stick with BSD thanks.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
Which is why noone ever adopted this irrelevant nerd-toy... oh wait.
So why are they trying to control what software the end user wants to use? If the user wants to use a proprietary driver who are the kernel developers to exert control over them and disallow them that choice?
If the above was even one bit true, non-GPL modules would have been completely forbidden from loading in the kernel at all.
Nothing I said was contrary to what you said.
The derived work of the GPL kernel and non-GPL NVidia module is produced when the module is loaded. This is when the linking of both happens. It is very important to note this, because the "calling" thing you are using is just red-herring.
The whole purpose of linking a module is to enable calling code from that module. So I implied that.
This derived work is allowed because it is done by the user of the system. The result never leaves the memory of the user's system, so it is never distributed. GPL explicitly allows the user to do anything, as long as it doesn't involve distributing the result.
It also means that GPL kernel + non-GPL-nvidia cannot be distributed together.
If you take a look of the code that compiles the NVidia module for your kernel, you will notice that the code does not contain any GPL code in itself. It may require some kernel headers and config files, but these have been established to not be copyrightable (and thus no need of license for them).
Like I said: if you distribute such a (derivative) work, it needs to have a GPL-compatible license and provide sources.
Just using the code has never been seen as distribution, so I didn't mention that.
The problem is that some kernel developers have implemented DRM system, that artificially limits the user in what he can do with his system. If he tries to compile a module that is not under GPL license, a selected number of functions would cause the build to fail. The freedom of the user is artificially taken away. Well, thanks to the GPL the user can hack the kernel and remove the marks of these function, however this is procedure that takes time and effort that are basically wasted.
This is besides the point. The compilation checks are just there so people don't accidentally create derived works by calling internal kernel code (non-public interfaces). It would be trivial to disable those checks, but that wouldn't make it suddenly OK to call the internal kernel code, from a legal point of view.
This is what NVidia wants removed. These functions are not special in any legal way. All kernel functions called by any module are covered under GPL, because the whole kernel (including the files from BSD) is GPL.
This is incorrect. The Linux kernel is GPL, but has exemptions for calling functions/syscalls that are part of the public interface (otherwise all Linux apps would have to be GPLv2). Binary-only drivers that call non-public code are only allowed so long as they are not distributed with the kernel.
There is a legal grey area regarding whether or not dynamic linking GPL code constitutes a derivative work (FSF thinks it does). It would have to be decided by court, but using these internal kernel functions would likely be seen as creating a derivative work, regardless of any compile checks.
*blink* Yes, this... except it's actually YOU.
To be clear: if the nVidia driver would be a derivative work of the Linux kernel because it dynamically links to internal kernel code, then it would be illegal to distribute this driver unless it complied with the GPL. Home users would still be allowed to use it, but they would not be able to, unless nVidia violated copyrights.
There is and always has been an alternative BSD ecosystem, yet it doesn't have the goods you want. Contemplate why.
Not this one, yet, but:
1) at some point in the near future there will be multiple GPUs in mobile devices
2) there are other equally useful features in the Linux Kernel related with GPUs under GPL, if Nvidia decides to keep proprietary it will have to reinvent the wheel many times, and will eventually put itself in a very disadvantageous position compared to its competition.
I am really not understanding this. We use Win32API in Wine. The reason being that it is just an API and not Windows code. But the kernel API is different? Is this some sort of extension of the "statically link" clause in the GPL?
are to share what this $250, 2007-era GPU is? Or are you just pulling this out of your ass?
The 8800 GT
You would know that if you had anything of value to offer.
"His name was James Damore."
It's a good idea to license your software before you release it.
An idea that's my choice. Other people trying to beat my software with it's dogmatic bats, even just by pressure, is not appreciated. For a group that supposedly supports freedom so much there are quite a few who seem to be intent on forcing their ideals on others.
You have a nice playground called linux, and you ask everyone who comes to play in it to follow your rules, except for parts around the edges where you let other people make their own rules. One of the playground bullies comes along and says you should make the shiniest most fun part of your playground where you ask everyone to follow your rules into an "anyone else can make the rules" area. This bully says you have to do it because he needs to make more friends, and all the people he wants to be friends with play in the shiny part of your playground. You tell the bully that no, he has to make friends by being nice, not by making other people follow his rules, and he calls you a meanie doodoo head and says it's your fault he doesn't have any friends.
Face it, the only reason for DMA-BUF at all is to use multiple GPUs, some better than others. It will typically be an Optimus laptop with Intel + Nvidia, or maybe AMD APU + AMD GPU. But without proprietary drivers the bigger GPU is entirely pointless! Say you have an Intel IGP plus a nvidia GPU, if you use nouveau on the nvidia GPU then you lose so much performance and battery life it's useless and you're better off disabling it and staying on Intel. Unless you like wasting your money for a minor improvment with terrible inefficiency.
So, linux is really jumping the shark, I guess what's left is distros should switch to BSD just like debian/kFreebSD, starting with Mint. Unless this terrible situation is resolved.
You're comparing apples and oranges.
In the Oracle-Google case Google re-implemented the Java APIs and did not touch or use Oracle code, in this instance nvidia would need to bind to GPL code potentially trigger GPL's viral clauses.
The Oracle case was about whether Google took Oracle copyrighted code to reimplement the API/Runtime of Java. In this case, Alan Cox is trying to dictate the license that a client of the API uses. That is a major overreach on his part. Unless if the API requires specific classes to be passed/referenced as value types which are only described inside of GPL'ed code and not describe in any documentation external to that source, he cannot say squat about licensing of the client code. I don't care if he thinks that the GPL gives him that right because the GPL does not overrule the copyright of any author especially anyone dynamically linking to a library. Effectively, what this means is that the majority of LGPL'ed code is really no different than the equivalent GPL'ed code because the GPL cannot dictate licenses of dynamically linked code. They can insist that their library is not distributed with the executable but that is as far as it goes. The GPL needs to be challenged in court on these grounds. I believe the linking clauses are an overreach and violate copyright of others.
If the API only makes use of generic value types then they can be used by anyone without having to reference any GPL'ed code. A long only the method signatures (the API) are referenced in your code and the API does not require any undocumented class objects as parameters then Mr Cox can whine and complain all he likes but he does not have a legal leg to stand on. APIs, whether being reimplemented or accessed by clients cannot be copyright.
Mr. Cox would have to use a "magic" class type known only to his GPL'ed code to lock down the API but that could be circumvented potentially with a clean room reverse engineering project to determine the structure of that class and reimplement it. Alternatively, he could have a generic initialization method that only actually unlocks the API if you override the abstract class with a specific implementation known only to the GPL'ed code.
Sorry Alan, but if you really don't want to share then don't release your code in the first place.
Jesus was a compassionate social conservative who called individuals to sin no more.
Right because they never update their engine. Ever.
Even cooler story bro, keep em comin.
Mod me down, my New Earth Global Warmingist friends!
They WROTE the fucking API asshole.
They can license it however they wish.
Mod me down, my New Earth Global Warmingist friends!
It requires crossing the user/kernel boundary multiple times, which is an expensive proposition.
One of the reasons Apples drivers and Windows drivers tend to be faster than Linux drivers is they live in kernel space; in both cases, it's mostly so they have an API to push pages out when they've done a calculations which they end up not using.
Copying to kernel space in the graphics pipeline, followed by copying back to user space to do the compositing, and the copying back down to kernel space to get it in the frame buffer so it can be displayed is a lot more expensive than it actually needs to be.
Forcing the driver out into user space is the "punishment" that's exacted because they don't GPL their driver, which as other people have correctly noted, they really can't because of cross-licensing agreements, patent violations which are hidden in code and protected by EULA from reverse engineering to discover the violations, and licensing for things like H.264 and the rest of the Sorensen CODECs.
That's funny... I recall the judge cleared that all up. What kind of stretched strawman are you trying for here?
The kernel devs already have a legally tested copyright to the Linux kernel source. This is NVidia trying to license their API and failing. Why defend them? Oh and it's rich for you to call Alan Cox a hypocrite while you incorrectly tell him what his chosen license means.
this is typical FUD. ALL license use must be tracked this way..
The kernel developers extert no control over the users. They "extert control" over what API they want to become public and therefore will have to be supported BY THEM forever (not by NVIDIA, who don't give a damn about supporting the user, as you can see every time they release a new GPU and stop supporting the old one in their "proprietary driver", and also don't give a damn about the progress of Linux, as you can see with their obsession not to share anything). Nothing is preventing NVIDIA from writing a GPL module glueing the internal API to their drivers (which is what has always happened until now). The difference is that in this case the onus of keeping the glue module up to date with the changing internal API would fall on NVIDIA, while making the internal API public would mean that the weight of supporting the API forever is carried by the kernel developers.
On the other hand, you'll see that in the end the API will become public anyway. Linux already has APIs to write userspace drivers (FUSE, CUSE, UIO, ppdev, libusb...), so unlike what you believe kernel developers have nothing against people developing drivers out of their "control" by principle. It's just that they want that to happen with a proper API and not with a wildcard access to the kernel internals.
that is EXACTLY what a license does. It pushes a set of restrictions onto the user as a condition for using the software. ALL licenses do this so they are all ideologically driven. The only exception would be public domain..
well hey they were the dumbasses who put those secret bits into the driver instead of into the silicon where it belongs!
It's not tainting third party software any more than binary only blobs taint gpl software. It neuters the users' ability to debug and port which are fundamental rights under the gpl. A lot of devices are sold now that say 'open source firmware' on the box, but what they aren't telling you is that the binary only drivers basically require the firmware as shipped and make it impossible to truly repurpose the hardware.
i'm talking about using GPL in a product the business is trying to sell, not using GPL software within the company.
there are many common OSS licenses (MIT, apache 2, BSD) that essentially say you can do whatever you want as long as you retain the license text.
1. as opposed to proprietary morons at nvidia who hide their secret bits in the driver of all places where they can be teased out by anyone with a debugger and binutils?
2. the world decided that microkernel performance impacts aren't worth the benefits a long time ago. give it up already.. All modern os's have graphics card components in the kernel. X11 does not suck any worse than the rest.
3. at least you have the source for your sticks. if you choose you can fix it. you can also port it to whatever system you have later on. can't say the same for binaries..
4. infinite stability brings progress stagnation. it's nvidia who needs to step up to the plate. they don't even need to hire any developers, just give docs to nouveau.
5. people like you seem to love high latency. The reason most of that is in the kernel is to cut down on that. userland drivers are sloooow.
they're still telling you what you can do.. they're ALL restrictive in some way. if you must complain about the gpl then you must also complain about nvidia's.
..and why the hell would you want this? so you can have a trashbin to dump all your little secrets in because you're too lazy to work at keeping them where they belong? keep it in your silicon, or just admit you're a software company and produce userland binaries.. now you have your stable ABI.
I want stable driver model as a user. Because I want to be able to install specific drivers without paying attention what kernel version they have been compiled for (even open source ones, which could be then distributed separately from the kernel itself).
At the same time, I realize and acknowledge that not everything can be released as open source, so I'm Ok with using binary-only drivers as long as they leave me in the control of the machine. After all, you cannot realistically avoid using binary only firmware even in Linux kernel itself.
Coding etudes
One word vote with your pocket , buy AMD and ATI , avoid the NVidia scammers until they publish full specs and gpl2 Linux driver
developer http://flamerobin.org
The distro you use should be the ones compiling things. All you need to do is hit update. If that breaks, it's the distro's fault, not the gpl's or the kernel devs'. If you prefer to do this yourself, well, it's a lot easier when the driver source is already included right? All it takes is a make all; make modules_install, with no horsing around with out of tree shims..
The firmware is a little different. In the Stallman mentality, it's also verboten if it's closed. I think it's a requirement for a multiplatform open source kernel to be fully open as it's the only way to retain enough control to progress. The firmware, in contrast, only runs on the silicon of the device and would be there regardless of what system the chip is used on. I suppose this is an arbitrary barrier as well, but I think it's the reasonable expectation to have. In contrast, having vendors like nvidia pollute an already open environment that doesn't belong to them with blobs that make it impossible for the owners to retain their imperatives for it is not.
Wrong, RTFA. It's not about public APIs at all, and you suggesting that means you clearly don't understand the issue at all, instead of using EXPORT_SYMBOL flag they have used the EXPORT_SYMBOL_GPL flag so the proprietary driver cannot link with the kernel API on the user's machine.
that is EXACTLY what a license does. It pushes a set of restrictions onto the user as a condition for using the software. ALL licenses do this so they are all ideologically driven. The only exception would be public domain..
Do you understand the difference between permissive and restrictive licenses or not? GPL is not a permissive license - as you suggested - it is a restrictive license.
The distro you use should be the ones compiling things. All you need to do is hit update. If that breaks, it's the distro's fault, not the gpl's or the kernel devs'.
From user POV: what if device is too new to be supported by distro, and I want to download drivers directly from vendor's site (e.g. NVidia has partner program where it releases beta drivers)? What if the device is too old and I can only get drivers on vendor's site, again?
And more importantly: what if cross-licensing agreements, which happen more and more in modern world, prevent the vendor from releasing drivers as open source? This is not something specific to GPU these days, soon this situation is going to be commonplace for CPUs as well, as CPUs are already migrating towards CPU+GPU in a single package. As a user, I prefer to have my hardware supported by binary drivers than not supported at all.
From vendor POV: Stable binary format will enormously help vendors to target Linux, reducing the number of "SKUs" to test and frequency of releases. Currently, only NVidia is willing to invest heavily in Linux graphics drivers, and you can see from TFA what attitude it gets in return. Meanwhile, if it weren't for excellent Linux support by NVidia (on par with Windows drivers), I personally wouldn't be using Linux at all, as I'm interested in demoscene and graphics programming. With stable ABI that would make binary drivers first-class citizens, it would be less expensive for NVidia to support Linux, and hopefully other vendors (AMD, PowerVR) would improve support as well - AMD's hardware is currently a pain with Linux (unless you are Ok with 2005-level feature set provided by open drivers).
Apparently some people don't mind being behind the whole world in terms of graphics hardware support. I'm not one of them, and while I value freedom that Linux gives me, if I am forced to decide between access to the latest technology and the said freedom, I will probably give up some control over my computer in order to be able to further develop myself in my areas of interest.
Coding etudes
NVidia can implement its own kernel (API and ABI compatible with linux) that have its own DMA-BUF implementation that uses the same API. This module would work on it. However it won't work on normal linux kernel.
The problem is that some kernel developers have implemented DRM system, that artificially limits the user in what he can do with his system. If he tries to compile a module that is not under GPL license, a selected number of functions would cause the build to fail. The freedom of the user is artificially taken away. Well, thanks to the GPL the user have the source and can hack the kernel to remove the marks of these function, however this is procedure that takes time and effort, that are basically wasted.
This is what NVidia wants removed. These functions are not special in any legal way. All kernel functions called by any module are covered under GPL, because the whole kernel (including the files from BSD) is GPL. NVidia doesn't want "something" from the kernel to be relicensed, it just wants the DRM on that API to be removed.
I'm just going a step further, the kernel doesn't need digital restriction management.
As for the making money part. Nobody can distribute GPL kernel and non-GPL kernel module together. It must be the end-user who creates this derivative work. So NVidia won't be able to use the "user loophole" on consumer devices like smartphones/tablets/etc. .
Actually, that applies to both of them.
Your post and your sig do not rhyme, my friend.
Name a BSD-licensed project which Apple modifies and has chosen to "pick and choose" what they give back.
I seem to recall their OpenCL on LLVM implementation as being only partially released at best.
But I'd like to argue a somewhat different point: that you're missing how things work in the real world.
I'm not really interested in yet another BSD/GPL fight. Sorry if my original post about never-ending talking points didn't make that clear.
When information is power, privacy is freedom.
My apologies, you are indeed correct.
pretty stupid idea tbh, one small GPL gateway module by NVIDIA and all is right with the world.
Except for the user having slightly degraded gfx, caused by Kernel devs not following their own guidance.
From the documentation included in the Linux kernel tarball:
Also see http://lists.freedesktop.org/archives/dri-devel/2012-January/018273.html :
Why, even read the original mail from NVIDIA themselves:
Part ideology, part pragmatism: Linus wanted to create a kernel with a license that would force everyone to play nice (i.e. share code/improvements), but at the same time he wanted user apps to be able to freely use the kernel as intended, regardless of their license. So he added a preamble to the GPLv2, clarifying that code that links to the public (userland) kernel interfaces is not regarded as derived from the kernel code.
Linux is capitalism stretched over an open source platform - this is no longer a dorm project. There's a enormous amount of corporate money in Linux development, to say otherwise is not reality.
The fact that many capitalists are taking advantage of Linux, while at the same time improving it, doesn't mean that you can say that the open source model of the Linux kernel resembles capitalism. It's so far away from the concept of capitalism, that thinking about it ("to each one according to his need, from each one according to his abilities") it's possibly closer to communism... except that it works.
I've been to IBM research and spoken with their developers - each project is evaluated and priced with expected commercial services and hardware sales before it gets developed.
And would IBM with its corporate culture have *dreamt* of releasing source code for free, which could be used by its competitors too, before Linux entered the scene?
I kind of agree with the rest of your post, but I think that just as NVIDIA poured millions into the development of their cards, so did their users in order to buy them, and they have all the rights to ask NVIDIA for first-class support, which doesn't happen with binary drivers (not even on Windows, as soon as your card ages more than 12 months. And this is true for AMD too, by the way).
AMD OSS drivers are catching up very slowly, but they're finally doing it (for instance, for R300 class hardware you get support from the OSS drivers that is comparable to the binary ones - and better, because unike the binary drivers, the OSS ones work out-of-the-box, still support older cards, get bug fixes and work with new kernels). Part of the code that is being written for AMD and Intel chips can be reused or adapted for other chips, and most important, it can be used to train new developers in writing a 3D graphics card device driver, which is something that until now was exclusive to the developers employed by some GPU manufacturer. This is an investment that won't go away when the next GPU architecture is out, and it cant' be ignored IMHO.
And what about Intel? They got to the point where they only release OSS drivers, with OSS drivers supporting their new hardware even before it comes to the market, and next-gen Intel GPU are sophisticated enough that many average Joes won't feel the need for a discrete GPU anymore. I wouldn't have believed this was possible just a couple years ago, yet we got there. So while I accept your understanding of NVIDIA's position, I don't share the "defeatism" according to which things must either work their way or can't work at all.
1) Read about the meaning of the EXPORT_SYMBOL_GPL() function. It's a matter of public APIs vs internal interfaces.
2) By your reasoning, if I sent a mail to NVIDIA asking them to change their driver's license to the GPL, and they refused, I could write the very same things you've written against the kernel developers. With the same inappropriate adjectives and derogatory replacement of terms that you've chosen to use.
Well said.
Slashdot was ringing with hurrahs when it was decided that APIs weren't copyrightable in the Google vs Oracle case.
Here we have something that declares itself specifically to be an "API" and suddenly it has to be jealously guarded against the heathens.
As far as I can tell, the GPL being asserted here depends very tenuously on the monolithic nature of the kernel. The enforcement of the GPL against code which merely links, dynamically, to a GPL library seems even more precarious: if you're supplying code using a published API and you're not even distributing the library concerned, it's hard to see exactly what rights are being infringed by the supplier. Or indeed how it's any different from any compiled programme being a "derived work" of the instruction set of the CPU.
When it comes to Linux "IPR", I don't see any real distinction between GPL FUD and Microsoft FUD.
Pulling out of the entire HPC market which is not captured by browser statistics.
I suppose they could bet on windows phone 8.
On the other hand, as a linux user I avoided Nvidia, only have it in one laptop I got for free. Yeah, I need Nvidia to keep the prices down, but as a windows supplier they will do that part just fine.
Right, because promoting open source GPL-compatible drivers didn't work for Linux.
Oh, wait, it worked. The Linux hardware support is overall quite good (with many hardware manufacturers working with upstream to contribute drivers). In fact, Nvidia is a minority - Intel has the biggest market share [jonpeddie.com] in graphic chips (avobe 50%), AMD/ATI is second. Both have contributed open source drivers which are getting better and better.
Unfortunately, "supported" in this case means that it somehow works in 2d but utterly lacks in 3d performance.
If you want graphic card with 3d performace in linux comparable to windows (for example for gaming under wine), your only viable option is nvidia with it's proprietary drivers.
There is no patented code, the US (and EU) patent law say so: mathematical algorithms are not patentable.
End of story. Now you only need to explain this to the patent offices and patent courst, which still believe it's possible to legislate Pi=3.
"The more prohibitions there are, The poorer the people will be" -- Lao Tse
The Intel drivers are a better example: they are rock solid, Intel has contributed tons toward advancing the graphics stack, etc.
It's nice that the drivers are open source. But why hasn't it lead to drivers with at least comparable performace to windows? You are aware that intel drivers are like 20% - 30% slower in 3d under linux then under windows?
As far as i'm aware, there are no open source drivers for any modern 3d card which would provide simillar performance under linux as the windows driver does under windows.
Actions speak more that words.
You can claim all you want that you would have sent in patches, but when you reject open source BECAUSE you had to actually do it, your claims can't be taken seriously.
Unless you mean to call yourself childish. Because you might as well have said that you wanted to go out to play, but because you were told to go outside, you decided you'd rather clean your room instead.
Mmmm. If I have time (and I can read this 'thread' without getting pissed off) I'll reply to others as well, but I just wanted to make it clear that while I dislike forcing people to do anything, I do consider the requirement to publish any changes made to GPL'd code reasonable. My problem with GPL is that I can't use it with non-free code at all (well, with GPLv2 it is possible, but not exactly pretty), even if I would (and do) happily share any improvements I've made to it.
To correct your analogy: In my story I try to go out and play, but my friend's aren't allowed to play with me, because my parents haven't converted to the same ideology. (I wrote religion, as it would fit the analogy better, but since I am already regretting writing anything to the comments of this article I changed it.)
It is what it is.
that thinking about it ("to each one according to his need, from each one according to his abilities") it's possibly closer to communism
No, with GPL, even those who do not "need" are given. And even if you are a struggling startup, you still get no exemption from your GPL obligations. Not close to communism in any sense.
Capitalism (and communism too) is based on the obsolete scarcity model - goods are scarce so rules have been defined for a "fair" exchange of goods. GPL takes into account that the scarcity model is not true any more for "software" goods, or "source code" goods. This is a major way in which GPL differs from capitalism and communism both.
But other than that, communism is a economic as well political philosophy. GPL doesn't need any of the political support needed by communism. The legal support it does need (copyright) is more readily provided by capitalism oriented polity than communism oriented polity. So, while differing from both capitalism and communism in the major way of scarcity management, it is ever so slightly closer to capitalism.
Bingo Dictionary - Pragmatist, n. A myopic idealist.
the secrets in their ethernet driver were bugs.
hw bugs, iirc.
world was created 5 seconds before this post as it is.
well, there definitely is less to maintain if there's no hw to use the feature.
world was created 5 seconds before this post as it is.
If you actually go and read the rationale behind the GPL, e.g. as provided by Richard Stallman, this is explained - with real-world examples. I remember reading it 10-15 years ago. :)
Without the distribution clause, someone in the chain is more likely to keep their bits proprietary. It's the tragedy of the commons pattern, without some ground rules people can gain an advantage by not cooperating. You could argue that's their problem, but as I understand things the parties most likely to be anti-social in this way are huge players that have the upper hand in some way. If you think about it, NVIDIA here is actually a pretty good example.
Also understand that it hasn't really been the norm in the industry that customers get the source code and the rights to use it.
This is what NVidia wants removed. These functions are not special in any legal way. All kernel functions called by any module are covered under GPL, because the whole kernel (including the files from BSD) is GPL.
This is incorrect. The Linux kernel is GPL, but has exemptions for calling functions/syscalls that are part of the public interface (otherwise all Linux apps would have to be GPLv2). Binary-only drivers that call non-public code are only allowed so long as they are not distributed with the kernel.
The exact text is " 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". "
As you can see there is nothing about calling kernel functions from kernel modules. NOT A THING. It is not specially excepted. Kernel functions are not exempt depending on whatever they are public or private interface, because a) modules are not user(space) programs; b) modules are not using system calls (sysctl).
There is not a single non-GPL binary-only kernel module that could be distributed with the kernel, no matter what API is used. This is even true for firmware, that by its nature doesn't run on the host CPU and doesn't use _any_ kernel api functions. (There is firmware that have been allowed to be included in GPL code.)
You are correct that binary-only drivers are only allowed so long as they are not distributed with the kernel, but this is exactly what the problem is. The license explicitly allows separate distribution, but the kernel DRM system enforces additional arbitrary rules on top of that.
how many companies can get away with producing zero software that runs on windows?
Most web companies?
the company has to track where and how it's used and make the necessary consolations when it's used. they have to ensure that the GPL code is never used by code for which they have a license to use but not to distribute
This is only true for code that you distribute to someone else, and only for derived works or use of a library. As long as you just use a program, you're in the clear. It's not really hard.
I'm sure plenty of companies don't get this, but that's fine with me - a competitive advantage for the rest of us. :)
>>hiring external companies and providing some docs for the Free drivers, all the while putting their main development effort into their proprietary FGLRX driver
That's not actually correct. We hired two full time devs to work on the open source drivers over five years ago, added two more last year, and another (total 5) this year.
Alan Cox and Linus, you guys are my heroes.
Except the driver.
NVidia needs to simply comply with the GPL and get it over with so that we can move forward and collaborate.
The binary blob they ship works quite well and for years was basically the only game in town if you wanted to game on linux. As I recall, I got better performance on an nvidia 9300m under linux / wine / nvidia binary blob than I did under Windows in World of Warcraft, even when I set it to DirectX mode.
For the record, they dont release the source code of their Windows driver either.
So you want nvidia to create new FOSS drivers that open up use in co-processing, but that have no OpenGL support, no shader support, none of the stuff that would actually make it useful for gaming or acceleration?
That may serve them well, but it sucks for anyone who wants to dual boot.
There's a reason most successful tech companies are the ones who follow standards, whereas the companies that implement proprietary solutions have died off or been marginalized
Not a falsifiable statement. Apple is "non-standard" in ways in which Apple is successful. Micro-USB? Installability on IBM compatible PC? Apple has other standard compliant behaviours. Similarly with Google, IBM, Facebook. Microsoft is an exception because it is a monopoly? Software world , especially non-enterprise one, is highly prone to monopolies. Everyone wants monopolies, and it is certainly possible in software world. And since potential reward is huge, companies try hard to get that monopoly. Not following standards is part of that "trying".
Examples of monopoly / overwhelming market success because of the network effect : Microsoft (OS, office), tally , Adobe (photoshop / flash), facebook, Google (search, advertising).
In enterprise market, it is difficult to get a monopoly. Oracle database is highly successful, but network effects are not as strong as in consumer software . Server OSes are still in healthy competition - AIX , HP-UX, Linux, Solaris, Windows, and more; all are significant players.
And they know that standards are not determined by ideology or by license agreements. Standards are determined by usage. ISO certification doesn't make a standard a standard. Critical mass does
The advantages that a standard could have, are negated by non-formal standards.Do-it-like-MS-word-97 as a "standard" has none of the advantages of a standard. Critical mass notwithstanding.
That, and if this is just an API or headers, then it's not copyrightable, with precedent being set by Oracle vs. Google
Copyright on the headers is not enabling Linux developers to deny Nvidia the right to link in this manner. Copyright on the whole of kernel is. Court cases have established that linking via header files makes a product a "derivative" product as far as GPL goes. Derivative products must be GPL or compatible - Nvidia's closed source license is not GPL or compatible.
Bingo Dictionary - Pragmatist, n. A myopic idealist.
As you can see there is nothing about calling kernel functions from kernel modules. NOT A THING. It is not specially excepted. Kernel functions are not exempt depending on whatever they are public or private interface, because a) modules are not user(space) programs; b) modules are not using system calls (sysctl).
True, this is also why most people regard Linux kernel modules as derived works.
There is not a single non-GPL binary-only kernel module that could be distributed with the kernel, no matter what API is used.
Generally true. Note however that the bulk of the nVidia driver was developed separate from the Linux kernel (for Windows actually), so by itself is not a derivative work. They use a GPL wrapper to interface with the actual driver blob. It's a legal grey area, that has been allowed by the Linux developers.
However, integrating the DMA functionality in the nVidia driver would require specific changes to the proprietary code that would tie it to the Linux kernel, and definitely create a derivative work.
This is even true for firmware, that by its nature doesn't run on the host CPU and doesn't use _any_ kernel api functions. (There is firmware that have been allowed to be included in GPL code.)
Loadable firmware has generally been seen as initialization data that needs to be loaded into a hardware device in order to use it. As long as the manufacturer doesn't restrict redistribution, firmware blobs are allowed in the kernel tree. There are people that disagree with this interpretation, but this is the general consensus.
You are correct that binary-only drivers are only allowed so long as they are not distributed with the kernel, but this is exactly what the problem is. The license explicitly allows separate distribution, but the kernel DRM system enforces additional arbitrary rules on top of that.
Actually the GPL states that you're not allowed to create a derivative work of GPLed code, unless it adheres to the GPL. Even separately, a GPL-incompatible LKM would be a derivative work of the Linux kernel, and the Linux copyright holders could take legal action to prevent its distribution. Under US copyright law, the rights holder controls the preparation of derivative works.
How the module ties to the kernel (dynamic linking, socket, pipe) doesn't matter. If there is an intimate bond between the two (sharing data structures, one can't run without functionality of the other) then it is a derivative work. The exception is when the module was written in isolation from the kernel, and was not solely intended for use in the Linux kernel (examples: the proprietary part of the nVidia driver, Windows network drivers that are loaded with the ndis wrapper).
If this were not so, I could create and distribute a proprietary binary that, when ran by an end-user, would download some GPLed code/binary and link to that to get free functionality. Note that the end-user himself would be free to create such a program, but he again would not be allowed to distribute it.
This is how I understand it, but IANAL. In the end, it's up to the rights holders and the courts to figure it out. So far there haven't been any cases that cleared up all the gray areas.
wrt to 'can only be seen' it is in terms of what the module identifies its license as being. Regardless it is the kernel developers restricting the functionality of the kernel - as far as the end user is concerned - to GPL software as opposed to proprietary software, even though it would not violate the GPL for the user to run said software. It is an attack on the freedom of the user to use the GPL to restrict the choice of the user to run proprietary software.
Opportunity for WP8 to implement a mini-Optimus which could use an ultra-basic graphics chip (just what's needed to render Metro) paired with the usual GPU (all packed in the same SoC with the CPU, as usual). This would make battery life skyrocket when non-gaming or non-H.264 tasks are executed. In general, Android will get ruined by the Linux kernel eventually (and Linux's unstable ABI). Google were smart enough to not use X.org and PulseAudio, but not smart enough to not use the linux kernel. This is because Android was designed in the Symbian era, when smartphones weren't meant to be updated (beyond bugfixes). Now that the iPhone and Windows Phone are getting updates, the unstable ABI of the Linux kernel is showing. Ooops! Google could have bought QNX and have the most badass mobile OS outthere. But no, LinuxIsAwesomeForEmbedded. PS: Read here for Motorola's efforts to upgrade their phones (read: re-write the drivers of the SoCs): http://news.cnet.com/8301-1035_3-57526994-94/android-users-outraged-over-motorolas-broken-promise/ All that FUD about how companies purposely don't upgrade their phones just got shot down in flames. It's not that they don't want, it's that they can't, because it involves significant rewriting of the drivers.
Yes he does.
No he doesn't, quite clearly EXPORT_SYMBOL_GPL prevents non-GPL modules from calling those functions, or do you not understand what that means?
If you want to use it in a commercial application, you have to give your improvements back to the community.
It's about cooperation and giving back, rather than just leeching other's work. Companies put lots of work into GPL software all the time, not because they're nice guys, but because they want to modify and expand GPL software for their own purposes. This benefits everyone. Sure, the companies might want to keep their derivative works closed, but it benefits everyone more to have it open. It's not like they have anything to complain about. It's free code.
BSD licenses, on the other hand, just encourage leeching.
If you don't understand any of my sayings, come to me in private and I shall take you in my German mouth.
You should have said that then instead of "behind the firewall" which certainly includes almost all the software used within the company other than the firewall itself.
They WROTE the fucking API asshole.
They can license it however they wish.
As the Oracle versus Google shows us, you cannot license/copyright and API. The Oracle case was about reimplementing/emulating an API whereas most programmers program "against" an API. Neither can be restricted by license/copyright. You can only dictate the distribution of the library itself. I am free to dynamically link against a GPL'd library. As long as I do not distribute that library with my program, I am free and clear because I did not actually distribute any of their code. References in my code to their exposed public API do not constitute a violation of the GPL as proven my the Oracle versus Google case.
If I were to release such a binary and a GPL'd library author tried to sue me, they would lose because you cannot copyright an API. The whole point of an API is for interoperability. API stands for Application Programming Interface. Any public interface in a library is an API.
Jesus was a compassionate social conservative who called individuals to sin no more.
That's funny... I recall the judge cleared that all up. What kind of stretched strawman are you trying for here?
The kernel devs already have a legally tested copyright to the Linux kernel source. This is NVidia trying to license their API and failing. Why defend them? Oh and it's rich for you to call Alan Cox a hypocrite while you incorrectly tell him what his chosen license means.
You cannot license an API. You can only license the implementation of an API and you could prevent static linking but not dynamic linking. The GPL attempting to prevent dynamic linking is an overreach. Dynamic linking, by definition, requires an exposed public interface which is an API for all intents and purposes. That is how dynamic linking works. With static linking, you are incorporating the other code with yours and it becomes one and has to be distributed as one piece which means it might have to be distributed under the same license as what you are linking into. With dynamic linking, you don't have to distribute the original library/kernel with your utility/driver and so you are not distributing anything other than client code referencing the API which cannot be protected by the GPL.
Jesus was a compassionate social conservative who called individuals to sin no more.
Portal 2 is source engined and came out less than a year ago.
Is that recent enough for you?
Portal 2 is old?
It just hit a year this month. Is 6 months to old? How recent do you want?
Portal 2 runs on IGP it does not yet natively run on linux. Either way nvidia's days are numbered.
Well, I had to go back to Nvidia, as my ATI adapter glitched constantly on my desktop. Like as in everytime I opened an application. And we're not even going to talk accelerated applications like full screen video. No problems now. And my 3000HD netbook will not work with ANY acceleration. And we'll not even talk of my prior ATI driver issues under Windows (yes, I keep it around for games, basically.)
It's not the years, honey, it's the mileage. - Colonel Henry Walton Jones, Jr., Ph.D.
I still can't wait until I can get Linux acceleration on my Intel video netbook. Seriously. Can't wait. It works on Windows.
It's not the years, honey, it's the mileage. - Colonel Henry Walton Jones, Jr., Ph.D.
Dunno. Nvidia has so consistently worked well for me under Linux, they are my go to cards for Linux and will stay so until something changes radically.
It's not the years, honey, it's the mileage. - Colonel Henry Walton Jones, Jr., Ph.D.
Why should copyright apply if they are just calling the API and not redistributing or copying the kernel code?
Well, there's a discussion with this post as the beginning, which appears to me, a non-lawyer, as if it's discussing whether the "derivative work" part of copyright law would apply to a work that is making calls to copyrighted code.
If the answer is "yes", then copyright presumably would apply if you're making calls to copyrighted code, which is what NVIDIA are doing.
If the answer is "no", then copyright presumably wouldn't apply, which would presumably not only let NVIDIA off, but also presumably render the GPL no more powerful than the LGPL - the LGPL covers something that seems to me fairly obviously "making a derivative work" (taking the code of a library, modifying it, and making a new library from it) but doesn't cover making calls to an unmodified copy of the library.
The FSF believe that
and I suspect a GPLed OS kernel loading kernel modules would be considered as "a program dynamically [linking] [a plug-in]", and using DMA-BUF involves the plugin making a call to the program (i.e., the Linux kernel, in this case). As I understand it, the license for the Linux kernel has an exception that allows some non-GPLed kernel modules, but the point being discussed here is that DMA-BUF is not one of the "calls to the program" that are allowed to non-GPLed modules.
Copyright law controls copying. If they aren't copying anything but just the API bits which are necessary to use the API
I guess the question, which I'm not sure has been resolved in a court case, is whether calling a particular implementation of an API constitutes embodying a substantial amount of copyright-protected code taken from the implementation in question.
(Do I have an opinion on this? Seeing people who sound as if they might at least know something about the law debating that point in the thread mentioned above firmly convinces me that the right opinion for me to hold is "the answer is whatever the courts end up deciding it is, at least until that decision gets overruled".)
I don't think you even know what an API is. You can't link to an API, if you think you can then you don't know what you are talking about, now sit down before you hurt yourself.
Yes, he should have said ""Linking" to an implementation of an API allegedly creates a derivative work of that implementation". Whether that's true, in law, is another matter; I'll leave it familiar to those familiar with the law in various countries to indicate whether it's true, untrue, or as yet undecided in those countries.
Portal 2 is source engined and came out less than a year ago.
Running on an 8-year old engine.
he fact that a specific game was recently released is just more dishonesty about the situation. Angry birds and Farmville were also recently released. Oh, they use old rendering technology? Exactly.
"His name was James Damore."
I'll stand corrected. And when I said "kind of crap" I didn't mean to disparage the work of the Free drivers authors, given the manpower limitations and whatnot I think they're great. I'm one of those folks who didn't buy any new graphics hardware during the Bad Times (tm) before Intel graphics and when ATI and NVIDIA were both only doing proprietary drivers... glad that Radeon 9100 made it the entire way. So know that the Free driver effort got at least one customer back.
If you're really from AMD and see this, I demand that you guys make AGP Radeons work with SMP again >:O I discovered that my venerable Radeon 9100 wasn't working quite right, figured it was because it's a decade old and grabbed an X1650pro and ... ack, turns out Accelerated DFS + SMP = computer locked up. Go directly to complete hardware lockups. Do not pass NMI watchdog, go directly to the power switch... I've been living without CPU1 on my ol' AthlonMP rig, but it's turned a machine that's still damn useful into one that's marginally useful (I can watch movies and play zsnes without any filtering, but that's about it... oh, to have CPU1 restored). Either that, or please... oh please, let us disable Accelerated DFS again...
HAL 7000, fewer features than the HAL 9000, but just as homicidal!
I've read enough incontinent dribbling from fuckwits that expect the earth for free and demand that others break the law to achieve it.
The person you replied to said that people can use proprietary drivers. They can. Those drivers may not be able to call this new API, but people have been using proprietary drivers on Linux for years.
Even if the drivers can no longer be distributed for Linux, you are allowed to write your own proprietary drivers that are derived from the kernel code and integrate closely to it. You just aren't allowed to distribute it.
Lets say you're the sort of lazy ignorant cunt that expects everyone else to do the work, doesn't want to use existing proprietary drivers on Linux and wont write your own. That's fine too. Just install another OS and use the proprietary drivers available for that one.
Nobody is demanding that you use Linux. Nobody is forcing you to use open source code. Nobody is restricting your freedoms. You're just being a muppet. Stop it.
IANAL and I suspect neither are you... By my understanding _none_ of this piviots on the dirrivitave work requirement.
The blob isn't really in questions so much, in and of itself it is fine. It isn't allowed to link with the kernel without being compatabily licensed. Think if it as "the blob isn't allowd to include the kernel" rather than "the kerne; isn't allowed to include the blob". The grey area comes because this is something the end user(s) do post distribution and the license only imposes duties on the distributor.
Because of the above loophole in the grey areas of the license (among others) the kernel creators "reserved" APIs for people who are not cheating via such means. Note that NVidia wants to let their "shim" have access to (e.g. use) the API code that is flagged "play nice or fark off" (e.g. GPL code only).
So having gotten by on a technicality, they want to have a larger, newly developed subset of the kernel included under the aegis of their technicality. The blob may stay as it is but it may not encroach beyond its little hole unless it comes clean.
Note that the new feature system (general use or GPL only designations) were added because of this sort of nonsense. So it's not like NVidia shouldn't have seen this comming. There is little point of them acting all surprised about it at this late date. They have been assuming that they woudl get a pass because "Linux needs them" but Linux doesn't _need_ anybody... Pride and the fall as it were.
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
No license can extinguish the copyright of another.
I'm confused. How does the GPL extinguish the copyright of any other code? If you don't want to comply with the GPL then DONT FUCKING USE THE CODE.
Is that so hard? Really?
The flaw is that you can't be sitting, coding merrily along, and suddenly your source has been (thunder crash) infected by GPL!. You choose if you want to use GPL code, and you pay for it in the same manner you pay to license any other code. The only difference is in the manner of payment.
Although I do like the "unintentional infection" defense - gee Judge, I was just putting together this video, and these copyrighted songs infected it! It's not my fault!
people are trying to blame Nvidia because of it.
Speak for yourself, I blame the kernel developers.
And you'd be wrong - the problem is the US legal system (and others) which has ruled that a derivative work is created by linking to a program library.
I doubt Linux kernel developers would be too cut up if that particular provision were overturned, since the benefits would be enormous (we could finally distribute pre-compiled ZFS kernel modules without infringing CDDL, for example).
Keep in mind Valve does revise the rendering software of the Source Engine. While the bare minimums may be the same, to get to the high end of what Portal 2 can show compared to the high end of Half-Life 2 or Team Fortress 2 requires better hardware.
The Amarri pray for god, the Caldari pray for profit. the Gallente pray for peace, but the Minmatar pray their ships hol
The most popular BSD (by a wide margin), OS X, uses a GNU userland.
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
Your rambling post ignores the context, this is about EXPORT_SYMBOL_GPL and the impact it has on proprietary graphics drivers. The linking is done on the end user's machine when they install the driver module so it would not violate the GPL whether that was EXPORT_SYMBOL_GPL or EXPORT_SYMBOL, but since it's the former it won't link at all. This restricts the end user's ability to use software (within the confines of the GPL license) which goes against the intention of the GPL which is to protect and extend freedoms to the end user.
You do not choose GPL when you want to interoperate, for that you choose LGPL or one of the MIT/BSDs. You choose GPL when you want only GPL licensed code to link with your code.
Are you sure? I've googled around a bit and it seams like this has to be implemented in the drivers, i.e earlier amd cards could only switch between two amd cards and not between amd and intel while nvidia could switch to intel so I guess that there was some collaboration. And evn if it's built in, does it provide exactly what dma-buf does?
And this is why graphics support will always be a third class citizen on linux.
Congratz!
's/always/currently/g'
Larabee my have failed. But MIC survives. If demand exists (big IF), I can imagine in the not so distant future, a startup discrete graphics card company, or Intel itself, bringing a 96 to 128 core MIC type graphics card to market, with wholly open source drivers. The performance wouldn't be nearly as good as an integrated GPU from AMD/nVidia, but it would be 'good enough' for OpenGL Linux applications, and anyone could work on the driver code. If the board design incorporated hardware support for something like either 3Dfx' original scan line interleaving, or nVidia's Scalable Link Interface, in a 2 or 4-way setup, the performance *could* be pretty phenominal, and open souce. I'd think 512 MIC cores with a good scalable driver would yield impressive 3D performance indeed.
This reminds me of the old remark about Unix (and Linux) being very user friendly, it's just picky about who its friends are.
The nice thing about not being beholden to commercial interests -- as open source isn't -- is that it doesn't have to compromise to make the lowest common denominator happy.
Ubuntu is hardly the only distro out there.
(Personally I don't give much of a rat's ass about computer games; when it comes down it they're all about playing against a programmer who is actually no longer playing, and a random number generator. Cheap thrills. For my other 3D needs I have a Radeon card.)
-- Alastair
"All this is doing is hurting ongoing performance on Linux, and people are trying to blame Nvidia because of it."
my peformance on linux is being hurt by crappy and sometimes unstable,(yet feature complete) drivers. Yeah, I go game, I do mine bitcoins and things like that, and I DID spent $500 on a then top of the line nVidia card.
They do make some nice cards.
Before this came up, I was crippled with a bug the proprietary driver had with QT that lasted for a few months, where QT apps would segfault X. What did I do? I ran nouveau for 3 months.
What can nouvea do? All resolutions, it can run a desktop, it can do 2d acceleration, animations, and render video quiete nicely. the 2d performance is actually better than nVidia binaries. It can also accelerate 3d feature complete, but slower.
What can't it do? Its sigifigantly slower at rendering 3d to the point that playing video games is not possible.(but it will render them correctly). It also won't run OpenCL accross my hundreds of CUDA cores.
Why can't the nouveau team match the feature complete capabilities of nVidia's binary? Its because they don't have the full specs of the cards. They don't know how the hardware is made. They have no documentation. The nouveau team has not even asked for source code, they simply asked for API documentation so they can write their own code.
So, seriously, from a practical standpoint, if nVidia open sourced their drivers, people like the nouveau team, instead of wasting their time making a 3rd party driver, would probably work on fixing and improving the nVidia driver, for free. They're would be these bugs.
So don't tell me that's the fault of free software, BECAUSE FREE SOFTWARE WORKS JUST FINE.
Redhat, and the other corporations, and thousands of grateful nerds who are greatly appreciative of their products will help with the drivers.
Oh, do fuck off. We can't all know everything. A tiny, tiny bit of context would not go amiss. Slashdot is supposed to be an inclusive news site, not an exclusive clubhouse.
systemd is Roko's Basilisk.
As far as I know, OS X uses very little GNU-produced or GPL-licensed code. XCode has replaced gcc with LLVM as the default compiler, and Samba has been replaced with an Apple-created SMB/CIFS server.
Fuck off Nvidia, specs for nouveau or GTFO.
It must be a relatively recent development, then. At least as of Snow Leopard, it was all GNU.
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
Practical honest answer from one Linux user which puts some emphasis on the "free stuff" (as in Freedom):
I've stopped buying NVidia gear years ago precisely because the only workable drivers were (and still are) closed source. It goes against what I consider important. Plus it made a maintenance of my PC harder (even with lots of effort spent on this by NVidia and RPM Forge).
From that time on I'm buying Intel or ATI - they might not have the best 3D performance, but FOSS drivers DO work (I've played say UFO Aftermath using Wine with ATI card and FOSS driver which is part of Fedora distribution, 1080p video playback on some Intel chipset works too). The only "sad" part was spending 12â on the game or on DVDs. :)
Thus, thanks to Intel and ATI and FOSS volunteers I do have options other than NVidia. So I think by not providing decent FOSS drivers, NVidia is hurting only themself.
hany
But this isn't about an API it is about an internal kernel interface of a monolithic kernel.
The legality of nVidia kernel blobs is at the very edge of copyright law. The fact that the blobs run on Windows is very significant, If the blobs were linux only binary blobs, someone would probably have sued nVidia
There is a reason that RMS created the LGPL and why readline is GPL and not LGPL. Copyright law is not as black and white as people (excluding lawyers getting paid to pontificate about it) would like.
Work bio at MMWD