Ubuntu 16.04's support for the ZFS file system is one of many useful enterprise features on top of all the Linux desktop polish in the new OS. But Linux distributions have avoided shipping ZFS support in the past due to licensing issues, and Ubuntu 16.04’s ZFS support sits smack-dab in the middle of a controversial legal gray area.
ZFS is great, so why don’t more Linux distros use it?
ZFS is a file system that started in Solaris—an enterprise operating system formerly owned by Sun, and now owned by Oracle. ZFS includes a number of extremely useful features like built-in snapshots, integrity checking, and data compression. This makes it especially useful for containers. Indeed, the title of Ubuntu’s announcement states, “ZFS is *the* FS for Containers in Ubuntu 16.04!”
But, despite all ZFS’s useful features, no Linux distribution—including previous releases of Ubuntu—have included support for ZFS before.
While ZFS was made open-source by Sun, the ZFS code is licensed under the Common Development and Distribution License (CDDL). The Linux kernel is licensed under the GNU General Public License (GPL). These licenses appear to be incompatible. The common understanding has been that, if a Linux distribution were to compile the ZFS support as a kernel module and distribute it with the Linux kernel, they’d be creating a “derivative work” of the Linux kernel. And that wouldn’t be allowed under the software licenses.
Thus Linux distributions have avoided shipping ZFS support. Linux users who wanted ZFS support could get it from the ZFS on Linux project’s website and compile the kernel module themselves. But that’s more inconvenient.
Canonical’s lawyers like their odds; others disagree
Canonical clearly wanted to distribute ZFS, so it went looking for legal opinions rather than accepting the common wisdom. In an announcement titled “ZFS Licensing and Linux,” Canonical lays out its reasoning. Canonical believes that, as the ZFS driver is built as a kernel module and is a self-contained file, it’s not a derivative work of the Linux kernel—which wouldn’t be allowed—but is simply a derivative work of the older OpenZFS and OpenSolaris code.
That’s Canonical’s opinion. Others have disagreed with it. The Software Freedom Conservancy argues that Canonical is violating the General Public License the Linux kernel is licensed under by doing this. It’s sympathetic, but believes that Canonical’s position contributes to “license uncertainty” and that opponents of free software may use this uncertainty in their favor. Richard Stallman has said it’s “impossible” to bundle ZFS with Linux, in a statement clearly directed at Canonical and Ubuntu.
Only Oracle or the courts can resolve this
Everyone agrees that there’s one clear solution to this problem: Oracle can simply relicense the ZFS code under the GPL and it will be usable without any legal uncertainty. But Oracle doesn’t seem interested in resolving this issue. “They’ll not be releasing ZFS and the other things that people are drooling about in a way that lets Linux use them on an equal footing. I can pretty much guarantee that. They don’t like competition on that level,” wrote Linus Torvalds of Sun back in 2007.
For now, Ubuntu’s ZFS support sits in a legal gray area until a court weighs in. Canonical clearly believes it has a good chance of winning this battle in court if it’s ever sued, so it’s going ahead with ZFS support. But don’t expect many other Linux distributions to dive in while the water is so murky.