Remix.run Logo
evanjrowley 4 days ago

Sometimes I wonder how someone so talented could be so wrong about ZFS, and it makes me wonder if his negative responses to ZFS discussions could be a way of creating plausible deniability in case Oracle's lawyers ever learn how to spell ZFS.

aaronmdjones 3 days ago | parent | next [-]

As far as I know, the license incompatibility is on the GPL side of the equation. As in, shipping a kernel with the ZoL functionality is a violation of the GPL, not the CDDL. Thus, Oracle would not be able to sue Canonical (Edit: or, rather, have any reasonable expectation of winning this battle), as they have no standing. A copyright holder of some materially significant portion of the GPL code of the kernel would have to sue Canonical for breaching the GPL by including CDDL code.

I am not a lawyer.

cyphar 3 days ago | parent | next [-]

The Software Freedom Conservancy did a legal analysis and concluded that the incompatibility comes from both sides[1]. This also applies to the pre-2.0 MPL that CDDL was based on.

A lot of people focus on the fact that the CDDL allows binaries to be arbitrarily licensed so long as you provide the sources, but the issue is that the GPL requires that the source code of both combined and derived works be under the GPL and the CDDL requires that the source code be under the CDDL (i.e., the source code cannot be sublicensed). This means that (if you concluded that OpenZFS is a derived work of Linux or that it is a combined work when shipped as a kernel module) a combination may be a violation of both licenses.

However, the real question is whether a judge would look at two open source licenses that are incompatible due to a technicality and would conclude that Oracle is suffering actual harm (even though OpenZFS has decades of modifications from the Oracle version). They might also consider that Oracle themselves released DTrace (also under the CDDL) for their Linux distribution in 2012 as proof that Oracle doesn't consider it to be license violation either. If we did see Canonical get sued, maybe we'd finally be able to find out through discovery if the CDDL was intentionally designed to be GPL incompatible or not (a very contentious topic).

[1]: https://sfconservancy.org/blog/2016/feb/25/zfs-and-linux/

ajb 3 days ago | parent | prev [-]

Oracle do also make GPL'd contributions to the Linux kernel. So by that reasoning , they would have standing.

It would be an interesting lawsuit as the judge might well ask why as copyright holder of ZFS they can't solve the problem they are suing over. But I think you underestimate the deviousness of oracle's legal dept.

koverstreet 3 days ago | parent [-]

If it ended up before Alsup we'd be fine.

Venue shopping being what it is, though...

chao- 3 days ago | parent | prev | next [-]

How many years has it been since Ubuntu started shipping ZFS, purportedly in violation of whatever legal fears the kernel team has? Four years? Five years?

I obviously have nothing like inside knowledge, but I assume the reason there have not been lawsuits over this, is that whoever could bring one (would it be only Oracle?) expects there are even-odds that they would lose? Thus the risk of setting an adverse precedent isn't worth the damages they might be awarded from suing Canonical?

p_l 3 days ago | parent | next [-]

The legal issues between Linux kernel and ZFS are that Linux license does not allow incorporating licenses with more restrictions - including anything that puts protections against being sued for patented code contributed by license giver.

chao- 3 days ago | parent [-]

I am aware of that. I did a bad job phrasing my post, and it came off sounding more confident than I actually intended. I have two questions: (1) What are the expected consequences of a violation? (2) Why haven't any consequences occurred yet?

My understanding is that Canonical is shipping ZFS with Ubuntu. Or do I misunderstand? Has Canonical not actually done the big, bad thing of distributing the Linux kernel with ZFS? Did they find some clever just-so workaround so as to technically not be violation of the Linux kernel's license terms?

Otherwise, if Canonical has actually done the big, bad thing, who has standing to bring suit? Would the Linux Foundation sue Canonical, or would Oracle?

I ask this in all humility, and I suspect there is a chance that my questions are nonsense and I don't know enough to know why.

p_l 3 days ago | parent [-]

Oracle has no standing.

Additionally, GPLv2 does not prevent shipping ZFS combined with GPL code, because CDDL code is not derivative work of GPLv2 code. So it's legal to ship.

It could be problematic to upstream, because kernel development would demand streamlining to the point that the code would be derivative.

Additionally, two or three kernel contributors decided that the long standing consensus on derivative work is not correct and sued Canonical. So far nothing happened out of that, Los Alamos National Laboratory also laughed it off.

tzs 3 days ago | parent [-]

> Additionally, GPLv2 does not prevent shipping ZFS combined with GPL code, because CDDL code is not derivative work of GPLv2 code. So it's legal to ship.

The CDDL code is not a derivative work of GPLv2 code, but the combined work as a whole is a derivative work of GPLv2 code (assuming by "combined" we are talking about shipping an executable made by compiling and linking GPLv2 and CDDL code together). Shipping that work does require permission from both the GPLv2 code copyright owners and the CDDL code copyright owners unless the code from on or the other can be justified under fair use or if it was a part of the GPLv2 or CDDL code that is not subject to copyright.

What Canonical does is ship ZFS as a kernel module. That contains minimal GPLv2 code from the kernel that should be justifiable as fair use (which seems like a decent bet after the Oracle vs Google case).

p_l 3 days ago | parent [-]

The derivative portions of the ZFS driver are dual-licensed GPLv2/CDDL.

The CDDL-only parts of the driver are portable between OSes, removing the "derivative code" argument (similar argumentation goes back to introduction of AFS driver for Linux, IIRC).

Remember, GPLv2 does not talk about linking. Derivativeness is decided by source code, among other things whether or not the non-GPL code can't exist/operate without GPL code.

chao- 2 days ago | parent [-]

I appreciate the detailed explanations. I understand some of the basics, and this has given me some more routes to read up on and learn.

tuna74 3 days ago | parent | prev [-]

It could be a long term strategy by Oracle to be able to sue IBM and other big companies distributing Linux with ZFS built in. If Oracle want people to use ZFS they can just relicense the code they have copyright on.

highpost 3 days ago | parent | next [-]

Ubuntu ships OpenZFS as a separate prebuilt kernel module for ZFS (zfs-dkms). Interestingly, they also have ZFS support in GRUB to support booting from ZFS:

  * read-only and minimal
  * fully aware of different Linux boot environments
  * GPLv3 license compatible, clean-room implementation by the OpenSolaris/Illumos team. The implementation predates Ubuntu’s interest.
p_l 3 days ago | parent | prev [-]

Oracle does not have copyright on OpenZFS code - only on the version in Solaris.

The code in OpenZFS and Solaris has diverged after Oracle closed OpenSolaris.

messe 3 days ago | parent [-]

> The code in OpenZFS and Solaris has diverged after Oracle closed OpenSolaris.

Diverged. Not rewritten entirely.

m-p-3 3 days ago | parent [-]

Sure, but Oracle cannot retroactively relicense the code already published before then. The cat's already out of the bag, and as long as the code from before the fork is used according to the original license, it's legal.

messe 3 days ago | parent [-]

I think you might have missed the point.

Yes. Oracle have that copyright.

That's the whole fucking point.

Anything from before the fork is still licensed (and pretty much everything after) is still under the CDDL which is possibly in conflict with the GPL.

p_l 3 days ago | parent [-]

Oracle can't do anything. They can't relicense code that was already released as CDDL in any form other than what they did when they closed down Solaris.

The CDDL being unacceptable is the same issue that GPL3 or Apache is unacceptable - unlike GPLv2, CDDL mandates patent licensing as far as the code is considered.

cyphar 3 days ago | parent [-]

Oracle is the license steward for CDDL, they have the right to release CDDL-2.0 and make it GPL-compatible which users would then be allowed to chose to use. Mozilla did the same thing with MPL-2.0 (CDDL was based on MPL-1.0), though the details are a little more complicated.

Unlike the GPL, the CDDL (and MPL) has an opt-out upgrade clause and all of OpenSolaris (or more accurately, almosf all software under the CDDL) can be upgraded to "CDDL-1.1 OR CDDL-2.0" unilaterally by Oracle even if they do not own the copyrights. See section 4 of the CDDL.

p_l 3 days ago | parent [-]

0) Assuming Oracle actually retains the stewardship of license:

1) Making CDDL compatible with GPLv2 puts everyone using CDDL code at mercy of Oracle patents

2) OpenZFS is actually not required to upgrade, and the team has indicated they won't. So you end up with a fork you need to carry yourself. Might even force OpenZFS to ensure that it's specifically 1.0.

Ultimately it means Oracle can't do much with this.

cyphar 2 days ago | parent [-]

0) They do.

1) They could just adapt MPL-2.0, which provides GPLv2+ compatibility while still providing the same patent grants.

2) The upgrade is chosen by downstream users. The OpenZFS project could ask individual contributiors to choose to license their future contributions differently but that will only affect future versions and isn't a single decision made by the project leads. I don't know in what context that discussion was in but given that the have not already opted-out of future CDDL versions kind of indicates that they can imagine future CDDL versions they would choose to upgrade to.

Also, OpenZFS is under CDDL-1.1 not 1.0.

pabs3 2 days ago | parent [-]

IIRC from LWN discussions, some of the newer OpenZFS code is now CDDL-1-only and could not be upgraded to CDDL-2.0 without explicit agreement from the owners of the new code.

wmf 4 days ago | parent | prev | next [-]

If Linus has never touched ZFS that's not plausible deniability. That's actual deniability.

MathMonkeyMan 4 days ago | parent [-]

The most plausible deniability!

p_l 3 days ago | parent | prev [-]

Oracle lawyers know how to spell ZFS.

But Sun ensured that they can only gnash their teeth.

The source of "license incompatibility" btw is the same as from using GPLv3 code in kernel - CDDL adds an extra restriction in form of patent protections (just like Apache 2)