During the discussion
As for the ZFS on Linux project, Linus did not recommend using the zfs module due to the incompatibility of the CDDL and GPLv2 licenses. The situation is that due to Oracle's licensing policy, the chances that ZFS will ever be able to enter the main kernel are very small. The layers proposed to bypass licensing incompatibility, which translate access to kernel functions to external code, are a dubious solution - lawyers continue
The only option in which Linus would agree to accept the ZFS code into the main kernel is to obtain official permission from Oracle, certified by the main lawyer, or better yet, Larry Ellison himself. Intermediate solutions, such as layers between the kernel and ZFS code, are not allowed, given Oracle's aggressive policy regarding intellectual property of programming interfaces (for example,
Let us remind you that the ZFS code is distributed under a free CDDL license, which is incompatible with GPLv2, which does not allow ZFS on Linux to be integrated into the main branch of the Linux kernel, since mixing code under the GPLv2 and CDDL licenses is unacceptable. To circumvent this licensing incompatibility, the ZFS on Linux project decided to distribute the entire product under a CDDL license in the form of a separately loaded module that is supplied separately from the kernel.
The possibility of distributing a ready-made ZFS module as part of distribution kits is controversial among lawyers. Lawyers from the Software Freedom Conservancy (SFC)
The other side counters that the problem of kernel compatibility in proprietary drivers is solved by supplying a small layer distributed under the GPL license (a module under the GPL license is loaded into the kernel, which already loads proprietary components). For ZFS, such a layer can only be prepared if license exceptions are provided from Oracle. In Oracle Linux, incompatibility with the GPL is resolved by Oracle providing a license exception that removes the requirement to license combined work under CDDL, but this exception does not apply to other distributions.
A workaround is to supply only the source code of the module in the distribution, which does not lead to bundling and is considered as the delivery of two separate products. In Debian, the DKMS (Dynamic Kernel Module Support) system is used for this, in which the module is supplied in source code and assembled on the userβs system immediately after installing the package.
Source: opennet.ru