The GRUB bootloader is widely used to get Linux (and other) systems
running. Its flexibility and configurability make it a logical choice for
many types of computers, as does its "just works" factor: your editor
cannot be the only one to smile when he realizes how long it has been since
the last "I forgot to run LILO and my new kernel won't boot" episode. One
of GRUB's nice features is its ability to understand filesystem structures
and find bootable kernels on the fly. So the addition of support for
another filesystem type would not normally be a noteworthy event. When that
filesystem is ZFS, though, people will pay attention.
ZFS was developed by Sun Microsystems, and is now owned by Oracle. It
offers some nice features that Linux does not (yet) have in a
production-quality filesystem. ZFS, like the rest of Solaris, is licensed
under the CDDL, which is not considered to be compatible with the GPLv3
license used by GRUB. Over the years, ZFS has also been the subject of a
fair amount of dark murmuring with regard to a large pile of associated
software patents. For these reasons, there has never been a serious push
to get ZFS support into Linux.
One would think that these concerns would keep ZFS support out of GRUB as
well. It turns out that one of those concerns - licensing - is not
relevant for the simple reason that Sun saw
fit to release some small bits of ZFS code under the GPL for the
express purpose of compatibility with GRUB. The released code is not
enough to run a ZFS filesystem; it's really just enough to locate and read
files. Just enough, in other words, to bootstrap a ZFS-based system.
What about software patents? One would assume that Oracle would not go out
of its way to sue GRUB users for using its built-in ZFS code to boot
Solaris systems. Those people are, after all, Oracle's customers, and, for
all the criticism of Oracle which has been heard recently, nobody has suggested
that it has reached a point where it will take advice from the SCO playbook.
Still, assumptions can lead to trouble; Oracle may yet hire Darl McBride
once Larry Ellison retires to his yacht, it may sell the patents to
somebody else, or any of a number of other things may happen. Depending on
rational behavior from corporations over the long term is always a scary bet.
In this case, the GRUB maintainers (and, presumably, the Free Software
Foundation, which owns the GRUB project) have decided that incorporating
the code is safe. Their reasons are described in the announcement; it comes down to the fact that
Oracle has distributed the code under the GPL:
Thanks to this, and due to the fact that Oracle is bound to the
terms of the GNU GPL when it comes to GRUB, we believe this renders
patents covering ZFS basically harmless to GRUB users. If the
patents covering GRUB are held by Oracle, they can't use them
against GRUB users, and if they're held by other parties, the GPL
provisions will prevent Oracle from paying a tax only for
themselves, so if they will fight alongside the community instead
of betraying it.
The announcement goes on to suggest that anybody who cares about the
freedom of all their users should always release code under the latest
version of the GPL.
There is an interesting implication here. The FSF is counting
on Oracle being bound by the strengthened patent clauses found in GPLv3.
code found in Solaris was never explicitly distributed under GPLv3; it
is under a GPLv2+ license. The code only became explicitly GPLv3 when it
was moved into the GNU-run Savannah repository. The FSF is saying that, thanks
to the "or any later version" language in the copyright notice, users of
the ZFS code can assume that Oracle is bound by the more explicit GPLv3
patent language even though GPLv3 did not exist when the code was
released. They are probably right.
GPLv2 arguably contains an implicit patent grant. But it certainly does
not have the Novell-inspired "you can't buy a license for your users
only" language. Sun's lawyers may not have thought that they were giving
the FSF the right to further bind Sun's actions with regard to patents
through updated versions of the GPL. Using the "or any later version"
language hands a powerful blank check to whoever controls later versions of
The merging of the ZFS code raises eyebrows for another reason: neither Sun
nor Oracle has assigned ownership of this code to the FSF. The
Foundation's policy is clear: it needs to obtain assignment, or, failing
that, a complete disclaimer of rights on the code; the ZFS code comes with
neither. This exception to policy is justified this way:
The ZFS code that has been imported into GRUB derives from the
OpenSolaris version of GRUB Legacy. On one hand, this code was
released to the public under the terms of the GNU GPL. On the
other, binary releases of Solaris included this modified GRUB, and
as a result Oracle/Sun is bound by the GPL.
We believe that these two factors give us very strong reassurance
that: a) Oracle owns the copyright to this code and b) Oracle is
licensing it under GPL, and therefore it is completely safe to use
this in GRUB.
The FSF has often claimed that copyright assignment is required in order to
be able to prosecute infringement cases. Either the FSF no longer believes
this, or it has decided that license enforcement will never be necessary
for GRUB. It's hard to find any other possible explanations for this
The FSF has also pronounced as "safe" a chunk of code which was never
submitted for inclusion by its authors, and which is owned by a company
which is known for its active legal department. This is the company which
is currently suing Google over an alternative Java implementation, after
all. Perhaps the FSF has a hush-hush agreement with Oracle regarding the
merging of this code, but that seems unlikely. Merging the code is almost
certainly safe without such an agreement, but it would be a stretch to say
that it is more safe than merging code from individual contributors who do
not wish to assign their copyrights to the FSF. If this code can be safely
accepted without copyright assignment, so can contributions from many others.
Might the FSF be slowly rethinking its position on copyright assignment?
There have been few signs of any such deliberation, but the acceptance of
the ZFS code sets an interesting precedent. Perhaps the FSF has an
internal policy saying that unassigned code is acceptable if it comes from
an Oracle-sized corporation? It would be nice to know what the FSF is
to post comments)