3 ms·
It depends on the definition of "derived work", which is a legal definition, not a technical definition. For "user programs that use kernel services by normal s
by cesarb 7y ago
It depends on the definition of "derived work", which is a legal definition, not a technical definition. For "user programs that use kernel services by normal system calls", everyone agrees that it's not a derived work ("[...] this is merely considered normal use of the kernel, and does not fall under the heading of "derived work"."). For kernel modules, which use the internal kernel API instead of system calls, it's less clear.
Also, you cannot say that zfs.ko "is clearly not a derivative work of the Linux kernel but rather quite obviously a derivative work of OpenZFS and OpenSolaris" - if that were the case, that kernel module clearly wouldn't work, since the internal kernel API of the Linux kernel and of the Solaris kernel is completely different. Whether the changes necessary for zfs.ko to work with the Linux kernel make zfs.ko as a whole a "derived work" of the Linux kernel or not is a more complex question.
But that's not the worst issue. The real problem is: under what license is the whole kernel, once you linked together the common Linux parts (which are under GPL2) and the ZFS parts (which are under the CDDL)? The "mere aggregation" provisions of GPL2 clearly don't apply, and the licenses are incompatible (on purpose, it's been documented that CDDL was intentionally made incompatible with the GPL). Since the CDDL can't apply (due to the GPL parts), and the GPL can't apply (due to the CDDL parts), distributing the combined whole would be a copyright violation.
- Wowfunhappy 7y ago> But that's not the worst issue. The real problem is: under what license is the whole kernel, once you linked together the common Linux parts (which are under GPL2) and the ZFS parts (which are under the CDDL)? The "mere aggregation" provisions of GPL2 clearly don't apply, and the licenses are incompatible (on purpose, it's been documented that CDDL was intentionally made incompatible with the GPL). Since the CDDL can't apply (due to the GPL parts), and the GPL can't apply (due to the CDDL parts), distributing the combined whole would be a copyright violation. I asked for the counter argument, so, thank you—but this strikes me as totally silly. If I distribute a zip file with a Linux ISO and an OpenSolaris ISO, is that also a copyright violation? It seems to me, the Linux kernel and the ZFS module aren't actually being put together until they arrive on the user's machine, and at that point, redistribution is irrelevant.
- p_l 7y agoThe CDDL code doesn't depend on Linux internal APIs - it depends on SPL, the Solaris Porting Layer, which implements them using Linux APIs. This way the CDDL code stays independent of linux. Also, we have one persons word that they were asked to make it incompatible, at the same time we have another people claiming that Sun expected CDDL code to end up in Linux kernel pretty much overnight and was surprised by the reaction, and on the third hand we have developers who campaigned internally at Sun against using GPLv2/v3 (Sun was interested in using GPLv3) because it would prevent integration of opened code with BSDs and the like.
- jen20 7y ago> on purpose, it's been documented that CDDL was intentionally made incompatible with the GPL Citation needed. It’s actually been documented _by people that were there_ [1] that it was NOT the case that the CDDL was made intentionally incompatible with the GPL. [1]: https://www.slideshare.net/mobile/bcantrill/fork-yeah-the-rise-and-development-of-illumos https://www.slideshare.net/mobile/bcantrill/fork-yeah-the-ri... (Slide 10) - or in video form with a longer explanation: https://youtu.be/-zRN7XLCRhc https://youtu.be/-zRN7XLCRhc