LWN.net Logo

A uprobes addendum

A uprobes addendum

Posted Jan 25, 2010 15:10 UTC (Mon) by drag (subscriber, #31333)
In reply to: A uprobes addendum by ringerc
Parent article: A uprobes addendum

NVidia can get away with what it does - producing a binary module with a GPL wrapper - only because its code doesn't need to touch too much of the kernel and doesn't need to modify core routines.

Nvidia can probably get away with what it does because the Nvidia kernel module is not, as far as anybody can tell, derivative of the Linux kernel.

"Derivative" is a legal term defined in USA copyright law and it indicates were your copyrights rights end when dealing with other parties. If you did not make it and it is not a derivative then there is no way any of your GPL'd software could have a effect on it.

Apparently Nvidia kernel module is mostly Windows driver shoehorned into Linux via the "GPL Wrapper". This sort of thing is very gray legally and somebody could challenge it and get it decided in court, but no copyright holder in the Linux kernel has decided to do that. This "grayness" is built into the system.. legal stuff is not programming stuff. It is designed to allow flexibility.

HOWEVER if you take Solaris Dtrace code and plunk it into the kernel, and then ship it, then your creating a derivative product of both Solaris and Linux. Therefore you will be forced to deal with licensing issues and need to provide a license for your product that will incorporate the licenses of both copyright holder's requirements.

The CDDL is incompatible with GLv2-only code due to the additional restrictions that the CDDL places on code that the GPLv2 does not allow. The CDDL restrictions are not bad, they have to do with patent stuff, but they exist and are in conflict with the wording of the GPL license.

That is all there is to it. You could probably combine the two and get away with it just fine, but it is not something that a company is going to base their ability to legally ship Linux on and kernel programmers are going to put a lot of effort into.

The CDDL was designed to do this on purpose* and it is there to allow Sun to produce a competitive product to Linux. They need to create product differentiation between Linux and Solaris and Dtrace/ZFS is just about the only way they can do it.

* The CDDL is based on the Mozilla license. The Mozilla license is noteworthy (in this discussion) _because_ it created licensing conflicts with GPL software in the past. Which is why, of course, Mozilla has gone out of their way and legally stated that the GPL is compatible by dual/triple licensing their code. (Mozilla/GPL/LGPL)

Even if the Linux developers wanted to incorporate Dtrace they could not legally do so until Sun creates a legal exception for them. And, no, a Sun employee stating in a blog that they "as far as they know would not sue"- type statement is not legally binding.


(Log in to post comments)

A uprobes addendum

Posted Jan 25, 2010 15:34 UTC (Mon) by dlang (✭ supporter ✭, #313) [Link]

quote: You could probably combine the two and get away with it just fine,

more than that, the GPL only kicks in when you distribute the result. so you could combine them with no problems at all, as long as you don't distribute the result (and 'you' can be a company, which can 'distribute' the result internally with no problem, just not to a separate legal entity)

A uprobes addendum

Posted Jan 25, 2010 17:35 UTC (Mon) by njs (guest, #40338) [Link]

Of course, DTrace's core market will only use it if RH ships it, which isn't going to happen.

A uprobes addendum

Posted Jan 25, 2010 21:11 UTC (Mon) by paulj (subscriber, #341) [Link]

Even if the Linux developers wanted to incorporate Dtrace they could not legally do so until Sun creates a legal exception for them. And, no, a Sun employee stating in a blog that they "as far as they know would not sue"- type statement is not legally binding.

Sighage.. This is just waffle. Linux developers do NOT need anything from Sun. The "only" agreement that is needed is entirely between Linux developers - they'd need to agree to not sue each other for relying on CDDL code. It's not in Suns' power to create such an exception. The only thing that would be in Suns' power is to relicence OpenSolaris under a GPL compatible licence (such as the GPL).

(Disclaimer, I'm a former employee of the Sun Solaris group).

A uprobes addendum

Posted Jan 25, 2010 21:57 UTC (Mon) by njs (guest, #40338) [Link]

> Linux developers do NOT need anything from Sun

This is nonsense, even by your argument. Sun is a copyright holder on parts of Linux, and they would need to change their license on those parts to add your proposed "CDDL exception". It would be a lot easier for them and everyone else if they modified the CDDL itself, of course. They've chosen to do neither, and instead blame those dumb Linux folks who went back and time and set up a licensing system (GPLv2 with widely distributed copyright ownership) that is incompatible with the CDDL, and could not possibly be made compatible with the CDDL, before the CDDL was even written! We'd love for them to use DTrace, it's those Linux idiot's lack of foresight that's the problem!

Sorry for getting testy, but this exact same argument -- with the exact same arguments from Sun apologists, all of which serve to confuse the issue despite being utterly without merit -- keeps playing out over and over and it is boring. I'm sure you believe what you're saying, but you're working from a flawed assumption, which is that "Linux developers" are some sort of unified team comparable to your old Solaris group. "Linux developers" are a wildly diverse lot, often competing with each other and with Linux itself (cf. SCO, MS, Sun, ...), and are held together not by a shared vision but by the very licensing regime that you're saying should be adjusted to match Sun's weird licensing ideas.

A uprobes addendum

Posted Jan 26, 2010 9:57 UTC (Tue) by paulj (subscriber, #341) [Link]

By Sun apologists you probably mean me, as I've been one of the more vocal
on LWN. It's a shame LWN comment history isn't open, as I could then point
you to mine.

Sun, in the context of any Linux copyrights it holds, still has no power to give
an exception to the Linux kernel generally. In the hypothetical event that all
others agreed that linking with CDDL was allowed and it came down to Sun,
I'm not sure their disagreement is even possible. That'd be an IANALing
session though.

That's beside the point though. The point is that that Linux developers are
not organised, and that Linux has no way to manage its copyrights. This was
simply NOT Suns' problem - not of its making and it was never Suns' problem
to fix. Worse, despite the years of whining about how evil Sun was to not
licence its code to Linux and how impossible it would be for the Linux
developers to solve their own problems, Linux HAS had at least one
suspiciously licence-change like event in recent times (and Linux was in SCM
already at that point, so all the rights holders should be easyish to trace). So
it seems the impossible isn't quite as impossible as claimed.

Now I have to say that I was a bit disappointed too that Sun didn't go with
the GPL. I think Sun could have been bolder and tried to be more inclusive,
but hey...

The main point is that, while Sun may once have flirted with your mother, Sun
is not your daddy and so it was never Suns' fault that you didn't get your pony.

But why let reality get in the way of Sun bashing? :)

A uprobes addendum

Posted Jan 26, 2010 10:57 UTC (Tue) by njs (guest, #40338) [Link]

> By Sun apologists you probably mean me, as I've been one of the more vocal on LWN.

I'm more annoyed at people like trasz, actually, who just had to jump in and explain that no, DTrace's license incompatibility wasn't due to a strategic decision on Sun's part, it was due to problems with Linux's licensing.

I believe the following statements are true: Sun open-sourced much of their code in an attempt to join the FOSS community, because they believed there were benefits in terms of goodwill, contributions from external developers, etc. When doing so, they wrote a license for OpenSolaris that was designed at least in part with the explicit goal of keeping OpenSolaris code out of Linux. Since there's some tension in their framing themselves as an open OS company while declining to share their code with the most important existing open OS, there are some people at Sun who have at various times tried to obfuscate the intentions behind the wording of the CDDL, the avoidance of questions about ZFS patents, etc., by implying that their intention was to share the code with everyone, and if that isn't happening, then it's somehow those Linux guys fault and has nothing to do with them. Any objections to this?

I don't see how any of that's Sun bashing -- I can come up with examples of much worse corporate behavior if you like :-). It's all perfectly logical given their necessities, and I absolutely think that they were within their rights in all of that. They don't owe me anything.

But I do find it annoying that Sun has tried to mislead me (e.g., into treating them like they're some great FOSS hero, *while* they in practice decline to release their code in a form that's usable to me), and even more annoying that one can't even talk about their those reasonable strategic decisions without random third parties showing up to cloud the air with obfuscatory rhetoric. Or something like that.

A uprobes addendum

Posted Jan 26, 2010 11:59 UTC (Tue) by paulj (subscriber, #341) [Link]

When doing so, they wrote a license for OpenSolaris that was designed at least in part with the explicit goal of keeping OpenSolaris code out of Linux.

Only a few people know whether or not this was the prime consideration, and they're mostly not talking (Danese Cooper is, her account is disputed by Simon Phipps). However you then also have to completely ignore the reality that there are further, reasonable considerations that have absolutely nothing to do with Linux and which officers and high-profile engineers have said went against the GPLv2 for Sun (ability for ISVs to continue to ship proprietary addons; dispreference for risk of licence forks with dual-licensing; a perceived requirement for patent protection clauses).

As for open-source heros, the world is far more than just the Linux kernel surely? I'm pretty sure there's tonnes of general Unix user-space code which Sun have contributed. I'm sure there are other significant ideas and protocols which are now implemented in Linux.

Yes, it'd be nice to see more integration and code-sharing between OpenSolaris and the other Unixes, I wrote as much in my last Sun blog post. I wonder if Oracle will manage to draw down this, one of the last remaining fronts of the Unix wars, and get us to a less antagonistic and more productive meeting of the minds of core Unix hackerdom?..

A uprobes addendum

Posted Jan 26, 2010 14:18 UTC (Tue) by dlang (✭ supporter ✭, #313) [Link]

the desire to be able to allow people to ship proprietary addons in no way eliminates releasing the code under GPLv2, all they would need to do is to dual-license it as CDDL and GPLv2 and they could do everything they currently do under the CDDL and linux could use the code under the GPLv2. Since they require copyright assignment for contributions, they can change the license whenever they want.

Linux has other code in it that's dual licensed, and it's the common practice to maintain that dual license over time. The assumption is that if you are submitting a patch to a file, your patch is under the same license(s) as the rest of the code in that file (except for things that would require copyright assignments). I believe that I have seen patches that explicitly were only under one license on a file that was previously multi-license rejected for this reason. No, this would not let Sun re-license this code as they would not have the copyright assignment for it, but that's one of the realities of opensource.

Sun chooses not to do this. They have the right to do so. The fact that they make this choice disappoints me, but does not annoy me.

I don't think anyone is claiming that keeping opensolaris code out of linux was a prime consideration, but I think that it's pretty clear that it was _a_ consideration.

Like others, I do find it annoying when people make the statement that if Linux only changed it's license they could use X and therefor the fact that feature X is not in linux is solely the fault of the linux developers Because Sun made the code freely available and is disappointed that the linux developers are not using it (usually with some snide comment about nih syndrome)

also note that if the CDDL cannot be combined with the GPL, there's no way that it could legally be combined with BSD code with the result still being BSD (it could be combined with BSD code with the result being CDDL)

A uprobes addendum

Posted Jan 26, 2010 18:37 UTC (Tue) by paulj (subscriber, #341) [Link]

Like I've said before, at least 1 well-respected, senior engineering person
(whose code likely is running on a good proportion of Linux machines) and who
was involved at a high-level with the open-sourcing of Solaris has
philosophical objections to dual-licensing - nowt to do with Linux. Also, a good
few Sun engineering folk have BSD backgrounds, and the BSD folk have not
always had good experience with how dual-licensing worked out for them with
BSD/GPL code that was part-maintained by Linux.

It's pretty clear even from external information on the net that the OpenSolaris
licensing decision had *several* dimensions to it. Only one, at best, was about
Linux.

Anyway, this may well all be irrelevant now as it seems someone went and
bought the pony.

LWN comment history

Posted Jan 26, 2010 22:41 UTC (Tue) by xoddam (subscriber, #2322) [Link]

> It's a shame LWN comment history isn't open, as I could then
> point you to mine.

http://lmgtfy.com/?q=paulj+341+site%3Alwn.net

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds