
Big News for ZFS on Linux - bcantrill
http://dtrace.org/blogs/ahl/2016/03/07/big-news-for-zfs-on-linux/
======
jordigh
I know it seem silly to care about licensing in this case, since it's about
GPL incompatibility between two free licenses. However, the problem here is
the precedent that it sets. If ZFS distributed this way, in binary form linked
to Linux, does not infringe Linux's copyleft, then this could open the doors
for other kinds of proprietary blobs to grow on top of Linux. That is SFC's
analysis,

    
    
        Indeed, Conservancy believes this situation is one
        battle in a larger proxy war by those who seek to
        limit the scope of strong copyleft generally.
    

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

I also fear about what Oracle could do, as they are copyright holders of parts
of Linux (btrfs) and might decide to make things difficult for Canonical.
Oracle has misused copyleft aggressively in the past, trying to strong-arm
people into buying GPL exceptions for MySQL when they didn't need one,
although in this case, they probably do have a good case for why a GPL
exception would be necessary.

~~~
dbcurtis
So, correct me if I'm wrong, but isn't the license incompatibility related to
shipping binaries of zfs? If a user chooses to compile locally from zfs
sources, then the license issues don't apply, correct? So this is not an issue
for, say, Gentoo, Funtoo, LFS, etc, and only an issue for Canonical because
they are not interested in a mechanism that allows users to build packages
from source, am I correct? I'm thinking something something along the lines of
"Here is a tarball containing the sources and a container instance you can
spin up. It leaves a .deb behind." What part of this am I missing?

~~~
danudey
Two points to this:

First, it's not without precedent. qmail's license prohibited binary
redistribution (as well as modified source code distribution), and Debian's
solution was packages that, as part of the install, patched, built, and
installed qmail from sources on the target machine.

Secondly, this is already an option. The ZFS on Linux project [0] provides
packages which do exactly this, by:

1\. Distributing kernel sources and building them against the currently
install(ed) kernel(s) via dkms. This is actually a common mechanism for module
distribution, and is also used by Virtualbox, or anyone else distributing
kernel extensions, closed-source or not, which aren't included in the mainline
kernel.

2\. Providing the userspace binaries to interact with the custom-built ZFS
kernel modules built on behalf of the user in #1.

The difference here is Ubuntu distributing binary versions of the modules _in
the base install_ , which is important for things like installing on ZFS root,
or accessing ZFS filesystems during install.

~~~
dbcurtis
> modules in the base install, which is important for things like installing
> on ZFS root

Ah yes, the bootstrapping problem.

~~~
Dylan16807
An init script or the installer script could compile the module. Awkward but
not hard.

We can bootstrap much more difficult things. For example booting from kernel
source:
[http://www.bellard.org/tcc/tccboot.html](http://www.bellard.org/tcc/tccboot.html)

------
DCKing
Last I joined in on the discussion I got quite convinced by the argument "if
Nvidia can use a propietary license for their Linux graphics driver, then
Canonical can use the CDDL for their ZFS driver". Substitute for any other
propietary modules that people like to load in their Linux kernels.

Can anyone point me out why this argument is wrong? Googling around for this I
was actually suprised that propietary kernel modules _are_ in fact a debated
topic (obviously to little success of the opponents), but doesn't the
practical existence of propietary kernel modules at least show that no-one has
had a problem with this for a long time, legally speaking?

~~~
mschwaig
The problem is not the use per se, the problem is delivering them to the user
as one blob of software together. This is not a problem with proprietary
graphics drivers, since you can just download them after setting up you
system. However, if you want to boot from a ZFS disk, you need the ZFS driver
and the only way to obtain it at that point is effectively from the
installation medium.

~~~
DCKing
OK, fair enough. So distributions that ship the Nvidia drivers in their distro
install image (AFAICT OpenELEC does this, not Canonical though) should be in
trouble then? And Canonical would find a way around this by autodownloading
the ZFS driver when the user select the "ZFS" option in the installer?

~~~
mschwaig
IANAL but as far as I can tell there is no legal precedent here and so the
questions you raise can only be answered by a lawsuit. Sure there is
'technically' a difference between packaging the ZFS driver with Ubuntu and
audodownloading it, but it all depends on how a court sees it, because as long
as there is no precedent you can't get off on a technicality like this.

------
static_noise
This was in the news before. What's the big new thing about this article? It
reads like a writeup of the news of yesterday. Also, ZFS is not coming to
Linux as such, it's coming to Ubuntu specifically and the article does not
clear up the detail why this is now possible for Ubuntu but was not possible
for the rest of the Linux community.

~~~
jerf
Am I really reading this correctly, that the plan seems to be "ignore the
possible license incompatibility and hope Oracle doesn't sue?"

Because of all ways to fill in the "Hope _____ doesn't sue" plan, "Oracle"
must be in the top 5 worst companies to fill in the blank with in the tech
industry.

~~~
Sanddancer
No, the plan was, "have the lawyers evaluate the possible license
incompatibility, decide that the really isn't one, and release the module."
The SFLC is essentially running a FUD campaign here by trying to paint
Canonical as being reckless.

~~~
chei0aiV
SFLC seem to think CDDL/GPL are ok:

[https://softwarefreedom.org/resources/2016/linux-kernel-
cddl...](https://softwarefreedom.org/resources/2016/linux-kernel-cddl.html)

Perhaps you are confusing them with SFC:

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

------
NoGravitas
I suspect "Just ignore the licences and focus on the technology" is not going
to fly with enterprise customers.

~~~
jra_samba
Yep. It's all fun and games until the lawsuits start :-).

I don't understand people like this. If they were advocating using pirate
copies of Microsoft Windows or other proprietary software, would they be
saying "ignore Microsoft legal department and focus on how _cool_ it is that I
get a free copy of Windows ?

Stupid, stupid, stupid.

~~~
brazzledazzle
I think it's safe to say there's a world of difference between license
violations for a piece of software that's closed source, proprietary and sold
for profit and a license incompatibility on two open source projects caused by
a single clause in licenses that are otherwise compatible.

You may have the chops and cred to call someone stupid that wrote dtrace but
I'd certainly hesitate before doing so myself.

~~~
jra_samba
People can be very smart technically, yet legally very naive. This is a very
naive legal position, which I certainly feel justified in calling "stupid,
stupid, stupid".

~~~
brazzledazzle
Certainly if I was a lawyer I'd probably feel comfortable using an insult like
"stupid" to describe a legal position but I'm not. You might be, I don't know.
But it's still unnecessarily negative.

------
jinxedID
Google cache:
[http://webcache.googleusercontent.com/search?q=cache:scs1wYb...](http://webcache.googleusercontent.com/search?q=cache:scs1wYblGe0J:dtrace.org/blogs/ahl/2016/03/07/big-
news-for-zfs-on-linux/+&cd=1&hl=en&ct=clnk&gl=ca)

------
git-pull
> Oracle holds a copyright on most of OpenZFS since it was forked from the
> original ZFS code base. It would be within their rights to decide to
> relicense ZFS under the GPL.

Why imply it should convert to GPL? It could become GPL compatible by making
the license more permissive.

[https://blogs.oracle.com/chandan/entry/copyrights_licenses_a...](https://blogs.oracle.com/chandan/entry/copyrights_licenses_and_cddl_illustrated)

"A common misconception is about CDDL and GPL incompatibility.
(Incompatibility in the sense: to combine two source files, one under GPL and
another under CDDL, to create a common executable.) GPL is incompatible with
most licenses like Mozilla Public License, Apache, and CDDL. GPL wants you
erase those licenses and use GPL in that place, where as these licenses do not
permit erasing them. Hence the incompatibility deadlock."

~~~
gcb0
irrelevant politics, but if you aim to be included in the kernel at some
point, you must go for GPL or live with "kernel tainted" messages.

which i think is great.

~~~
mioelnir
Which is the core of the argument. ZFS is simply not aimed at being included
in the kernel at some point. Linux user's just wish it were so.

------
gtirloni
What's the situation on btrfs? It was supposed to make ZFS not that big deal
anymore on Linux.

~~~
nisa
There are lot of missing parts. Everything beyond using it for single disks or
with RAID1 is still experimental. It's slow for a lot of use cases like VMs or
OLTP ( [http://blog.pgaddict.com/posts/friends-dont-let-friends-
use-...](http://blog.pgaddict.com/posts/friends-dont-let-friends-use-btrfs-
for-oltp)) and using nodatacow does not count!

RAID1 is implemented to use the oddness of the pid to decide which disk to
read from... RAID5/6 have huge performance problems in certain use-cases.
Write hole is apparently still a thing.

Quota seems to be still broken or difficult to handle, the tooling is not
exactly nice or intuitive (this may change in the future).

Hardware failure handling is nonexistent - it can't detect a broken drive.

Lot's of other gotchas. Just read the mailing list. I've been fighting against
btrfs for a while and I'm happy when I'm not having to deal with it. Works
probably fine for desktop usage but don't bother stressing it - at the moment
it will break horrible.

~~~
cmurf
Lots of gotchas yes, but it's about as rare to see data loss on Btrfs as it is
on say linux-raid@ list for mdadm or LVM and those are much more mature. More
often is the case of some suboptimal behavior and the recommendation to get
the data off the volume and onto a newly created one. Very inconvenient for
some users to be sure, but also not data loss. About the worst I've seen
lately that wasn't hardware related needed data scraped using btrfs restore
(the tool the extracts data from an unmountable filesystem).

~~~
rleigh
This hasn't been my experience. When an md array has lost a disk, I have added
a new one and the array has transparently resynched in the background. No
interruption in service or loss of data. When a Btrfs array has lost a disk,
Btrfs oopsed the kernel, and stopped working. When I rebooted with the
hardware problem resolved, it toasted both the outdated mirror and the up-to-
date disk, causing irretrievable dataloss. Any attempt to boot the system led
to Btrfs causing an immediate kernel panic. I had to put the disks into a
system without Btrfs kernel support and use dd to zero out the Btrfs
partitions before I could use them again.

That was admittedly a few years back, but it's still a long way from
production use in many respects, while ZFS has been in production use for
years and is well documented, has good tools, and is very robust. After
several years of Btrfs problems, I gave up on it and moved to ZFS, initially
on Linux and then on FreeBSD due to it being better integrated.

~~~
Filligree
Just incidentally, 'wipefs -a' should clear out the partitions in a much
speedier manner.

------
wpietri
My favorite quote from the piece: "And it is the height of delusion to think
that Oracle would grow ears to hear, a heart to care, and a brain to decide."
And this is coming from a former Oracle employee.

------
nailer
> Canonical had their lawyers review the licenses and deemed their use of
> Linux and OpenZFS to be in compliance.

So Canonical, a tiny desktop-focused Linux company, have discovered something
that Red Hat's well paid lawyers have missed?

~~~
ryao
Do you have a legal statement from Redhat's lawyers? So far, all I heard about
their opinions has been hearsay from third parties.

~~~
nailer
The proof is in the pudding: no major company has ever shipped zfs on Linux in
the last decade, nor will they in the next decade.

------
SirMaster
What about Proxmox?

They are a commercial slightly modified Debian distro who have been shipping
ZFS with their ISOs and ready to use out of the box, even from the installer
wizard for zfs on root installs for around a year now.

Nobody has said anything about them doing this or sued them or tried to stop
them.

They are distributing the ZFS on linux binary kernel module pre-instated as
Canonical is about to do with Ubuntu.

~~~
jethro_tell
Who?

Edit: Oracle seems to have very little reason to do anything for precedent.
Canonical is both competition and a largish business, that would be done for
the money, suing proxmox would look like being a bully.

------
carapace
"Ignore pedants who would deride your pragmatic use of technology as heretical
or immoral."

That sounds like bad advice.

------
mankash666
Why ZFS on Linux when FreeBSD ships with ZFS by default, without any legal
quagmires? Also, we need a real open-source, non-GPL competitor to Linux if
there's any hope of not being taken hostage by overzealous GPL enforcement by
SFC and other GPL right-wingers.

------
newman314
"Lawyerly cosplay" ROFLMAO

------
shmerl
And here I was hoping (somewhat) that big news by now would be Oracle
relicensing OpenZSF under GPL :))

------
Zardoz84
And there is an appreciable performance difference between using ZFS and BtrFS
?

~~~
DominoTree
Massive under certain use cases, and major reliability and feature differences
too. A lot of BtrFS is still "in progress" like the copy-on-write stuff and
fault detection.

~~~
Zardoz84
Actually I'm using BtrFS on a few Ubuntu server 14.04 virtual machines. It's
very nice when I need to add extra hard disk space, and I only need to add or
expand de the virtual hard disk, and indicate to the filesystem to append the
extra new space. Also, transparent compression comes very useful, on special
when our applications are very dependent on I/O performance and need to store
a lot of write single time/read a lot of times data.

------
fibo
I hope this fixes the "read only filesystem" issue.

------
ericfrederich
on by default != default filesystem right?

------
sarath749
zsf?

------
sarath749
Real useful

------
unethical_ban
Hug of Death on the site as of 1250 CST

------
asendra
Now, how 'bout them Apples err Macs?

~~~
srgpqt
[https://openzfsonosx.org/](https://openzfsonosx.org/)

------
skrowl
Can I have big news on ZFS (or BTRFS) for Windows now? I've heard how awesome
this filesystem is, but I still can't use it.

~~~
michaelmrose
Seems unlikely that either will ever come to windows guess you should check
out ReFS or install Linux

[https://en.m.wikipedia.org/wiki/ReFS#/search](https://en.m.wikipedia.org/wiki/ReFS#/search)

~~~
ryao
The O3X project lead has joked about porting ZFS to Windows after he finished
the Mac OS X port. That is the only discussion of porting it to Windows thus
far, although there was one guy who tried reimplementing it as a userspace
filesystem on Windows, but that did not get far.

------
bladerunner82
ZFS on Linux. No, thank you. I'll continue to use ZFS natively under FreeBSD,
which is arguably a far better OS for what ZFS users would be wanting anyway.
Been using *BSD since the late 90s. Never a real issue short of HW failure. I
cannot say the same for the painful times I was forced to use Linux.

ZFS is indeed a lifesaver, but we in the BSD camps have know this for many
moons.

~~~
matthewmacleod
This is a relatively useless contribution to the discussion. Given that there
are obviously reasons why Linux has been successful while BSDs have seen less
popular usage, it must be the case that Linux or its ecosystem offers features
not found elsewhere.

Adding ZFS to Ubuntu is a benefit to everybody, and a smug, holier-than-thou
attitude really does nothing to further the conversation about the technology.

~~~
jra_samba
Nope. Adding a _legally licensed_ copy of ZFS to Ubuntu is a benefit to
everybody. Oracle haven't seen fit to do that, and they're the only ones who
can.

Sticking a hack-licensing-job into Ubuntu is damaging to the Linux ecosystem,
certainly not a benefit.

~~~
dsp1234
_they 're the only ones who can._

This is true, in the same way that it's true that the US could vote in a
constitutional amendment to allow a dictatorship.

First, Oracle only has the copyright to the original ZFS code as it existed in
2010 when they stopped working on OpenSolaris.

Second, the AUTHORS[0] file from the 'zfs on linux' project that was imported
into ubuntu lists 73 authors not including the Oracle developers, which appear
to be both individuals (gmail accounts, etc) and multiple individual
businesses (nexenta, ovh, etc). So Oracle cannot naively relicense those 6+
years of contributions, since they have no copyright over that new code. Thus
changing the license of the original ZFS code would have no effect because all
of the years of contributions since then would still be licensed as CDDL.

Third, Oracle does have exactly one 'option'. The details of the CDDL license
specifically state that is 'auto upgrades' if a new version comes out, and an
older version is not specifically mentioned. So theoretically, they could
release a CDDL license version 1.3 that has radically updated text in order to
be GPL compatible. However, since that effects all CDDL licensed code, they
would end up relicensing every bit of CDDL code (related to Oracle or not) in
the entire world. Is that something that Oracle should reasonable be expected
to do? I think this is as likely, and as reasonable, as GPL v4 coming out with
the text of the MIT license, thus affecting any GPL code in the world that
says 'or any later version'. In other words, it's just not reasonable to use
this 'one weird trick'.

So there is no remotely reasonable way in which Oracle can have an effect on
this issue.

[0] - [http://kernel.ubuntu.com/git/ubuntu/ubuntu-
xenial.git/diff/z...](http://kernel.ubuntu.com/git/ubuntu/ubuntu-
xenial.git/diff/zfs/AUTHORS?id=b65ce14d3445e8fe69b5d59aaaf2699319714179)

~~~
Ao7bei3s
> So theoretically, they could release a CDDL license version 1.3 that has
> radically updated text in order to be GPL compatible. However, since that
> effects all CDDL licensed code, they would end up relicensing every bit of
> CDDL code (related to Oracle or not) in the entire world.

Though of course since laws are made by lawyers and not nerds, the new license
may well be invalid and nothing would change at all except for lots of
confusion.

Which makes you even more right.

~~~
dsp1234
Note that regardless of lawyers vs nerds, the CDDL is quite clear about what
happens if a new version of the CDDL is released.

    
    
      4.1. New Versions.
      
      Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License."
    

Note that v1.1 of the CDDL replaces Sun Microsystems, Inc. with Oracle.
Otherwise, this gives them the right to publish a revised and/or _new_ version
of the license.

    
    
      4.2. Effect of New Versions.
      
      You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward.
    

The second sentence here pins the license at the specific CDDL version, if one
was specified in the original software. It's pretty unlikely that almost no
one has specified a specific CDDL version. The last sentence gives the license
recipient the ability to distribute under "any subsequent version of the
license published by the license steward".

Note that these two combined (regardless of lawyer or nerd) give a compelling
case that it's plausible that Oracle _could_ take that action. They won't, and
I don't think they should, and I find it hard to see that it as remotely
reasonable that they should be pressured to. However, if they did, then it's
likely that it would be legal since each other CDDL contributor accepted the
license, and relicensed their own code with the same possibility.

Obviously some lawyer would make the case that it's not a new version since it
has drastically different text, but at that point we're well into moot,
counterfactual realms.

~~~
Ao7bei3s
> Obviously some lawyer would make the case that it's not a new version since
> it has drastically different text,

That's exactly what I meant with lawyers<->nerds: publishing a radically
different version is a nice _hack_ , but _may_ not hold up legally.

> but at that point we're well into moot, counterfactual realms.

That's what I meant with confusion. If the legal situation isn't entirely
clear, the kernel team, distros and related companies might very well decide
to play it safe.

