Hacker News new | ask | show | jobs
by betaby 3254 days ago
I guess only Oracle can change the license, since they own original ZFS now.
1 comments

Oracle can't change the license alone. While Oracle is the majority copyright holder, some parts are copyrighted by other people and/or organisations. In fact, this was one of the building principles of the CDDL license.

This ZFS on Linux project mentioned in the article doesn't use the current Oracle ZFS code (which is proprietary), but rather the OpenZFS code which has had very significant changes that happened post-Oracle fork by parties other than Oracle.

Almost all of ZoL is under "CDDL 1.0 or later". Oracle could release a new version of CDDL that explicitly made the ZoL project GPL compatible.
> Oracle could release a new version of CDDL that explicitly made the ZoL project GPL compatible.

By allowing ZFS-derived works to be licensed under GPL, I suppose. I wonder if they could do it without allowing for a GPL fork which would become unmergable to the upstream?

The problem would be similar to MIT or Apache licensing a project. It is very uncommon for someone to create a fork of an existing project _just_ to change the license. Most of the people working on OpenZFS are unlikely to just switch licenses, the net result would just be to allow dual-licensing under GPLv2 so you can use it in Linux.
People working on OpenZFS are unlikely to switch licenses, but somebody (presumably a company) could possibly develop an "improved" fork to make money on it and refuse to contribute back, at which point Oracle would be forced to switch to GPL if the fork takes off.

Dunno, it's just a hypothetical question and speculation whether there are any sensible reasons for Oracle to maintain status quo.

ZoL and upstream ZFS have already diverged significantly, since Oracle stopped releasing source several years ago.
> Almost all of ZoL is under "CDDL 1.0 or later"

Actually no, it is not.

CDDL requires you to opt out of later versions. 9 files (out of 219) totaling 950 lines (out of over 190,000) in the ZoL kernel code claim to be 1.0 only. What definition of "Almost all" are you using?
I'm not sure you understand the situation, which is surprising with how much time you spend talking about it - is this willful? - Oracle (And Sun before them) do not hold all of the copyrights involved. Some of them are held by third parties.

The CDDL was written to be as permissive as possible within the boundaries they are held to by these third parties.

It is impossible for Oracle to release a version of the license that is GPL compatible without completely removing all of these third party components they do not hold the copyright to.

I would recommend reading section 4 of the CDDL (it's actually very similar to section 6 of the MPL 1.1 because that's what it was based on).

In particular, it has an or-any-later version clause that is opt-out. This means that if Oracle decided to release CDDL 2.0 tomorrow that was GPL-compatible, anyone with CDDL 1.0 licensed (without the opt-out) codebases could then use it in conjunction with GPL code (by exercising the upgrade path). From memory, the original ZFS codebase (and also OpenZFS) doesn't exercise the opt-out -- which means that they can be switched this way. [This is basically how you would take LGPLv2 code and put it into an AGPLv3 codebase (LGPLv2 -> GPLv2+ -> GPLv3+ -> AGPLv3+).]

I believe that's what they were trying to say. I'm not a lawyer (as usual) but that was the opinion of the community a few years ago. Canonical decided to just "go for it" and see whether Oracle will sue them. We'll see what happens in the future.

I've read it. That doesn't mean that all of the files are licensed with the any-or-later clause.

I believe it was in the same talk that Cantrill likened Ellison to a lawnmower, but an ex-Sun employee talked about how the tangled legal web of who owned what part of Solaris precluded them from being able to release it under the GPL, and thus the CDDL was born. My understanding is that, if any of these bits that they do not own themselves and have restrictions on how they can license them, were licensed in such a way that they could be switched to the GPL or a GPL-compatible license, then Sun and now Oracle would probably be out of compliance with the terms they are bound by. My educated guess is that the files that have opted out of the update mechanism are the files that are in this situation.

It's also unlikely that Oracle would be the ones to sue Canonical - the CDDL license doesn't include any provisions that would give them the ability to sue. I'm sure they have copyrights on some parts of the Linux kernel, which they could potentially use to sue if they truly believe that they could win a case in court to show that OpenZFS is a derivative work of the kernel.

> I've read it. That doesn't mean that all of the files are licensed with the any-or-later clause.

You're right, only 96% of the files and 99.5% of the code are.

> My educated guess is that the files that have opted out of the update mechanism are the files that are in this situation.

The files that have opted out contain very little in the way of interesting code, so I don't believe this to be true.

The basic misunderstanding is that Oracle does not own the the copyright to all of OpenZFS. A lot of code in the OpenZFS code base is not under any sort of copyright assignment to Oracle. To change the license on the whole, you would need Oracle and all the contributors who have not done copyright assignments to agree to re-license their code.
I'm going to repeat this again. It's got nothing to do with copyright assignment. The license that the code is under (CDDL), by default, allows Oracle to provide newer versions that anyone can update their copy of the code to.

It's effectively the same mechanism as MPL's update system, and also effectively the same as GPL's update mechanism. You can take a GPLv2-or-later codebase and redistribute it as GPLv3-or-later because the FSF has released GPLv3. Similarly, you can take a CDDL-1.0 codebase and redistribute it as CDDL-2.0 because the "or any later version" clause is implicit and opt-out.

If you agree that GPLv2-or-later code (regardless of who owns the copyright) can be redistributed or combined with GPLv3-or-later code, then you agree with the basic point of what I'm saying. Obviously the specifics are different but the basic idea is the same.

Seriously. Read section 4 of the CDDL[1]. It's only three short paragraphs.

[1]: https://github.com/zfsonlinux/zfs/blob/master/OPENSOLARIS.LI...

They agreed to that when they released the code under CDDL without specifying that it was restricted to version 1.0. Look at how Wikipedia was relicensed from GFDL to CC-BY-SA for an example of this.
>Oracle does not own the the copyright to all of OpenZFS

True, but I don't think the OpenZFS developers would be against relicensing their code to be GPL compatible,they are offering a Linux version of OpenZFS after all, so if Oracle would re/dual license their part of the code in a GPL compatible manner I'm sure the OpenZFS devs would do the same.

> It is impossible for Oracle to release a version of the license that is GPL compatible without completely removing all of these third party components they do not hold the copyright to.

I don't think this can be accurate. Ownership of ZFS-related code is not tied to being the license steward - Oracle could theoretically pass off license steward duties to a third party without passing ZFS copyrights or obligations to the same third party. That third party could then change the terms of the CDDL without having any obligations towards those third parties.

In any case, it doesn't make sense - the CDDL is more permissive than GPL 2.0 other than its patent clause, and (as far as this discussion is concerned) the only relevant party covered by 6.2 is Oracle.

So, uh, citation strongly needed.

there is a lot of self-confidence in your reply, but it doesn't address his/her point: that there is essentially a "loophole" that Oracle could exploit if they wanted to by writing a new version of the CDDL.

his/her contention is that most of the code has been released without the explicit opt-out for a more recent version of CDDL.

there's no need to get nasty; just bring the facts.

As others have pointed out, some parts of the ZFS code exercise the opt-out and do not include the update mechanism.