
GPL Violations Related to Combining ZFS and Linux (2016) - tosh
https://sfconservancy.org/blog/2016/feb/25/zfs-and-linux/
======
CannisterFlux
Here's the other side of the argument:

[https://insights.ubuntu.com/2016/02/18/zfs-licensing-and-
lin...](https://insights.ubuntu.com/2016/02/18/zfs-licensing-and-linux/)

"""The CDDL cannot apply to the Linux kernel because zfs.ko is a self-
contained file system module — the kernel itself is quite obviously not a
derivative work of this new file system.

And zfs.ko, as a self-contained file system module, is clearly not a
derivative work of the Linux kernel but rather quite obviously a derivative
work of OpenZFS and OpenSolaris."""

This has been shipped in Ubuntu for a year now and nothing bad has happened,
so it must be OK. Maybe.

~~~
DannyB2
What "other side" of the argument.

If you read the GPL, it is clearly designed to prevent EXACTLY this thing. I'm
sure as it was being written, Microsoft was envisioned as the evil entity that
would steal free software and mix it with closed proprietary code. The license
is clearly and deliberately designed to prevent this.

The "other side" may not see it this way. But the "other side" must abide by
all involved licenses, including the GPL. Their own license, and the GPL
license. The GPL is clear that if you cannot abide by all licenses, then don't
do this.

~~~
Nokinside
[http://yarchive.net/comp/linux/gpl_modules.html](http://yarchive.net/comp/linux/gpl_modules.html)

\----8<\----

But one gray area in particular is something like a driver that was originally
written for another operating system (ie clearly not a derived work of Linux
in origin). At exactly what point does it become a derived work of the kernel
(and thus fall under the GPL)?

THAT is a gray area, and _that_ is the area where I personally believe that
some modules may be considered to not be derived works simply because they
weren't designed for Linux and don't depend on any special Linux behaviour.

Basically:

\- anything that was written with Linux in mind (whether it then _also_ works
on other operating systems or not) is clearly partially a derived work.

\- anything that has knowledge of and plays with fundamental internal Linux
behaviour is clearly a derived work. If you need to muck around with core
code, you're derived, no question about it.

Historically, there's been things like the original Andrew filesystem module:
a standard filesystem that really wasn't written for Linux in the first place,
and just implements a UNIX filesystem. Is that derived just because it got
ported to Linux that had a reasonably similar VFS interface to what other
UNIXes did? Personally, I didn't feel that I could make that judgment call.
Maybe it was, maybe it wasn't, but it clearly is a gray area.

Personally, I think that case wasn't a derived work, and I was willing to tell
the AFS guys so.

Does that mean that any kernel module is automatically not a derived work?
HELL NO! It has nothing to do with modules per se, except that non-modules
clearly are derived works (if they are so central to the kernel that you can't
load them as a module, they are clearly derived works just by virtue of being
very intimate - and because the GPL expressly mentions linking).

So being a module is not a sign of not being a derived work. It's just one
sign that _maybe_ it might have other arguments for why it isn't derived.

    
    
    		Linus
    

\----8<\----

The real issue is if anyone who can claim copyright to Linux kernel will sue
Canonical. I don't think so.

~~~
DannyB2
A Linux kernel module is a derived work of the kernel and under GPL. While ZFS
may not be a derived work of Linux, you have to glue it to GPL code. And the
GPL license is viral.

Is it possible to glue a kernel module shim to something else under License A,
glued to another shim under License B, etc until you have license
compatibility with ZFS?

At the very least, this would seem to violate the very spirit of what the GPL
intends.

~~~
resf
Stupid question: can the glue code not be licensed under both GPL and CCDL?

Clearly ZFS is not a derivative work of Linux and Linux is not a derivative
work of ZFS. Only the glue code is in violation (because it derives from
both).

~~~
cryptonector
I'm not sure this is true. It's certainly possible to construct an API/ABI
such that one could build the glue, or even dispense with it, without having
to use any part of ZFS or the kernel to build the other or the glue. I'm not
saying that's been done. But it could be done. Indeed, that's what FUSE is,
for example, and that's what NDIS does, for another.

To determine whether there is glue here that violates the GPL would require
looking at the particulars. Said glue might be licensed under the GPL, and
might export the sorts of interfaces that Illumos does, thus allowing the ZFS
module to link without reference to either the glue or the kernel! Then how
could such glue be said to violate the GPL? It couldn't! Nor could ZFS be said
to be violating the GPL in that case.

I don't think you can avoid an escape hatch for the GPL in the kernel without
disallowing dynamic loading or modifying the GPL to have harsher terms. But
recall that the GPL, and/or much software distributed under the GPL, is
designed to have escape hatches: so you can run proprietary software using
standard interfaces, for example (i.e., user-land code is not required to be
GPLed just because it runs on a GPLed kernel, though a kernel could require
it, it's just that _Linux_ doesn't).

It seems here you can't have your cake and eat it too.

------
Daviey
Please add 2016 to the title. I thought this was going to be a new standpoint
on this topic, with a new release yesterday.. I thought something had changed.

The release yesterday has some great new features:
[https://news.ycombinator.com/item?id=14864145](https://news.ycombinator.com/item?id=14864145)

------
poizan42
Previous discussion here:
[https://news.ycombinator.com/item?id=11176107](https://news.ycombinator.com/item?id=11176107)

------
ivl
> As such, we again ask Oracle to respect community norms against license
> proliferation and simply relicense its copyrights in ZFS under a
> GPLv2-compatible license.

Why in the world would they do that, though? Oracle pretty clearly does not
value community goodwill, nor do they gain anything by trying to go through
the process of re-licensing ZFS.

~~~
tedunangst
Kind of a strange request, too. CDDL predates GPLv3 by a few years. If they
care so much about license proliferation, they should argue against GPLv3 too.

~~~
belorn
The kernel isn't licensed under GPLv3.

------
ajarmst
This is not a new argument or discussion. The Conservancy, and GNU (especially
Eben Moglen, who tends to get deferred to on interpretations of the GPL, for a
variety of good reasons) believe the distribution of the drivers inside a
binary memory image like initrd constitute a violation of the license(s). The
only way to determine definitely if they are correct (I happen to think they
are, but that's irrelevant) is if a copyright holder with standing decides to
issue a desist and the thing carries on into court. My (also irrelevant)
opinion is that if that were to occur Canonical would probably revert to
Debian's solution of shipping ZFS as source-only rather than litigate it. As
it currently stands, none of this seems likely to happen, so further
conversation about it isn't really relevant or particularly useful.

~~~
ajarmst
Addendum: there is one relevant thing. If Canonical actually agree that
they're violating the license(s) and are just doing it anyway, then there's
probably some warranted discussion. But even that is more an issue for the
community than one for IP law (unless Canonical is doing it precisely to force
a definitive license interpretation. I see no evidence of this). If it's just
a case that one set of people think it's a violation and Canonical
disagreeing, then it's doesn't become an issue until someone with standing
decides to make it one.

------
__s
Tried to find where Torvalds stands on this matter. Only dug up some mailing
list post from 2007:
[https://lkml.org/lkml/2007/6/12/232](https://lkml.org/lkml/2007/6/12/232)

I do know he's very never-get-lawyers about compliancy

Also found this old comment from awhile back:
[https://news.ycombinator.com/item?id=11176937](https://news.ycombinator.com/item?id=11176937)

------
bubblethink
What is Oracle's strategy for ZFS and Solaris other than continuing support
for existing products ? There were quite a few stories about the imminent
death of Solaris earlier this year. Wouldn't Oracle stand to benefit from an
official ZoL product that they can sell with their linux product ?

~~~
4ad
> There were quite a few stories about the imminent death of Solaris earlier
> this year.

Those stories were unsubstianted FUD. Solaris is alive and kicking. I would
know, because I am working on a particular component that will be part of the
next version of Solaris.

~~~
cyphar
Not to stir the pot, but what do you think of illumos (especially since most
of the original Solaris talent left Oracle after the OpenSolaris fiasco in
2010 and went to work on illumos).

~~~
4ad
> what do you think of illumos

It's great. I love it. I wish Solaris was still open sourced and the open
source aspect of it better managed than it used to be in OpenSolaris days so
that there wouldn't be any need of a fork but I like it.

> especially since most of the original Solaris talent left Oracle after the
> OpenSolaris fiasco in 2010 and went to work on illumos

A lot of people left indeed. But most people? Hmm...

------
kronos29296
It's all free software but due to license proliferation, we have this mess.
Hope somebody relicenses and everybody becomes happy. After all from what I
hear ZFS is a great file system for recovering backups and better than ext4.
And the BSD guys are using it all the time.

------
DiabloD3
This post basically discusses Ubuntu's shipping of ZoL kernel modules, stock,
inside of their initrd image, from what I can tell.

Which, in short, is a violation of the GPL and/or the CDDL. Now, if you go and
build your own modules and not distribute them (such as using DKMS to build
from source via Debian's zfs-dkms and spl-dkms, which Ubuntu decided not to do
as well), then it's fine. No violation here, and the linked article basically
says this inside of a bunch of wiggle room just in case they ever need to say
they didn't say that.

As a ZoL user on Debian, Ubuntu usage of ZFS is a bit irritating. ZFS is hands
down the best file system out there, and Ubuntu fouling up things with their
style of politics isn't okay.

~~~
unixhero
I really don't get it. Why (is it) (that you feel) Ubuntu is fouling up
anything by including ZFS into their os shipment?

~~~
radiowave
The SFC article doesn't seem to me to be very clear on this point, but I
wonder it has to do with shipping a memory image.

Many years ago there was a disussion between a member of the Squeak Smalltalk
community (an IP lawyer by day) and the FSF's Eben Moglen. Moglen's position
was roughly along the lines that libraries that are not considered to be
deeply linked while out on disk in separate files, _become_ deeply linked when
loaded into RAM (or maybe into the same process's virtual address space, or
something), such that taking a memory image of such a combination of modules,
and using it as a means of distribution would be sufficient to trigger the
"viral" aspect of the GPL.

(Since Smalltalk systems tend to rely heavily upon memory images, this is why
GPL code became distinctly unwelcome in most Smalltalk communities, presumably
except for GNU Smalltalk.)

------
thrillgore
I don't get it. If the ZFS module was built without GPL components, it being
referenced as a compiled binary is still permitted by the GPL, right?

------
kstenerud
OMG this is ridiculous. If you want to be a zealot, go ahead, but nobody will
like you.

I like ZFS. I like Linux. I love the two together. I don't care about the
niggling legal interpretations that they themselves agree have never even been
tested by the courts.

If they really want to push this, bring it to the courts. Put up or shut up.

~~~
appleflaxen
none of this is relevant to the discussion.

anybody can download the two software packages and link them together. As long
as you don't _redistribute_ them, then you are completely compliant with both
licenses.

as a result, the only discussion here is for distributors of the programs
(such as canonical, debian, etc).

~~~
thrillgore
And even then all Canonical needs to do is include a utility to allow you to
pull down the ZFS binaries. They did something similar for the old AMD Radeon
drivers years ago.

------
kevincox
If ZFS was licensed under a license that was identical, except the name was
OPL, would this be an issue?

I guess I am asking if the GPL is compatible with itself under a different
name? Because if it isn't that seems like an unfortunate feature.

------
et2o
So the root of the incompatibility is essentially that even though both the
GPL and Oracle open source licenses offer similar protections, they both are
not allowed to be combined with other licenses.

Obviously you'd hope that if Oracle licensed it under a permissive license,
the whole point of doing so was to enable third party usage and thus they
won't be taking legal action against this kind of minor and technical
infringement (if it actually is). However counting on Oracle the company to
act in good faith might not be smart.

~~~
db48x
You can combine GPL-licensed code with code licensed under many other similar
licenses without any trouble. This pairing is not viable because the terms of
the two licenses are not mutually compatible.

------
gbrown_
What a load of FUD.

