3 ms·
The legal issue is a matter of some debate (see below). In practice, I don't think the Benevolent Dictator wants ZFS in the main Linux kernel tree at the momen
by mahrens 13y ago
The legal issue is a matter of some debate (see below). In practice, I don't think the Benevolent Dictator wants ZFS in the main Linux kernel tree at the moment.
http://zfsonlinux.org/faq.html#WhatAboutTheLicensingIssue http://zfsonlinux.org/faq.html#WhatAboutTheLicensingIssue
- rgbrenner 13y agoThere's no debate. The CDDL has never been compatible with the GPL... and CDDL'd code will never be a part of the kernel. http://www.gnu.org/licenses/license-list.html#CDDL http://www.gnu.org/licenses/license-list.html#CDDL http://www.groklaw.net/articlebasic.php?story=20041205023636236 http://www.groklaw.net/articlebasic.php?story=20041205023636... http://www.groklaw.net/article.php?story=20050205022937327 http://www.groklaw.net/article.php?story=20050205022937327 In this link Linus talks about loadable module licensing.. gives an example of AFS, which he says he did not think counted as a derived work (and therefore did not need to be licensed under the GPL).. very similar to the ZFS case. https://lkml.org/lkml/2003/12/3/228 https://lkml.org/lkml/2003/12/3/228
- mahrens 13y agoYou don't see Linus's viewpoint as contrary to the one on gnu.org? It seems like Linus is saying that the GPL allows AFS to be used with Linux (because it is not a "derived work"). How is ZFS different from AFS in this respect?
- rgbrenner 13y agoNo, I don't. The gnu link says CDDL is not compatible with the GPL. What Linus is saying is, if a kernel loadable module relies on kernel internals, then it may count as a derived work, and must be licensed under a GPL-compatible license. If it does not -- for example, it is a filesystem that was ported to Linux (like AFS, and zfs fits here too IMO), then it may not be a derived work, and can be licensed under a non-gpl compatible license (like the CDDL). Obviously, including the AFS or zfs into the source WOULD DEFINITELY create a derived work, and would require AFS/ZFS to be licensed under the GPL. So Linus' is only explaining how a kernel loadable module could be licensed under a GPL-incompatible license.
- Dylan16807 13y agoI don't understand how putting the code into the same repository/makefile changes whether it's derivative in terms of copyright.
- mzs 13y agoIf yo take a Makefile which say Linus had written and tack on some of your own rules, you have almost certainly (unless the original Makefile was something trivial like ::) created a derived work.
- raimue 13y agoIf you distribute a single source tarball with code files with different licenses, all of them apply. There may be different terms limiting what you are allowed to do with the file in each of the licenses, while the most restrictive license terms apply to the whole file. Besides the real legal issues, this also causes unnecessary confusion for users and those creating packages for binary distribution. Therefore, using multiple incompatible licenses in a single source tree is usually avoided.
- Dylan16807 13y ago>If you distribute a single source tarball with code files with different licenses, all of them apply. Yes, the tarball distribution must respect all the licenses of files inside it, but once the tarball is unpacked it goes back to individual licenses per file. I understand how it's a big mess when it gets to binaries, but do any licenses actually place restrictions on what they can be tarballed with?
- deleted 13y ago[deleted]
- rgbrenner 13y agoIt's really more than simply adding it to a repository. I can store two text files that have nothing to do with each other on my HD or in a repo or wherever, and I would not be creating a derived work. But if I have file A (kernel source) and file B (zfs code), and I compile A+B into a binary (the kernel image), then I have a single work that has been derived from A and B. When it's suggested that ZFS be added to the kernel repo, what's really being said is that a single work (kernel+zfs) should be created. In contrast, ZFS is currently a kernel loadable module. We have the kernel binary, and the module binary.. two separate works. (What Linus was clarifying was how integrated the module could be with the kernel and it still be considered a separate work.)
- rgbrenner 13y agoHere's a much better link.. someone collected various emails from Linus on loadable modules: http://linuxmafia.com/faq/Kernel/proprietary-kernel-modules.html http://linuxmafia.com/faq/Kernel/proprietary-kernel-modules....
- SEJeff 13y agoLets forget the licensing entirely. ZFS was built ontop of the Solaris VFS layer (virtual file system), which is entirely different than the Linux VFS. Taking the code in the Solaris kernel that provides ZFS and porting it to the Linux VFS is a massive undertaking that would require rewriting most of the "stable" guts of ZFS. Honestly other than the fuse stuff, I doubt ZFS will ever be in Linux as it would require a rewrite of such a large portion of code, it would be impractical.
- insaneirish 13y ago> Taking the code in the Solaris kernel that provides ZFS and porting it to the Linux VFS is a massive undertaking that would require rewriting most of the "stable" guts of ZFS. And it's been done and working quite well considering. There still are improvements to be made, but progress is happening. See slide 9 of this in particular: http://www.slideshare.net/MatthewAhrens/open-zfs-linuxcon http://www.slideshare.net/MatthewAhrens/open-zfs-linuxcon
- SEJeff 13y agoI don't mean adding solaris / illumos interfaces (see slide 8 on your link) into the Linux kernel. That will simply never be accepted upstream. I mean properly porting it from the Solaris to the Linux VFS without a shim ie a native port. That still has not been done. It is a ridiculous amount of work.
- kinghajj 13y agoWait, if the current Linux ZFS module doesn't interface with the Linux VFS, then how does the filesystem even work? Did they write a Solaris VFS -> Linux VFS bridge?
- SEJeff 13y agoYes, as evidenced on slide 8 of that link. """ Solaris Porting Layer - Adds stable Solaris/Illumos interfaces * Tasqs, lists, condition variables, rwlocks, memory allocators, etc - Layers ontop of Linux equivalents if available - Solaris specific interfaces were implemented from scratch """ It doesn't (currently) use the Linux page cache, which causes quite a few ancillary issues. The idea is awesome, but this will simply never be able to be "natively" in linux without a rewrite of much of the core.