Linus Denounces NDISWrapper, Denies It GPL Status 457
eldavojohn writes "On message boards, Linus Torvalds was explaining why NDISWrapper is not eligible to be released under the GPL even though the project claims to be. Linus remarked, "Ndiswrapper itself is *not* compatible with the GPL. Trying to claim that ndiswrapper somehow itself is GPL'd even though it then loads modules that aren't is stupid and pointless. Clearly it just re-exports those GPLONLY functions to code that is *not* GPL'd." This all sprung up with someone restricted NDISWrapper's access to GPL-only symbols thereby breaking the utility. Linus merely replied that "If it loads non-GPL modules, it shouldn't be able to use GPLONLY symbols." As you may know, NDISWrapper implements Windows kernel API and then loads Windows binaries for a number of devices and runs them natively to avoid the cost and complication of emulation."
You can't win this one, Linus (Score:3, Insightful)
Re:You can't win this one, Linus (Score:5, Insightful)
IIRC, that matters to people trying to report a bug: if your kernel isn't GPLONLY, then you will have a much harder time trying to get anyone to do anything about a crash. I think that is correct, since with NDISWrapper you just loaded a big blob of who-knows-what into the kernel, which can't help stability.
Personally, I dislike wrappers like that, which I have to use for the flash plugin on my AMD64 computer. It allows companies to say "yeah, we support AMD64, just run our plugin in this wrapper", which fails quite often. Linux isn't only on i686, so why should we accept binary blobs of code for that processor?
Re:You can't win this one, Linus (Score:5, Insightful)
Intel develops new closed undocumented architecture with a 16 core cpu. Similarly to current network or video cards, you need a proprietary driver to enable the super accelerated multicoreness. In order to enable the use of the newer faster computers, Linux vendors do what they did with the other proprietary drivers, label these drivers as "not part of the kernel" put them in a wrapper and ship their version of Linux with the proprietary drivers which, for now, intel is giving away for free with the hardware. For a while everybody is happy and content. The new 16 cores chip becomes the new standard. There are even 32 core chips on the market and the 64 cores chips are soon to be released all of which rely on proprietary drivers.
Suddenly, we hear that a large company, Lintelsoft, started by ex MS executives, makes a deal with Intel, a very lucrative deal for Intel, to license the drivers. Intel then says they won't give away the drivers anymore but you are free to buy the brand new Lintel Linux distribution. This distribution, which sells for 699$ a piece is all GPL'd except for those drivers that have become so standard that you need them in order for computers to run at a reasonable speed.
Open source programmers scramble to write free replacement drivers that work on their Gnubian distribution but only manage to make drivers that can run the multi core cpu's at 1/20th the speed as Intel won't release documentation or specifications. Linux is rendered mostly useless except for the Lintel distro, (which is also available for free and with sourcecode as Lintelora excluding the proprietary driver sources of course) You can always plug in the Gnubian drivers in the free Lintelora project and get a working computer but it will only run at 1/20th the speed of the commercial 699$ a pop version and isn't powerful enough to run the new Mozilaurus browser smoothly.
In this scenario, Lintelsoft would have effectively stolen Linux from the open source community, making profit with their source code and breaking all versions that are free.
How can we let anyone close up an obviously derived work based on some wrappers?
Notice that, even today I sometimes need to pay to get a fully working Linux from certain vendors, like Mandriva. (if i don't pay, 3d acceleration wont work.) I expect that kind of twisting of the law by commercial vendors. It surprises me that even Ubuntu is including proprietary video drivers nowadays.
What's worst is that legally in order to maintain copyrights you need to make reasonable efforts at protecting those rights. Legally if the open source community waits until the binary drivers become problematic before acting. Proprietary vendors will be able to argue legitimately that closed source code has been allowed in the kernel by the open source community for a long time now: You are not legally allowed to suddenly change your mind about interpretations to suit current needs.
Re:You can't win this one, Linus (Score:4, Insightful)
Fon, TiVo, and a few other companies distribute devices that run a linux kernel. To be compliant with GPLv2 they distribute their changes to the linux kernel, but the problem is that the hardware only runs a kernel that has been signed by the hardware manufacturer. That means that you can compile a new kernel using their changes, but can't load it onto the device.
TCPA is something that Intel and Windows are trying to do that would do the same thing for general-purpose computers.
That was one of the things that GPLv3 was trying to combat, but Linus doesn't want to use that license for the kernel, so there isn't much to prevent people from doing that in the future.
Re: (Score:3, Interesting)
32bit vs. 64bit has always been nearly completely transparent to the user on Macs (remember the G5 is 64bit). So it is possible to design a system where the differences are hidden. But of course a lot of that transparency is due to Apple having control ove
Re: (Score:3, Insightful)
As for loading a non-gpl module, that makes your kernel "tainted", and generally kernel maintainers will not even accept a bug report for something that has to do with a "tainted kernel".
I didn't mean that the kernel maintainers would jump to fix the issue, but with a tainted kernel, like using the nvidia modul
Re: (Score:3, Insightful)
There is a major difference here. NDISwrapper loads code that runs in kernel space. Firmware loading loads firmware to a device which runs it separately. A bug being cau
Re:You can't win this one, Linus (Score:4, Informative)
Re: (Score:3, Informative)
Re: (Score:3, Insightful)
Like in "Do as I say (use open source), but not as I do (use closed source drivers)"?
> but the driver for my network card
Get another card. Reward manufacturers supporting Open Source by supporting them.
> Trying to get rid of it will only restrict Linux adoption.
If you have to use closed source to just connect your Linux box to a network, then just fuck it and stay with Windows or buy a Mac. The whole point of GNU and Linux was to make a working _free_ system, not just
Which other card? (Score:4, Insightful)
Re: (Score:3, Informative)
Re: (Score:3, Insightful)
>> I am an open source advocate
> Like in "Do as I say (use open source), but not as I do (use closed source drivers)"?
No, as in I advocate open source, but am not a hardcore zealot. I have to work in the real world, and prefer function over ideals.
>> but the driver for my network card
> Get another card. Reward manufacturers supporting Open Source by supporting t
Re:You can't win this one, Linus (Score:4, Informative)
http://www.fsf.org/resources/hw/net/wireless/cards.html [fsf.org]
As posted elsewhere in this discussion. (Score:3, Informative)
by F452 (97091) Alter Relationship on 14:11 Wednesday 05 March 2008
Cheers to F452 for this information.
Re: (Score:3, Interesting)
How do I run this "GPL" solution on my Sparc-based Linux system? The card is PCI but the binary that gets loaded runs on Intel-only. So it's compatible hardware, and software that claims to be GPL, but the system is a doorstop.
So, you're hosed. That has nothing to do with me. NDISWrapper works for me. You solve your own problem, in ways that don't try to deny me my workaround.
NDISwrapper is not a bandage, it is a Typhoid Mary allowing proprietary software to infect the kernel.
Oh, get over yourself. It's
Re: (Score:3, Insightful)
If you allow NDISwrapper to be GPL, then any manufacturer can put a wrapper around proprietary code and stick it in the kernel. Graphics cards, modems, printer interfaces - a lot of hardware uses the processor to do some of the work and would like to
Re: (Score:3, Insightful)
Re:You can't win this one, Linus (Score:5, Insightful)
Re:You can't win this one, Linus (Score:5, Insightful)
Re:You can't win this one, Linus (Score:5, Informative)
it has been repeated in the thread several times already, but i'll try again (from my, outsider viewpoint, but i'd hope somewhat educated one
short interpretation by me :
kernel has a variable which denotes that it is gpl only - that is, the core and all loaded modules are gpled.
this shows to people trying to debug things that they can debug everything and there are no binary modules that break shit in unexplainable ways.
now, if a binary module is loaded, kernel notes in the variable that it is no more gpl only and breakages can be extremely hard to debug and impossible to fix. i guess you'll agree we don't want the kernel devs to waste time on such cases.
now, ndiswrapper itself poses as gpl, thus it does not taint the kernel, but it then loads modules inside itself...
so you get a tainted kernel that does not identify as one.
and that is the only behaviour which is going to change.
if i have misunderstood things miserably, correct me, thanks
Re: (Score:3, Insightful)
Logically it follows that ndiswrapper is a derived work, BUT the binary blobs its loads are not. I don't see how this is at all productive and it IS quibbling over pedantics. Whether or not its their right to be pedantic and counter-productive does not negate the fact
Re:You can't win this one, Linus (Score:5, Insightful)
I think you should know that you're engaging in the same kind of ideological wordmongering you accuse the other side of.
Look, I'm a pragmatic open source user. I understand the ideology.I generally agree to it. But not because of its perceived social Rightness, but because it's a reliable source of Good Bits. Its ideology supports methodology which supports good stuff like working kernels.
Upthread, I chastised a Free Software hyperbolist for being unrealistic and ignoring the practical side. Now I'm going to do the same in the other direction here.
The taint flag is a disclaimer of warranty.
What it comes down to is:
(BTW, that's not a real quote from any kernel developer I know of. It's just intended to express one good functional reason for kernel taintedness.)
See, no hysteria, no missionary fervor, no revolutionary speeches or dialectical materialism or any of that. Just practical reasons based on a balance of costs and benefits.
Re: (Score:3, Insightful)
Re: (Score:3, Informative)
Re: (Score:3, Informative)
Re: (Score:3, Informative)
There is legitimate cause to believe that NDISwrapper cannot itself be licensed under the GPL if it links against non-GPL code. Since the GPLONLY flag defines symbols that are only exported to modules licensed under t
Re: (Score:3, Insightful)
If there are any GPL WinXP wireless drivers, I could use it to load those, and still be 100% GPL.
This is basically saying that GPL code that allows users to load non-GPL drivers is not allowed, even though, as I understand it, the end user is supposed to be able to do ANYTHING THEY WANT with GPL code or binaries, and restrictions only come in when distributing. I should be able to use a GPL wra
Re:You can't win this one, Linus (Score:4, Insightful)
I bought 2 wireless cards this way and both needed wrappers and I went back to an ethernet cable and gave up on it.
I remember 10 years ago I was begging people to tell me which motherboard to get for a specific distro and no one would say (multiple sites and boards).
Don't insult me I know it's my fault but I know more that the average user does, and so if I had trouble I know they will.
Re: (Score:3, Insightful)
Linus has already changed his mind (Score:5, Informative)
-- Linus, in this post [lkml.org]
Re:Linus has already changed his mind (Score:5, Insightful)
This is merely how Linus goes about discussion, do we really have to keep taking posts off of the LKML and blowing them all out of proportion?
No he didn't (Score:3, Informative)
Excerpted from Linus mail of 29 Feb:
Re:Linus has already changed his mind (Score:4, Funny)
Re:Linus has already changed his mind (Score:5, Informative)
Re:Linus has already changed his mind (Score:5, Informative)
Again, no ones complaining that you're using it to load non-GPL code.
Re: (Score:3, Insightful)
It's not pedantic. It's avoiding a variable that could waste people's time. If the problem isn't the binary blob, remove it and recreate the bug. Problem solved. If you can only reproduce the bug when the blob is loaded... hmm... sounds like it's the blob.
Re: (Score:3, Insightful)
Er, this is
Re: (Score:3, Informative)
* Is ndiswrapper GPL? Yes
* Can ndiswrapper use GPLONLY code? Yes
* Can ndiswrapper "pass" GPLONLY code (export their symbols) to non-GPL modules? NO
* Can ndiswrapper "pass" GPL code without GPLONLY directive to non-GPL modules? YES
The third point is the one that was raised here and that needs to be addressed by either relaxing the GPLONLY directive or rewriting the code.
Look at OpenBSD for inspiration (Score:5, Insightful)
And, when you write an open driver, you can maintain it more effectively. You can check it for security problems. You can fix its bugs. With ndiswrapper, you are putting a completely unknown blob of code inside your kernel and trusting it. This is never a good idea when other alternatives exist!
So, use ndiswrapper if you feel that you absolutely must... But it shouldn't receive any official endorsement that would cause most users to be dependent on it. Kernel developers shouldn't think of the wireless driver issue as a "resolved" one. The ideal situation is to reverse engineer a free driver.
Re: (Score:3, Interesting)
Hello, that is some interesting information, would you care to elaborate (some links or other citations would be nice). I am authentically interested in your claim as I have never heard about such thing.
shim? (Score:3, Interesting)
-b
Re:shim? (Score:4, Informative)
The nVidia driver is also not considered GPLONLY. Your kernel is considered 'tainted' if you use it. You will get no help or support from the kernel people if you have a kernel problem when your kernel is tainted.
Linus wants ndiswrapper to be in the same class. And he's right to. Maybe it's GPL, but it's whole purpose is to load stuff that isn't right into the kernel.
It can load GPL-licensed Windows drivers (Score:5, Insightful)
Re:It can load GPL-licensed Windows drivers (Score:5, Interesting)
I bet the number of GPL'd NDIS drivers for Windows can be counted on one toe. I myself started writing an NDIS 6 driver for a chipset that has no native Vista drivers (although the NDIS 5 XP driver works on Vista x86) but have recently lost interest, despite almost completing basic functionality, because I realised I will never be able to use it under Vista x64 due to the OS's draconian driver signing policy..which cannot be disabled.
Re: (Score:3, Informative)
http://thebackroomtech.wordpress.com/2007/11/05/howto-disabling-driver-signing-in-windows-vista-64-bit/ [wordpress.com]
None of the workarounds you describe will work with x64 editions of Vista SP1, or for "boot drivers" in x86. I do plan to continue develop of the driver, but I doubt I will ever be able to get it signed using anything but the test certificate from MS. Still, will find out during testing...
Re:It can load GPL-licensed Windows drivers (Score:5, Insightful)
I'd have to disagree with his logic (Score:3, Interesting)
There may be a valid argument for saying that ndiswrapper can't be GPL'd, but this isn't it. In what context would this sort of reasoning be considered sound?
...and so on. The claim may be valid but this argument certainly can't be used to establish it.
--MarkusQ
Re: (Score:3, Informative)
The fact that they own the copyright on the Qt code and can therefore license it however the hell they want permits them to do so.
So what about GPL virtualization? (Score:3, Insightful)
Summary completely mistaken (Score:5, Informative)
It's fixed in 2.6.24-rc4 (Score:5, Informative)
http://kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.25-rc4 [kernel.org]
The battle is over, the discussion is at end and Linus has already signed off a change to restore Ndiswrapper functionality.
I'll side with Linus on this one (Score:3, Insightful)
for those who lack understanding... (Score:5, Informative)
The debate then is whether or not this should be considered a problem. The contributors who added many of the GPLONLY functions may have different opinions on the topic. Linus hints that the contributors for the USB functions would prefer a strict interpretation and deny ndiswrapper access to the GPLONLY kernel-level functions, because there is a perfectly good user-space API. But everyone involved agrees that ndiswrapper is will never live in user-space, because there's no programmer who would do it and it's a crazy idea anyway. Anyway you slice it, it's clear that ndiswrapper will get fixed one way or another, and nobody is accusing the ndiswrapper project of misusing the GPL.
In summmary, it's a tempest in a teapot: someone accidentally broke ndiswrapper, kernel API discussion ensues, Slashdot posts inflammatory summary, life goes on.
bullshit (Score:3, Informative)
Linus possibly has a say over whether distributors can simultaneously distribute the Linux kernel and ndiswrapper as pre-packaged binaries. But even there, I don't see a problem: ndiswrapper itself is under the GPL and complies with the GPL. The fact that it allows end users to link code under non-GPL compliant licenses into the kernel doesn't change that.
While I think it would be nice if we didn't have to use ndiswrapper, and while one can argue either way about the desirability of its existence, now that it exists, Linus needs to honor the letter of the GPL and not try to redefine the terms after the fact. If he wants to, he can always relicense his code under different licenses in the future.
Calm down, this is only about reporting bugs (Score:3, Insightful)
Re: (Score:3, Insightful)
And in today's lesson... (Score:3, Interesting)
It's kinda like the Quake III engine. That's been released as open source, and there's an awful lot of games out there that make use of it. But it still relies on a binary blob that is itself rarely released as free. That doesn't make the engine itself any less free/open.
GPL Process separation and derivative works (Score:3, Interesting)
Do not flame me for what I am about to write as it is my understanding of RMS' guidelines, if you have a problem with it, take it up with him.
To clarify what is and what is not a derivative work, the GPL and its supporting documents claim that a GPL work is not how self contained as it may seem i.e. shared libraries or loadable modules, but whether or not it inhabits the "process space" of the GPL work.
When a non-GPL module is loaded into the process space of a GPL application, it violates the GPL license of the application. This is why NDIS wrapper violates the GPL because its job is to load non-GPL code into the process space of the kernel, thus tainting it.
Do I agree? I'm not sure as I can see both sides of the argument. One side is that the module is self contained and isolated. The other side is that one of the purposes of the GPL is to protect the work of the people who contribute frm being unfairly used. It can be argued that the NIC card vendors who's drivers are enabled by NDISWrapper are unfairly enriched by the work of GPL developers in that their proprietary hardware is supported on a free platform without themselves being free.
It MIGHT be GPL. (Score:3, Interesting)
Say, I release a game which requires DirectX, links against the proprietary library, depends on it. It can't be GPL. But if I make the game run on both DirectX and SDL, it's enough to make it GPL. It's not crippled by lack of DirectX, it's just a user's choice, a preference to use it.
This way NDISWrapper just -could- be GPL if only someone writes GPL counterparts of the modules it uses. It would mean then, that it's a generic module wrapper which can load a variety of modules, GPL or not, and it's up to the user to feed it the restricted ones in place of the free ones. It may load any -generic- modules, but it should have no provisions towards any specific restricted modules without having an equivalent free part.
Good (Score:3, Insightful)
"Dude, just like load it with ndiswrapper and move on with working wifi!"
That attitude, I maintin, is actually harmful in the long run.
Does it even matter? (Score:3, Insightful)
Who really cares if its bla bla bla compliant?
Why we need NDISWrapper for Linux (Score:3, Interesting)
That is the Achilles heel of Linux, lack of third party driver support. Heck that's the Achilles Heel of any Non-Windows operating system be it OS/2, BeOS, AmigaOS, even Mac OSX. One OS, ReactOS, is trying to implement Windows' WDM driver model in GPLed software so that ReactOS can use Windows drivers. I would like to see Linux have the ability to use Windows drivers via some GPLed software, so Linus can borrow that from ReactOS, or write it from scratch, or maybe the WINE team can make a Linux module that loads Windows drivers for Linux that uses the WINE libraries.
I have myself gone through several different wireless cards to get a Linux desktop working and eventually I gave up because I couldn't find a Linux native driver that wasn't flaky or lost the connection, and the only success I had was with NDISWrapper, but as soon as the Linux kernel is updated it breaks NDISWrapper forcing me to recompile the code and reinstall the Windows drivers.
In fact, I have a Linux desktop near my wireless router that uses a CAT5 cable to hook into it and then use VNC from a Windows desktop in another part of the house to log into the Linux system that way. It would be nice if I was able to get good wireless networking support from a Linux native driver without losing the connection or going flaky on me. But I suppose I'll always have a VMWare Virtual Machine to use as well if I wanted to run Linux from any part of my house and not just where the router is located.
explain how this violates gpl please (Score:3, Interesting)
Can someone explain to me how creating a computability layer for a proprietary model inherently violates GPL? Linus is trying to claim that loading the Windows Driver violates GPL. But I really fail to see how, ndiswrapper is a computability layer, and itself GPL'd, the windows driver is not loaded into the kernel like other modules it is sandboxed by ndiswrapper. It edges towards that gray area of the GPL, but itself doesn't violate it.
Thank god for GPL (Score:3, Insightful)
Re: (Score:3, Insightful)
Linus was a bit brusque about it but I do see his point. Of course if all the kernel symbols needed to make wireless drivers work are GPLONLY, then well, Linux has a bigger problem, doesn't it.
Re:reductio time (Score:5, Insightful)
It's perfectly legal for NDIS to be GPL because all of the code they provide is open. That's the legal standard. That the USER loads non-GPL modules at runtime is a known loophole.
Lots of other projects use GPL for the same thing... Console emulators, word processing programs that read binary
Linus Uses the flag for people like Nvidia who it's NOT OK to use the GPL for their drivers because they own and distribute the binary code AND the wrapper in the same package. It's not legal for them to claim to be GPL. But in this case NDIS is only liable for the part they distribute and the user is responsible for how the program is used on the system. The license is fine it's just Linus is assuming that a "license flag" will cover all the programming options (so they can deny support) when that's not the case.
Re: (Score:3, Informative)
Trying to claim that Linux somehow itself is GPL'd even though it then loads programs that aren't is stupid and pointless. If it loads non-GPL programs, it shouldn't be able to use GPLONLY symbols.
Userspace programs don't link against the kernel. Additionally, from http://www.kernel.org/pub/linux/kernel/COPYING [kernel.org]:
Re: (Score:3, Interesting)
but it is his tree so if he says it is not GPL compatible then it's not GPL compatible.
for the record, I have to agree with Linus on this one (but thats me and who am i).
Re:Linus making friends fast (Score:4, Informative)
HUH??
No, the wording of the license and its interpretation by legally qualified people determines whether or not something is GPL compatible, not the whims and say-so of a person, be it Linus, RMS, or whomsoever.
Re:Linus making friends fast (Score:5, Interesting)
Try understanding the issue. (Score:5, Insightful)
NDIS wrapper might itself be GPL but a kernel that uses it is not because the kernel is monolithic. Linus is actually giving everyone what they want.
What is this about GPLONLY symbols? [kernel.org].
Loading a non GPL kernel module makes the whole kernel non GPL and hard to debug because it's a monolithic program. Check out the Linuxant controversy [wikipedia.org] of 2001.
Linus won't keep you from making and loading non free modules but he's not going to be responsible when changes break your module. If others would cooperate, this would not be an issue. The NDIS wrapper people will have to reimplement functions written by GPL strict coders. That kind of sucks for them but they can do it. If Linus were to piss off the GPL strict coders, NDIS wrapper still would not work because those coders would quit contributing. A project as large as the kernel demands give and take. GPLONLY was a nice compromise.
NDIS wrapper has never been a great idea. It puts you at the mercy of Microsoft bugs and malice all for the benefit of a $30 network card. The kind of card that needs NDIS wrapper is usually worst of class and should be shunned. It's brain dead much like a winmodem and the "firmware" game is intentional. The card maker wants to be Windows only so don't buy it. Sooner or later hardware vendors will have to come around.
Re:Try understanding the issue. (Score:5, Insightful)
Well, I for one think it is a great idea since the most popular card manufacturers could not be bothered for the longest time to make linux drivers (and a lot still don't.) You see, I could have bought an orinoco gold ABG card for $99 back in the day, or a $10 clearance walmart G card, and spend $98 on more RAM instead. Guess which one I chose (And for several years now, the card has been working just fine). Ndiswrapper got me online with gentoo (I know, I love pounding my head against a brick wall, its fun!) Without it, I'd still be using windows all the time.
Saying "Don't buy cards that don't support linux" is all well and good until you realize how much money you are dumping into hardware when a small free program can make it work just fine.
I think there is a term that covers this... Ah yes. "Not cost effective."
Re: (Score:3, Informative)
Re: (Score:3, Insightful)
Re:Try understanding the issue. (Score:4, Informative)
That's a little hard on just about any laptop with an AMD processor. Intel boards have Centrino, which works under Linux without trouble. AMD-based laptops...not so much.
Re: (Score:3, Insightful)
NDIS is an interface. All network cards under windows need a network card drive
Re: (Score:3, Interesting)
To quote the Register, [theregister.co.uk]
In a post on the Real World Technologies discussion board appropriately titled "Hypocrisy the worst of human traits", Torvalds takes advantage of Tridgell's vow of silence on the matter. For the first third of his response, Torvalds gently tries to persuade us that ethics doesn't belong in the software business, taking a strictly utilitarian view. Or, as he puts it,
"So I think open source tends to become technically better over time (but it does take time), but I don't think it's a moral imperative." he writes.
What a pity the people involved in Open Source give my boss another reason to distrust the community and all their projects.
Re:Linus making friends fast (Score:5, Insightful)
Here, he claims "well, go ahead and use it, but don't call it GPL code because it isn't. Oh, and if you use it, I'm not responsible".
Hope your boss can now breath more easily.
Re: (Score:3, Insightful)
Yeh, too bad he got a start with the Microsoft people and all the honesty they bring to the table.
/sarcasm (included because you sound like someone who will miss it otherwise)
Re:Linus making friends fast (Score:4, Insightful)
Re: (Score:3, Insightful)
Re:Linus making friends fast (Score:4, Insightful)
Re: (Score:3, Insightful)
The problem is that it is not "their code". They claim that the "project implements Windows kernel API and NDIS (Network Driver Interface Specification) API within Linux kernel." That means it is a derivative work of the kernel. That means that they don't own all the code themselves, and that they have to follow the license of the other code they are using. And Linus's interpretation of the GPL and kernel modules is a
Re: (Score:3, Insightful)
Agreed. This is precisely the reason why I regularly rail against the GPL as a license and think that all libraries should be under the LGPL. In effect, the kernel acts as a giant library. Any public interfaces to the kernel should be treated like a library and licensed appropriately, not under some idiotic license that doesn't allow linking non-GPLed code against it.
Indeed, this is doubly true for a plug-in API. There should not be restrictions for who can write code to a public specification, period
Re:Linus making friends fast (Score:5, Insightful)
I don't necessarily think it's a bad license, I just don't think it's a one-size-fits-all thing. When you bring together a group of intelligent, opinionated, and (in large part) socially awkward people, fights are going to break out. Now it's true that things like religion and licenses tend to act as amplifiers (thus why I don't buy the classic "people will kill each other anyway" argument about religion) but I think this is just a pretty isolated case of Linus having another tirade. Reportedly he's already backing off.
Re:Linus making friends fast (Score:4, Insightful)
BSD is so much easier, but you run the risk of someone doing more with your code (and getting paid for it) than you did, without getting anything out of it. Personally, that doesn't bother me all that much.
Re:Linus making friends fast (Score:4, Insightful)
As you point out "it is entirely the right of the author to decide how to license it" and "Linus himself said that he felt binary-only drivers should be allowed, so he took advantage of the right to provide a linking exception". That "linking" exception requires that a module properly declare whether its license is GPL or not. If not, then its access to the kernel is restricted; if it is, it is given access to most all the symbols - the GPLONLY symbols. This is for (a) compatibility, but also (b) stability. They didn't want binary drivers breaking the kernel.
From the sounds of it, they don't agree with the NDISWrapper guys (or whoever is complaining) that NDISWrapper deserves the ability to access the GPLONLY symbols. Perhaps the way NDISWrapper functions is breaks compatibility with the GPL - by loading non-GPL code . I don't know the whole story, but I think I would have to side with the Linux guys on this one. It's their "linking" exception, and you have to play by the rules.
Note: This is not a GPL issue with respect to the Linux kernel; if it's a GPL issue at all, it is with NDISWrapper not validly being able to use the GPL, and if that is the case, then they should not be allowed to access the GPLONLY symbols. The primary issue is a matter of playing by the rules the developers set - and that goes for GPL and non-GPL code alike, regardless of projects, commercialization, etc. (And no, I'm not claiming, implying, or otherwise stating the the Linux Kernel guys determine that for everyone. Look at the project authors and who has the right, the ability, to make such a rule. It'll change for every project.)
Re: (Score:3, Informative)
Read what I read again. I didn't say he was denying access to the driver. I said he was using his right to allow binary linking but denying the developers of the NDISWrapper code that same right. Sorry, poor choice of wording on my part.
This code is not giving binary-only drivers access to GPLONLY symbols. It is strictly providing an
Re:Linus making friends fast (Score:4, Insightful)
What Linus himself *has* said in the past was that he considers binary modules ok *if* those modules weren't developed specifically for Linux. Take nvidia as an example: they have a binary driver core (possibly developed for Windows, possibly developed just as a generic driver core) which has an open-source shim to adapt it to the Linux kernel's specific interfaces. NDISWrapper could be thought of similarly, as an open-source shim to adapt Windows drivers to Linux's specific interfaces. However, this doesn't mean that NDISWrapper itself can be licensed under the GPL (of course, it can be licensed under "GPL with linking exception"), which is not compatible with Linux's GPLONLY symbols.
You're at the mercy of the copyright holders and the courts as to whether or not you're allowed to use NDISWrapper with Linux (and you are, it just can't use GPLONLY symbols!). Deal with it, or find some supported hardware or a different OS.
Re:Linus making friends fast (Score:4, Insightful)
NDISWrapper is not a derived work of the Linux kernel. That is a gross misuse of the term "derived work". Using headers and linking against something does not make it a derived work. That was, IMHO, decided way back in the early 80s with Galoob v Nintendo, though no GPL linking case has gone far enough in court to test this, AFAIK.
You are correct that I can't take someone else's code and add a linking exception, but that's not what is being done here by any stretch of the imagination, and there are numerous cases where open source wrappers have been written as a border between proprietary and GPLed code. Again, to my knowledge, no cases about this have ever made it to court, in part because arguments that such linking is a GPL violation are relatively precarious, and in part because most companies that have found themselves getting threatened with a lawsuit have been small enough that they choose to settle out of court rather than risk a lengthy and expensive court battle.
More to the point, you can argue that the GPLONLY limitations were intended to disallow linking by code that is licensed as GPL with a linking exception, but then you would also have to disallow any code within the Linux kernel itself that calls those functions unless those pieces of code are also marked with the GPLONLY restriction. That makes the GPLONLY functions substantially less useful to the point of being nearly worthless.
NDISWrapper is a module that loads binaries specifically developed for Windows, so there you go.
Funny, I saw Stallman give a speech, and he basically said that he started hating proprietary software specifically when a printer failed to work with a new computer setup. Had the driver been open, he could have fixed it. Had the OS been open, he could have fixed it to be compatible. Neither was, so he couldn't. While the goals of the GPL may have drifted from that original purpose these days, compatibility was a very important part of the reason the Free Software movement was created in the first place, and I think it is important that the movement not lose touch with its roots.
Re: (Score:3, Insightful)
It's not hypocritical at all, because the two things are not remotely comparable.
Microsoft is saying "here are some specifications for a document format, and here is a vague 'promise
"Linking" is not a term of copyright (Score:5, Insightful)
Let me state it this way: It is my understanding that copyright law, currently, has no notion of 'linking'. Copyright covers copying material, or creating derivative works (such as translations, modified versions, etc). I don't know the full definition of derived work (I've tried to research it before, and it appears to get a bit complicated), but it is my understanding that the basic principle of a derived work is that it contains all or part of the work from which it is derived. For example, a translation is a derived work because, while all the words may be literally different, being in a different language, the works still essentially contains all the ideas and expressions from the original work.
It's also my understanding that copyright does not govern what you can and cannot do with with copyrighted work, except to the extent that you cannot copy, distribute, or perform for other people, the copyrighted work or distribute derivatives without permission (I think you can create derivatives without permission, even, you just can't distribute/copy/perform that derivative). So, copyright doesn't give me the power to say you can't 'link' your work with mine, unless such 'linking' creates a derivative and you then subsequently distribute/copy/perform that derivative work (so even if a derivative is created on the on the end-user computer, which I believe is not the case, I don't think copyright law would prohibit that).
The thing about software which dynamically links other software is, the two software works are fundamentally almost completely separate works, if I understand dynamic linking correctly. They are distributed separately (or at least, *can be* distributed separately), they are loaded into memory separately, and the works are never really combined, even in computer memory, I believe. Is that not correct? My understanding of 'dynamic linking' is that the computer is running code in one segment of memory, and encounters an instructions which just causes it to jump to another part of memory and start executing what's there, and when finished executing the linked function, to return to the original memory location + 1. If that is, in fact, the case, then it's rather like a note in a book which says, "Go read such-and-such magazine article, then return to this page and continue reading". Even if my book makes *no sense* unless you read the article I put the note in for, my book is still not a derivative, because it contains no copy of the magazine article. (I mention that last part because I've read where Linus, and some other people, make the claim that the test for derivative work should be whether software can run without the linked software - I personally think that is an irrelevant fact, because where there is no copying, there can be no violation of copyright).
Anyhow, I just ultimately believe that all this stuff about restricting what symbols can and can't be used by non-GPL software is just a mess, and not reasonable. I think the idea that because one work links another work, that the author of the linked work gets some kind of control over the second work is not reasonable. Separate works should have separate copyrights which do not touch each other AT ALL.
Now, it's my understanding that all this linking stuff vis-a-vis the GPL has never
Re: (Score:3, Informative)
That, under anyone's definition, means nothing GPLed can touch them.
NDISWrapper tried calling its self GPL while exposing all of Linux's GPLed interfaces to the binary blobs.
A very straight forward violation.
Personally I never liked NDISWrapper.
I use Linux to get away from Windows. I dont want their drivers running on my system.
Many people use it even when there are superior native drivers.
Its been portrayed as a quick fix so if your hardware doesnt work o
Re: (Score:3, Interesting)
If it doesn't work out of the box, I don't much care that it's superior. I'm tired of "learning how the system works" for the 1000th time. Not all toil is virtuous.
who owns the kernel? (Score:5, Insightful)
This would be different if it were purely their code, but it isn't. This isn't stand-alone code. What they created is a derivative work of the Linux kernel. They used code which they didn't write and they don't own. Your argument is that the people who actually wrote the original kernel code have no right to say how it and its derivative works are used. Legally, you are completely and totally wrong. Essentially, you are advocating an end to copyrights on computer code. That's fine, but it has nothing to do with the GPL.
Re: (Score:3, Informative)
I don't know how you got marked all the way up to 5, but what you say has never been tested in court - which is the only thing that matters. It is NOT repeat NOT clear whether linking constitutes creation of a derivative work. Providing the source and headers may well prove to constitute a published specification, and the right to interoperate is generally protected by US law (there's even an exception to the DMCA restrictions on reverse engineering specifically for the purpose of interoperability.) So real
Re: (Score:3, Insightful)
It
Re: (Score:3, Interesting)
That and Linus changed his mind shortly after this was posted to Kernel Trap. Read a few comments up.
Re:.... right .... (Score:4, Insightful)