So this morning I've had two nagging questions bugging me..
Does an open source CDDL libc fall under a special exception of the GPL?
Is OSUNIX and Nexenta on the verge of dying because of legal issues?
Disclaimer: I'm not a lawyer and anything here shouldn't be taken as legal advice.
I'm rambling my ideas and woes as the project leader for OSUNIX which could along with other good distributions have a big problem soon. (On this list.. Nexenta, Belenix and various other OpenSolaris technology containing distributions) By technology I mean in this case specifically libc. So it's been casually mentioned that "linking" GPL userland code + CDDL libc would make a derivative work. So where to start.. The spirit of the GPL was best summed up by these three things below.
In Professor Moglen's mysql-affidavit [1] he lists "three primary conditions" of the GPL:
- Redistribution must itself occur under GPL and only GPL, with no additional license conditions.
- Redistribution must include "source code," the human-readable form of computer programs that allows programmers to understand and modify computer programs for themselves, as opposed to "object code," which is the "machine language" version of computer programs that is very difficult for programmers to understand or modify.
- Redistribution must include a copy of the GPL, so that users are aware of their rights to use, copy, modify and distribute, and so that anyone engaged in redistribution is also aware of the conditions under which redistribution is permitted.
"However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. "
So here's where it gets a bit fuzzy.. The compiler will generally include a small amount of "code" into your GPL code so that it can interact with the runtime and also of course your code will run on top of a kernel of some sorts. However, section 3.c also has "only if you received the program in object code or executable form" which at the time it was written covered all the known special exceptions it needed to. I guess they never imagined one of those proprietary operating systems would one day open source and do so under a GPL incompatible license. So here's the two problems in a nutshell. CDDL isn't GPL compatible and also CDDL libc which comes in source as well as binary form may not fall under the special exception. So lets stop and ask ourselves one simple question.
So lets try to think as some draconian lawyer for a minute and also ask.. Is linking Application Foo with a system library that's so core as libc really making a derived work? Umm.. and what about the clear exception for libstdc++ [3] which was targeted specifically at a compiler, but in spirit shows that a c++ or c library is really a core system library that is special and should be under a "special exception"
In the spirit of the GPL would the original authors have factored in this special exception had they known about it? I guess we'll soon find out since bdale of SPI has asked the SFLC to comment on this very matter.
One thing you have have noticed is that I didn't include OpenSolaris in my list of operating systems from above. Why? Well.. they don't actually distribute the source along with their core operating sytem under CDDL. They distribute it in binary only form under the OpenSolaris binary license. By doing so they could very strongly argue they fall under this special exception.
What could this mean for the rest of us?
Good possibilities
- It's finally concluded that CDDL libc falls into the special exception category
- Nexenta / OSUNIX could die, be sued or receive some notice to
cease and desist distributing GPL licensed code that links agianst CDDL
libc
- The exception is clarified to allow CDDL libc into this category
- FSF, Debian or someone really bold files a lawsuit (oh. I'd love this and all the bad PR for anyone filing that lawsuit which would certainly backlash against them)
As a side note.. Anyone within kicking range of a lawyer that writes these licenses.. Please give him/her a good one in the butt, because while I'm strongly in favor of open source and enforcing all source code be distributed. I see it as completely stupid that if source code *is* distributed that there should in any way shape or form be any problem with the packages being shipped together. Yes of course we live in a world of Novell and MS agreements, patent trolls, and various other despots, but can't I dream?
[1] http://www.gnu.org/press/mysql-affidavit.html
[2] http://www.gnu.org/licenses/gpl-2.0.html
[3] http://www.gnu.org/licenses/gpl-faq.html#LibGCCException