> If it's completely generic then maybe, but how do you argue that the closed source Nvidia license or the dubious license for zfs can be linked to the GPL licensed kernel without being invitation of one of those licenses.
It's having a stable foundation of the kernel's API that others can code against. As it stands, the (compat) shim layer(s) have to constantly be tweaked for new kernels:
> Upcoming Linux 6.7 release will change a couple of interfaces. Adapt or die!
And "dubious license"? Really? Given the incorporation of CDDL code of DTrace into macOS and FreeBSD, and of OpenZFS into FreeBSD (and almost into macOS), it seems that license is quite flexible and usable, and that any limitations exist on the GPL side of the equation.
> To my knowledge the latter is a violation of GPL should it be the inverse and therefore an explicit exemption would need to be put in place for the shim in the GPL and that is the showstopper.
How is coding against an API a violation of the GPL? Neither Nvidia's, nor OpenZFS's, code is a derivation of any GPL: (Open)ZFS was created on a completely different operating system, and was incorporated into others (e.g., FreeBSD, macOS), so I'm not sure how anyone can argue with a straight face that OpenZFS is derived from GPL.
Similarly for Nvidia: how can it be derived from GPL Linux when it the same driver is available for other operating systems (and has been for decades: I was playing RtCW on FreeBSD in 2002):
It's one of the reasons the whole DKMS infrastructure had to be created: since API stability does not exist you have to rebuild kernel modules for every kernel—even open source ones like OpenZFS, Lustre, BeeGFS, etc.
> I'm not sure how anyone can argue with a straight face that OpenZFS is derived from GPL
GPL requires any code linked against it which fundamentally requires it to be useful (Nvidia/zfs linked into the linux kernel to be used in linux) to also be licensed as GPL or GPL compatible. To my knowledge that was the major stopper for zfs and a major stopper for me to use any GPL code in software I plan to distribute. IANAL but GPL is vague enough that it can be argued either way. The "dubious license" terminology was incorrect from me, I was referring to it not being GPL compliant or at least there is skeptocism about whether it is. The BSD license does not have these restrictions and is fine.
Regarding the compat shim, if it has to link to any kernel APIs stability isn't guaranteed, if you want a reasonable guarantee of stability then as one of the above comments mentioned and I alluded to. Do the legwork to allow userspace drivers in the linux kernel, nobody said it's easy and it seems like the consensus is to just keep the shim up to date instead of trying to push that but if you want a stable API to code against that's your path. As was mentioned in this comment section Linus has publicly stated where possible userspace APIs are to be treated as sacred.
It's having a stable foundation of the kernel's API that others can code against. As it stands, the (compat) shim layer(s) have to constantly be tweaked for new kernels:
> Upcoming Linux 6.7 release will change a couple of interfaces. Adapt or die!
* https://github.com/openzfs/zfs/pull/15681
And "dubious license"? Really? Given the incorporation of CDDL code of DTrace into macOS and FreeBSD, and of OpenZFS into FreeBSD (and almost into macOS), it seems that license is quite flexible and usable, and that any limitations exist on the GPL side of the equation.
> To my knowledge the latter is a violation of GPL should it be the inverse and therefore an explicit exemption would need to be put in place for the shim in the GPL and that is the showstopper.
How is coding against an API a violation of the GPL? Neither Nvidia's, nor OpenZFS's, code is a derivation of any GPL: (Open)ZFS was created on a completely different operating system, and was incorporated into others (e.g., FreeBSD, macOS), so I'm not sure how anyone can argue with a straight face that OpenZFS is derived from GPL.
Similarly for Nvidia: how can it be derived from GPL Linux when it the same driver is available for other operating systems (and has been for decades: I was playing RtCW on FreeBSD in 2002):
* https://www.nvidia.com/en-us/drivers/unix/
It's one of the reasons the whole DKMS infrastructure had to be created: since API stability does not exist you have to rebuild kernel modules for every kernel—even open source ones like OpenZFS, Lustre, BeeGFS, etc.
* https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support