login
Header Space

 
 

Quote: The Question On The Table

March 5, 2008 - 5:33pm
Submitted by Jeremy on March 5, 2008 - 5:33pm.

"The question on the table is [...] whether we should let ndiswrapper continue using GPLONLY symbols. Quite frankly, my position on this has always been that the GPLv2 explicitly covers _derived_ works only, and that very obviously a Windows driver isn't a derived work of the kernel. So as far as I'm concerned, ndiswrapper may be distasteful from a technical and support angle, but not against the license."

— Linus Torvalds, in a March 4th, 2008 message on the Linux Kernel mailing list.

cut off point

March 5, 2008 - 10:53pm
Anonymous (not verified)

ndiswrapper should be able to use GPLONLY symbols only up to the point where it starts to run code that isn't free software. If the loading of the win32 driver into kernel space can be done better with GPLONLY code, then that should be ok since only GPLed code is running then.
Really running in userspace would be the ideal solution here from a legal standpoint if there's no native drivers.

gplonly exposes an ideological war

March 6, 2008 - 11:03am
Anonymous (not verified)

It would seem that part of the functionality of the kernel is limited by developers with a political agenda. GPLONLY is thus a way to sabotage non-GPL code. This is not just related to bug reports, it means, for example, that you cannot DHCP with the kernel.

Linus refused to accept patches from pacifists with a "no-military-use" clause, why does he accept GPLONLY code?

Can we get a list of the kernel functions that are crippled in this way in order to remove them and write around them?

Can we get a list of the names and emails of the developers who insist on sabotaging Linux in this way, so that they can be "named and shamed" in public?

>Linus refused to accept

March 6, 2008 - 12:43pm
Anonymous (not verified)

>Linus refused to accept patches from pacifists with a "no-military-use" clause, why does he accept GPLONLY code?

because he likes the GPL

>Can we get a list of the names and emails of the developers who insist on sabotaging Linux in this way, so that they can be "named and shamed" in public?

Better yet, why don't you post a link to your own free-for-all homegrown kernel. Lacking that, just start using Free/Net BSD.
problem solved.

Military, Sabotage, War, ...?

March 6, 2008 - 1:17pm
Anonymous (not verified)

> Linus refused to accept patches from pacifists with a "no-military-use" clause,
> why does he accept GPLONLY code?

Because the kernel is GPLed (by Linus and all the other authors), and the GPL
considers binding as deriving. So using system calls is not binding, while using
the kernel API is. In case of the ndiswrapper the matter is even more complex,
because ndiswrapper binds to the kernel and the (binary, intel only) drivers
bind to ndiswrapper, and, by transitivity, bind to the kernel, which is a GPL
violation. But, on the other hand, as Linus emphasizes, a windows driver can
hardly be considered as a linux derivate.

Things are complex and need some flair and discussion to find a balanced
approach of such matter and no "execute all saboteurs" phantasies as your
martial language above indicates.

Really?

March 6, 2008 - 4:24pm
Anonymous (not verified)

"the GPL considers binding as deriving"

I just re-read the GPLv2, and I don't see the word "binding" anywhere in there. Could you point out where it says anything about this?

The only part I found that even comments on what constitutes a "work based on the Program" just refers the reader to copyright law:

"a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language." To me, it seems that it would be a stretch to claim that use of the kernel API would legally constitute "a work containing the Program or a portion of it", but that is the argument one would have to make. I realize that a lot of people connected with the kernel would like the license to work this way, but the actual license does not say that. But then again, IANAL.

GPL

March 6, 2008 - 6:31pm
Anonymous (not verified)

See http://en.wikipedia.org/wiki/GNU_General_Public_License
for a longer explanation.

Basically, it is implied in GPL section 3.

3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange;
or, ...

This means, if you bind anything with the program it becomes part of the
program, linux in this case. Now since ndiswrapper finally binds a driver,
though by very special means, it is practically violating the linux license,
because the source code of the driver (which completes the program)
is not distributed.

Well, this is not a violation, really, as long as you do it at home, i.e. don't
distribute the bound result. Thus, distributing a binary driver together
with ndiswrapper and linux is a GPL violation. Linus knows this well,
and tries a Solomon-like path in this particular case, but he is not the
only developer of the kernel.

The binding restriction is meant to prohibit cases in which some extra
proprietary functionality is added to a program by means of dynamic
binding in cases where this added functionality is not again covered by
the GPL. Thus, the GPL defines binding as extension, i.e. a derivation
of the work.

Contrary to this, the LGPL defines binding as use:

5. A program that contains no derivative of any portion of the Library,
but is designed to work with the Library by being compiled or linked
with it, is called a "work that uses the Library". Such a work, in isolation,
is not a derivative work of the Library, and therefore falls outside the scope
of this License.

Would the kernel be covered under the LGPL, such a bound work could be
distributed.

GPL and 'binding'

March 7, 2008 - 4:24am
Anonymouse (not verified)

Long ago there was a decision that non-free drivers may not be compiled into a Linux kernel. It was agreed that non-free drivers may still load as a module, but even that was generally barely tolerated at the time. Bad drivers will foul the whole system and if the source code is not available, hackers really don't want to waste their time helping out whoever makes the bad code; they have better things to do with their time. The decision to play that way (in-kernel driver vs module) was not based on any religious reading of the GPL - it was pretty much a personal decision by Linus and a decision which easily fits within the spirit of the GPL. The GPL is simply a contract which ensures that all copyright is respected and also that the users' freedoms are guaranteed; on its own it does not say explicitly whether Linux should, for example, reject in-kernel non-free drivers but accept modular non-free drivers. In fact it would be difficult to argue in court that a device driver is a "derived work" of a kernel. It all comes back to Linus and the various Linux hackers who stated that, as copyright holders of various parts of the kernel, they do not want their code to accept non-free drivers.

One can distribute Linux by

March 7, 2008 - 1:57pm
Anonymous (not verified)

One can distribute Linux by itself, no problem.
One can distribute ndiswrapper by itself, no problem
One can distribute a binary driver if they have permission from the copyright owners, no problem.

You are suggesting that if one delivers the three above together on the same CD that it would be a violation of the GPL?

The GPL is a copyright license and has the limitation as such. I've never heard of a copyright license that prevented one from the way they packaged it. Well, some have tried, but I believe the court (in the US anyway) shot that down. Imagine the uproar if Microsoft told the OEMs that they were forbidden to package IE with Firefox.

I'll state the old IANAL disclaimer and that things may be different in different countries. But this whole thing is not black and white, but lots of different shades of gray.

I'm not sure ndiswrapper is illegal in anyway shape or form. I might be wrong, but who knows. ndiswrapper is indeed a derived work of Linux, but it is GPL itself. ndiswrappper simply provides a way to run modules made for another OS on Linux. Think of it as a system call interface for proprietary programs, but instead of tasks, this is for modules. With the current argument, we can say that syscalls should only be allowed to call non GPL labeled functions when running non GPL programs.

One could argue that, with laws like the DMCA, you could attack the ndiswrapper as a tool that tries to circumvent the GPL. But that's a whole 'nother story.

Basically, GPL ONLY markers are to stress that those that wrote the code want their code used only by GPL modules. Linus doesn't own the kernel. He only manages it, and he lets those that are doing the work do what they want with their own code.

The binding regulation does not only affects the kernel

March 7, 2008 - 4:49pm
Anonymous (not verified)

> You are suggesting that if one delivers the three above together
> on the same CD that it would be a violation of the GPL?

Not necessarily. But for instance installing such a construction at
a customer, who needs to run a particular hardware is one,
because the source of the binary driver is not available under
the GPL. Same goes for distributing a CD which is intended to
create such binding on boot time or user request, IMO.

I agree that some developers would be more accommodating,
while other find that such constructions are mostly only
disruptive to the GPL value creation chain while otherwise
providing minimal benefit, perhaps.

Personally, i find the expressed intention of the author of a
particular source covered by the GPL most relevant. I for one
can hardly imagine situations where i would allow linking
simply because i consider it as a loop hole and not a feature
in general.

Now if Linus and all other kernel developers would finally
come to the conclusion that it makes sense for them to allow
such bindings, i would be glad if they do it in such a way that
clearly does not create a precedent case for dynamic binding
for other GPL-covered works, since i believe, that the linking
restriction is in general consciously intended by most of the
authors, who would otherwise have licensed their work under
the LGPL.

Huh?

March 8, 2008 - 8:09am
Anonymous (not verified)

"Basically, it is implied in GPL section 3.

3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange;
or, ..."

I still don't see where this says what "binding" is. It says "...or a work based on it, under Section 2)". But Section 2 doesn't comment on "binding" either. It is simply the place where the GPL refers the reader to copyright law for a determination of what constitutes a derivative work.

So, does the GPL really say this or not?

Binding / linking is motivation behind the LGPL

March 8, 2008 - 1:28pm

The whole reason that the LGPL exists is that linking (aka. binding) can be considered "deriving" a work under some interpretations of copyright law. This isn't explicitly stated in the GPL, but has long been held to be a concern.

The LGPL text states:

A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version".

In fact, the LGPL feels the need to explicitly exempt you from section 3 of the GPL:

1. Exception to Section 3 of the GNU GPL.

You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.

In effect, the LGPL serves to clarify a situation that's unclear (or at least subject to a range of interpretation) under the GPL. Really, the NDISwrapper situation seems to be adequately covered by this GPL FAQ question.

--
Program Intellivision and play Space Patrol!

The whole reason that the

March 8, 2008 - 4:27pm

The whole reason that the LGPL exists is that linking (aka. binding) can be considered "deriving" a work under some interpretations of copyright law.

Do you know where I might find an explanation of the logic behind this interpretation, preferably with pointers to relevant decisions? My understanding what that derivative works had to include (significant parts of) some form of whatever they were derivative works of.

The Wikipedia article on the

March 9, 2008 - 6:42pm
Anonymous (not verified)

The Wikipedia article on the GPL has a section about this matter explained in an understandable way and with links to the relevant words in other discussions.

Yes, I've seen that, and

March 9, 2008 - 7:33pm

Yes, I've seen that, and what it links to. The FSF asserts that such an executable [dynamic-linked to a GPL library] is indeed a derivative work if the executable and GPL code "make function calls to each other and share data structures," I'm looking for the reasoning behind this assertion, preferably with references to why that reasoning should be considered valid.

"we believe"

March 9, 2008 - 8:35pm

You can browse around the FSF site to get their rationale. All of their relevant statements roughly boil down to: "we believe they form a single program."

I don't believe the "linking == deriving" theory has been tested in court, and so whether the GPL permits linking to non-GPL code is ambiguous from a legal standpoint. (The FSF, on the other hand, is pretty clear that they feel linking == deriving.) From what I understand (and my understanding could be wrong), the LGPL exists because linking may someday be interpreted by the courts as deriving. Therefore, the LGPL provides unambiguous permission to link, since the GPL is ambiguous on this point.

--
Program Intellivision and play Space Patrol!

I had browsed around their

March 9, 2008 - 10:18pm

I had browsed around their site some, and didn't feel that I'd found anything substansive. I guess now I know why. :)

I believe

March 10, 2008 - 1:10pm

IANAL, and I'm not speaking for the FSF. But I think the argument goes something like: do you agree that if you took code from someone else and put it into your program by copying and pasting it into one of your source files, that this creates a derived work? If so, why doesn't it create a derived work if you take someone else's source file and compile it and link the .o into your program? This is a technical distinction without a difference. And if that creates a derived work, then why wouldn't it be a derived work if you took someone else's source file and created a static library and linked that with your program? Again, it's the same result. And if linking a static library is considered creating a derived work, then why shouldn't linking a shared library do so as well? The ultimate result is the same: your code and the copied code is co-resident in memory and your code is not functional unless you have the copied code present as well. So, isn't the result a derived work? The underlying technical details are, ultimately, simply a matter of convenience and efficiency and it's not at all clear that the courts will decide there's any LEGAL distinction between copying code into your source files, and linking a shared library containing the code.

Plugins are another issue, if they're considered in their traditional sense which is that your program is perfectly usable and useful by itself, but it can be enhanced to perform additional actions via a plugin. Then the question goes the other way: why is a plugin considered a derived work when invoking a separate program and using pipes to get data back and forth, for example, is not?

The reality is, no one can know what the ultimate legal decisions will be. Regardless of what anyone says, there are good and reasonable arguments on both sides of this issue: anyone who tells you with certainty that the other side is categorically wrong doesn't know what they're talking about.

That's why I generally do it this way: find out what the copyright holder THINKS their license means, and doesn't mean, and do that. The FSF thinks copyright applies to programs that link with shared libraries, and so they believe that their license on GPL'd shared libraries covers the entire work. If you can live with that, great. If you can't, don't use their libraries. After all, we're programmers not lawyers: the idea isn't to game the system and screw the other guy if he can't make his case (not saying all lawyers are like that, but the law is fundamentally an adversarial system--programming is not, or shouldn't be). The idea is to create great new code in a community environment. When you look at it this way, the answer becomes quite obvious I think.

Plus, it's your best chance to avoid getting sued which, win or lose, is not something you want to have to go through.

risk avoidance

March 10, 2008 - 11:18pm

And if linking a static library is considered creating a derived work, then why shouldn't linking a shared library do so as well? The ultimate result is the same:

Run-time linking is done by the end user, who has received separate permission to do so. This appears to be a Big Difference, which I haven't seen addressed.

That's why I generally do it this way: find out what the copyright holder THINKS their license means, and doesn't mean, and do that. The FSF thinks copyright applies to programs that link with shared libraries, and so they believe that their license on GPL'd shared libraries covers the entire work. If you can live with that, great. If you can't, don't use their libraries. After all, we're programmers not lawyers: the idea isn't to game the system and screw the other guy if he can't make his case (not saying all lawyers are like that, but the law is fundamentally an adversarial system--programming is not, or shouldn't be). The idea is to create great new code in a community environment. When you look at it this way, the answer becomes quite obvious I think.

That's the safe, friendly route, sure, and is best for the individual project. But I also get the impression that some companies are afraid of the GPL, and having the FSF or Linus or ... overstate what copyright allows them to control (if this is indeed an overstatement) probably only scares them away more.

It would be better to have clear, verified boundaries instead of the fuzzy mess we have now.

Yes but

March 11, 2008 - 9:29am

Run-time linking is done by the end user, who has received separate permission to do so. This appears to be a Big Difference, which I haven't seen addressed.

That is indeed a difference. It's not clear whether courts would consider this a real differentiator, or just a dodge to try to avoid the clear intent of the license (yes, I understand that if dynamic linking is not considered to create a derived work then the license is moot). There are also other issues, such as include files etc. but these are weaker arguments by far.

It would be better to have clear, verified boundaries instead of the fuzzy mess we have now.

We have clear boundaries--at least in the case of the FSF, which, whether you agree with it or not, has the advantage of speaking with a single voice. Linux is a bit less clear since there are so many people all with slightly (or even greatly) different views on the license. In order to get verified boundaries you'd need to have this specific issue addressed in court... that's the only way. For whatever reason no one has been willing or able to defend the anti-derived work position in court.

No one's making you use it on your equipment.

March 6, 2008 - 1:32pm

I think it's fair to say a large number of people contribute to Linux because of its license. Those who disagree with the license and its philosophy work on other things and/or use other software. If you don't like the GPL, use something else. Not only do you have a coterie of BSDs to pick from, but also you have plenty of commercial OSes as well.

And this is a total non sequitur:

Linus refused to accept patches from pacifists with a "no-military-use" clause, why does he accept GPLONLY code?

Could it be because such a clause is incompatible with the GPL? So's a clause that says "not to be used on machines whose serial number is a Mersenne Prime." Code that marks its symbols GPLONLY is—surprise! surprise!—GPL compatible! In fact, that's the default state for linking against GPLed code. The fact that the kernel exposes any interfaces other than its syscall interface to non-GPL code makes it more friendly to non-GPL code than it otherwise would be. If it weren't for that, you wouldn't have the proprietary NVIDIA driver, for instance.

--
Program Intellivision and play Space Patrol!

I think you just fed a

March 6, 2008 - 4:57pm
Anonymous (not verified)

I think you just fed a troll...

1. Using non-GPL code

March 18, 2008 - 5:48am
Anonymous (not verified)

1. Using non-GPL code cripples the kernel. It is under GPL to allow for open developement, and also force manufacturers to open their code.

2. Nobody wants total freedom, because that would be anarchy (e.g. having the freedom to kill someone for fun). So the question is where to draw the line. GPL says: You're free to join us, with all implied rights and duties.

So if you don't want to comply with the GPL requirements, or if you want to taint the kernel with all its ugly implications, just piss off.

Why do I get the feeling Linus reversed himself?

March 7, 2008 - 4:05pm
Ken Bloom (not verified)

In the second message in the thread, Linus said:

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.

Later he said

as far as I'm concerned, ndiswrapper may be distasteful from a technical and support angle, but not against the license.

What gives? Why does he seem to reverse himself?

Re: What gives?

March 7, 2008 - 6:25pm
Anonymous (not verified)

"What gives? Why does he seem to reverse himself?"

Along with insulting other people, this is one of the things that Linus is good at, and practices all the time.

Politics

March 9, 2008 - 4:34am
Anonymous (not verified)

Linus has declared himself apolitical many times, yet he is the biggest mouth in the GPLv2 vs GPLv3 spectacle. He doesn't care about politics? Well, then shut up and code!

Well, then shut up and

March 9, 2008 - 7:34am
Anonymous (not verified)

Well, then shut up and code!

Ok, let's see:
http://www.kernel.org/
http://www.codemonkey.org.uk/projects/git-snapshots/sparse/
http://git.or.cz/

And what did you do in order to tell other people to shut up?

Complaining

March 11, 2008 - 12:55pm
Anonymous (not verified)

And what did you do in order to tell other people to shut up [and code]?

It's not my fault Linus has declared himself apolitical and then entered a political debate (over and over again). He has a big mouth, and I think I'm allowed to express my opinion, even though his name is Linus and mine is not.

We're allowed to complain about Windows and Bill Gates all we want, no matter what "we have done". But when it comes to Linus and Linux ... oh, "and what have /you/ done?" Kids these days.

Telling Linus to "shut up

March 11, 2008 - 5:49pm
Anonymous (not verified)

Telling Linus to "shut up and code" is like telling Gates to "shut up and earn money". It just makes you look foolish. The first coded more than you ever will, the latter earned more money than you ever will.

And?

March 12, 2008 - 1:38pm
Anonymous (not verified)

The first coded more than you ever will, the latter earned more money than you ever will.

So what? You're not allowed to talk about sand because you don't live in Sahara? You're not allowed to express your political opinion because others are more involved in politics than you are and will ever be? Get a grip, will you?

Seriously

March 8, 2008 - 9:27am
Anonymous (not verified)

Seriously, who gives a crap? (well, apparently many do.) Why spend your time and energy arguing about licenses and what they really mean, when you can write free software instead? Care about code, not politics. What matters is free software and good code.

Instead of arguing about algorithms and code, you're arguing about licenses!

Get a grip.

uh, because you can be sued

March 8, 2008 - 10:00am
Anonymous (not verified)

These angry little nerds can sue you. Ask the honest folks at busybox. They even tried to make things right, but at that point it was just a shakedown for cash.

When someone says, it's just a license, don't worry about it, that's when you should worry.

Now we have this aggressive theory about linking that isn't supported by copyright law but is a canard favored by these nerds, and you just might end up hauled into court one day because of it.

Hell, under their reasoning vmware is illegal to run under linux.

It's a shame the world fell for this bait-and-switch. Oh, the hippies gave it to us for free. They want what?? Money and our blueprints and our patents?

These people are dangerous. Better to stick with something like Windows 2003 R2, at least you know where you stand after you've paid the license fee.

Unless ...

March 9, 2008 - 4:07am
Anonymous (not verified)

When someone says, it's just a license, don't worry about it, that's when you should worry.

Unless the license is a permissive free software license, like ISC. You only have to worry about getting credit. If you don't, it's not the end of the world (but you can sue, if that makes you feel better). Your software is still free, for everyone, forever.

Better to stick with something like Windows 2003 R2, at least you know where you stand after you've paid the license fee.

I will use OpenBSD. Is that OK with you? I paid for the CD-set, just to be nice and to support the effort. And I know exactly where I am. I'm free.

Great, so you feel free, but

March 9, 2008 - 7:02pm
Anonymous (not verified)

Great, so you feel free, but have to use a junk OS.

"Not all are free that can bemock their fetters."
- Nathan the Wise

the orwellian view of free

March 10, 2008 - 10:08am
Anonymous (not verified)

the point here is that free is a word used by the FSF to enslave you in a never-ending high school student council meeting

On a serious note, if fundamental facilities like wireless communications and the ability to write drivers for hardware are at the whim of a few individuals, we should stop and reverse the trend of shifting our IT infrastructure to their custody.

It does smack of college

March 10, 2008 - 2:44pm
Nony Mouse (not verified)

It does smack of college idealism, doesn't it ?

Troll.

March 10, 2008 - 2:39pm
Nony Mouse (not verified)

Troll.

what is a troll?

March 10, 2008 - 7:26pm
Anonymous (not verified)

I don't get the reference, is it about Stallman's appearance?

No

March 15, 2008 - 10:55am
Anonymous (not verified)

No, it's not about Stallman's appearence. Look up "troll" in the New Hackers Dictionary or elsewhere. I'm sure you know how to use a search engine.

These people are dangerous.

March 10, 2008 - 10:42am
Anonymous (not verified)

These people are dangerous. Better to stick with something like Windows 2003 R2, at least you know where you stand after you've paid the license fee.

Before you criticise other projects' licensing, why don't you show us how easy it is to distribute Windows 2003 R2 source code, or even binaries, from an FTP server. Put your money where your mouth is.

non sequitur

March 10, 2008 - 10:56am
Anonymous (not verified)

non sequitur

Nope. The original post is

March 11, 2008 - 9:51am
Anonymous (not verified)

Nope. The original post is crying about how Linux's licensing lets end users get sued (here's a clue: Linux doesn't come with a EULA), and then _tries to claim windows is less restrictive_. That's not a non-sequitur, it's highlighting how utterly childish and ridiculous the post sounds.

Nobody ever had their door busted in by the BSA for using Linux.

I second that non sequitur,

March 10, 2008 - 2:43pm
Anonymous (not verified)

I second that non sequitur, what they said has nothing to do with source code, binaries or FTP servers, and although they were probably joking, they put their money where their mouth is, and they know where they stand as a result of that.

I suppose the kernel is`not

March 19, 2008 - 6:12am
Anonymous

I suppose the kernel is`not the place for such unclear compromises as ndiswrapper or something like.

Petr

I suppose the kernel is`not

March 19, 2008 - 6:13am
Anonymous (not verified)

I suppose the kernel is`not the place for such unclear compromises as ndiswrapper or something like.

Petr

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
speck-geostationary