My OSUNIX project underwent months and months of delays from "passionate people" at Debian, but now that's seemingly resolved. From that came a letter from the SFLC about the simultaneous distribution of software that links GPLv2 grub code to mixed CDDL code in libc.
With this in mind we've been working with GRUB developers to get zfs boot support in grub2.. afaik it's there and ready for testing.. (along with some other juicy features) So hte question is.. When will Sun start to ship grub2?
------
Here's the copy/pasted text..
Dear Christopher,
You asked me to review the OSUNIX project’s proposed distribution of the OSUNIX
operating system, and to give you my opinion on whether the distribution presented
any license-conflict issues. I do not believe that the distribution you described to me
would cause OSUNIX or its licensees to violate the license of any of the distribution’s
component software. In this letter I will describe what I understand to be the licensing
structure of the proposed distribution, and why the differently licensed components are
each distributed in compliance with their respective licenses. If I have misunderstood the
facts, please correct me as soon as possible so that I can revise my opinion appropriately.
You told me that you plan to distribute OSUNIX primarily via an ISO file. Since
OSUNIX is based on OpenSolaris, the majority of the software in that ISO is licensed
under the Sun Common Development and Distribution License (CDDL). However, the
ISO will include two notable exceptions to this general rule. The first is the OpenSolaris
C library: while most of the code for the library is available under the CDDL, the binary
you ship in the ISO is licensed under the OpenSolaris Binary License (OBL) because
it contains wide-character support software licensed by Sun from a third party. The
OBL, though allowing redistribution as a part of OpenSolaris code (in this case the
C library), is essentially a proprietary rather than a free or open source license. The
second exception is grub2, a Free Software Foundation-copyrighted program distributed
under the GNU General Public License, version 3 (GPLv3). In your distribution of
OSUNIX, grub2 links with the OBL-licensed C library.
GPLv3 and CDDL are generally considered to be “incompatible” licenses, meaning
that it is impermissible (in this case, because of restrictions present in both licenses) to
combine code under both licenses into a single work. That resulting work would be a
“derivative work” under copyright law, and both licenses require that derivative works
be licensed according to the same terms as the original work. Since this restriction could
not be satisfied for both licenses simultaneously, the licenses are incompatible. (CDDL
allows “Larger Works” based on CDDL and non-CDDL code to be licensed under a non-
CDDL license so long as “the requirements of [the CDDL] are fulfilled for the CDDL
software.” This does not resolve the incompatibility with GPLv3, because some of those
requirements conflict with GPLv3’s.) GPLv3 is, of course, also incompatible in this way
with proprietary licenses such as the OBL.
The proposed OSUNIX ISO contains no incompatible combination of CDDL- and
GPLv3-licensed software. Both licenses allow for covered software to be aggregated with separate software under other licenses, and do not place restrictions on this kind
of aggregation. The CDDL and GPLv3 components of the OSUNIX distribution you
have described do not combine more intimately than this.
However, the process of compiling a program that links against a separate library, as
you plan to do with grub2 and the OpenSolaris C library, produces a binary program
which may be considered a derivative work of both the program and the library. Be-
cause GPLv3 is not compatible with the OBL, this sort of combination is generally
impermissible under GPLv3.
But the combination of grub2 and the OpenSolaris C library is allowed, because the
C library is a “System Library” within the meaning of GPLv3, and as such is exempt
from GPLv3’s source code-provision requirements. Section 1 of GPLv3 defines the
“Corresponding Source” that must be provided with every distribution of a program
based on GPLv3-licensed code. This definition explicitly excludes “System Libraries,”
whose relevant definition can be paraphrased as: anything that is normally packaged
with a major component of the operating system (e.g. the kernel) and serves only
to implement a standard interface (e.g. for a programming language) for which an
implementation is available to the public in source code form.
Even this paraphrased definition can be difficult to follow, but it’s application to OS-
UNIX can be summarized as follows: because the C library is essential to major portions
of the OSUNIX operating system, and its purpose is to define an interface to the de
facto-standard C programming language (which is also implemented in other freely-
licensed libraries, such as glibc), you can link a GPLv3 program against it without
distributing source for the library.
As an aside, this result is different than it would have been under version 2 of the
GPL. In GPLv2, the “system library exception” did not apply to programs that were
distributed with the operating system. This limitation does not exist in GPLv3.
Because OSUNIX does not combine (but merely aggregates) CDDL- and GPLv3-licensed
software, and because its combination of grub2 and the OpenSolaris C library is allowed
under GPLv3’s “System Library” exception, I believe that the distribution you’ve de-
scribed is permissible under the licenses of all its component software.