One of the big Debian stories of the week is that a company called Nexenta Systems has made a version of Ubuntu that’s based on OpenSolaris rather than the Linux kernel. Personally, I find the emergence of a Debian-based OpenSolaris distribution exciting, as it promises to vastly improve Solaris installation, packaging, and overall usability. Solaris is great technology with an incredible pedigree and some very compelling features (DTrace, in particular, sounds like a godsend, as I’m sure anyone who’s debugged kernel code via endless iterations of inserting printf
s at strategic places would agree), not to mention that it’s now open source. However, when a Linux developer eager to have a look at all this neat new open source stuff boots up Solaris for the first time, it’s a bit of a throwback to an earlier time (not to mention the fact that apt-get
is a hard habit to break..).
And, so, I’m more than a little embarrassed at how certain members of the Debian community reacted to Nexenta’s work. The vitriol surprised even me, knowing as much as I know about how, uh, strongly the Debian community feels about certain issues. The issue in this case: Nexenta links GPL-licensed programs (including dpkg) with the Sun C library, which is licensed under the GPL-incompatible but still free software/open source CDDL license. Granted, Nexenta didn’t go about introducing themselves to the Debian community in the best way, and there may (may) be issues around whether or not what they are doing is permitted by the GPL, but couldn’t we at least engage them in a more constructive manner?
In terms of the actual issue being discussed here, am I the only one who doesn’t get it? It seems to me the argument that linking a GPL application to a CDDL library and asserting that that somehow makes the library a derivative work of the application is, to say the least, a stretch—not to mention the fact that we’re talking about libc here, a library with a highly standard interface that’s been implemented any number of times and, heck, that’s even older than the GPL itself. It’s interpretations like this, folks, that give the GPL its reputation of being viral, and I know how much Richard Stallman hates that word. It’s one thing to ensure that actual derivative works of GPL code are themselves licensed under similar terms; it’s quite another to try to apply the same argument to code that clearly isn’t a derivative work in an attempt to spread free software at any cost. I’ve been a big GPL advocate for a long time, but that just strikes me as wrong.
How quickly we forget history.
I don’t know. Having looked over a lot of the mailing list traffic surrounding Nexenta and GNU/Solaris, I think this is less of an embarassment to the Debian community and more a shining example of how *not* to try to develop open source software for use by others (slam two licenses together without bothering to carefully examine how they interact? Sheer folly.). There are diehard GPL advocates and enforcers in every OSS-related community, and I think it’s a bit much to say that the Debian community’s response wasn’t constructive, especially in light of the fact that Nexenta went from “Hey, here’s this neat thing we want to do!” to *shipping* a potentially-infringing product within two weeks of the initial announcement. Building a truly constructive community response takes time, and the effort was certainly made, but Nexenta didn’t want to wait (or listen, from what I’ve seen). They rushed ahead and reaped the ensuing backlash people were warning them about.
From the license:
‘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 there’s no problem at all. Otherwise you would never have been able to use GPL software on Windows either since you must link to Microsoft’s libraries. Also only GPL programs that included a ported c library could have been used on the old (proprietary) Solaris.
The binary is a derivative work of the GPL’d source code and the libc against which it is linked. It must therefore follow the requirements of both licenses. The requirements are in conflict. Therefore, the binary may not be legally distributed.
It has nothing to do with whether libc is somehow derivative of the GPL’d source, which of course it’s not. It’s just a simple matter of reading the licenses and trying to comply with them, something that a depressing number of people appear not to do. (The requirement in the GPL to document modifications is another one that few people appear to have read.)
If you don’t like bizarre interpretations of the GPL that you think give it a bad name, maybe you shouldn’t make up new ones and post them to your blog.
Ian: compiling GPLed software against a GPL-incompatible libc and other system libraries does not make those libraries derivative works of the GPLed software; rather, it makes the binary of the GPLed software a derivative work of the GPL-incompatible libc and other system libraries. Such a binary is non-distributable.
tinus: the clause you just quoted specifically says “unless that component itself accompanies the executable.”
That means that while it is OK for someone to distribute GPLed software for Solaris or any other system with GPL-incompatible system libraries, it is not OK for someone to distribute GPLed software *along with* Solaris and those libraries. The purpose of this clause was originally to permit the GNU project to distribute their software for proprietary systems (since completely Free systems didn’t exist when GNU first started out, and needed to be built piece-by-piece), while not permitting the vendors of those proprietary systems a blanket exception to link with their proprietary system libraries.
As for the actual issue of how the Debian community reacted, this situation is essentially another vendor *violating the copyright* on numerous pieces of software, both those under Debian’s copyright and various others. It should be handled accordingly. The Free Software community is generally far more lenient than most copyright holders who find their copyrights infringed; the Free Software community generally *asks* before immediately invoking the legal system, and is usually satisfied by a simple correction of the problem with no additional restitution necessary.
It should also be noted that every single time one of the Nexenta developers was asked to even provide the *location* of the source for the Sun system libraries (let alone doing so under a GPL-compatible license as required), they dodged the question entirely, or pointed to a website which generated permission errors and did not contain the requested source.
Unlike many in the audience, I don’t consider myself qualified to scrutinize legal documents looking for loopholes that might be favorable to my “side”, be it a company or a movement. In any case, that’s the kind of thinking that led to the mess free software was supposed to clean up in the first place. No, I’m looking at this purely from a pragmatic point of view. I suppose the view that a binary is a derivative work of a library might make sense from a legal point of view. I could see that. But even if that is the legal meaning of the GPL’s words, how in the world is linking a GPL application to a CDDL library a limit on my freedom to copy, modify, and redistribute the GPL application, particularly when that library “can reasonably be considered independent and [a] separate [work] in [itself]”? At best, it seems like you win on a technicality. That’s hardly a moral victory. If anything, it’s a bit reminiscent of the tactics of the “software hoarders”. No?
The GPL has no way to distinguish between “mostly harmless but nevertheless GPL-incompatible” and “scum-sucking EULA from heck”. I would tend to say that the CDDL falls towards the “mostly harmless” end of that spectrum; the only notable provision is the patent retaliation clause, which is GPL-incompatible but not particularly egregious to me, given that it only affects the particular software which is subject to patent litigation. (Note that those comments apply to the CDDL 1.1; 1.0 was much closer to the other end of the spectrum.)
Regardless, the only definition of “free” the GPL has is “compatible with the GPL”, or in other words “no restrictions beyond the GPL”. So the easiest way to require that all components of a work remain free is to require that they remain GPL-incompatible.
I’m having trouble figuring out if you’re annoyed because the GPL prohibits linking to GPL-incompatible libraries (which is the entire intent of the GPL in the first place, not just its “legal meaning” or a “technicality”), or whether you’re just annoyed because as a consequence you can’t link two pieces of basically Free code together.
License incompatibility is an annoyance; then again, so is the fact that everyone seems to want to invent their own license.
(As an interesting side note, MySQL recently tried a solution to this problem by using the GPL but granting a blanket exception for various Free-but-GPL-incompatible licenses.)
Er, s/to require that they remain GPL-incompatible/to require that they remain GPL-compatible/, of course. :)
The GPL may not have a way to distinguish between those two, but its advocates surely do, or should.
Mostly, I’m annoyed whenever the tail appears to be wagging the dog, and I’m seeing a certain amount of that happening here.
Case in point: The intent of the GPL is to prohibit derivative works of GPL code from being proprietary, not to prohibit GPL applications from being linked to GPL-incompatible libraries. The former is a goal. The latter is a technicality in pursuit of a goal.
-ian
The solution is pretty simple: one should fix the license(s) if does not like their implications, whichever license one happens to have a problem with. Or one should chose a different license to release one’s work under. People stuck between two incompatible licenses can try talking with copyright holders, or license stewards, to have incompatibilities resolved.
Beats releasing undistributable code and then wasting time on fighting fires, in my book.
In Nexenta’s case, it seems that they started off with joyous miscommunication, missing both experience in the language of their audience, and an understanding of the underlying culture. Brushing off initial inquiries about their legal theories by asking the audience to go sue Sun instead, and pulling ahead to release their audience’s code over their clearly voiced reservations, was adding a bit of insult to injury, for some people, afaict. So they got their head washed thorouhgly on the list in public, which is unfortunate, like any other Debian flamewar of the week, but at least gave them a chance to show that they are trying to fix the problems, and taking their obligations under the GPL seriously.
I hope they’ll file it under ‘learning experience/culture shock’ and move on to do some nice things with and maybe within Debian.
As far as GPL-incompatibilities go, in this case, afaict the license steward of the CDDL is not crying crocodile tears about it. From all I know, they regard GPL-incompatiblity as a one-way street, at which end lies GPLd code, which does not allow them to do what they feel like doing, and splits the code/community, so the incompatibility does not hurt them at all, as it prevents the dangerous GPL-ization from happening.
Of course, if companies showed a bit more restraint wrt to coming up with licensing schemes that, while meeting the OSI guide lines, add restrictions above those of the GPL, the whole problem wouldn’t really exist. It’s not like the GPL is not restrictive enough, already. But hey, harnessing ‘collective intellectual property’ is the new gold rush, and fencing off claims is a natural thing to do.
cheers,
dalibor topic
If you bother to read and understand the GPL and/or the FSF GPL FAQ you
will see that this is 100% ok to do this, and there is nothing wrong with this.
Actually if tomorrow Microsoft will decide to distribute GPL’d software
along with the Windows it’s still be ok. What’s more it would serve the
Free/Open Source community and it’s goals – that’s why they don’t
do this.
It seems to me that this argument is really stupid, provided that the
fact that the same GPL’d software is being used on closed source
proprietary systems doesn’t make them ask questions and argue.
GPL clearly permits linking to the software to any proprietary library
as long as it’s distributed with the operating system – e.g. it’s a standard
library. The “unless that component itself accompanies the executable”
clause is included to prevent anybody from creating a new version of the
software that will depend on his own proprietary library, unless of course
this somebody is an OS vendor.
I believe that the (real) reason why this caused so much flames is
because of the Linux vs. OpenSolaris issue. Some believe that open
sourcing Solaris will hurt GNU/Linux and FOSS community. I believe
that it only will help the community and I personaly happy to see that
Sun understood and accepted the fact that Free and Open Source
software is a way to go. The move of the company of that size to
open source will undoubtely bring more companies and resources to the
open source development.
As nobody ever asks if FreeBSD or OpenBSD is good or bad for open
source community, nobody should ask about if open sourcing Solaris is
or isn’t. To me it’s obvious that there is enough place for all open source
OS and programs and the more there will be the more freedom of choice
we all will have.
One of the largest problems that the open source community currently
has, that prevent mass Windows-to-FOSS transition is the lack of the
equal programs on the FOSS side. Sure, in many cases you can find a
FOSS software that will provide the same functionality – but because it’s
not the same software that will require from the user to learn a new
program, something they in most cases are unwilling to do. Somebody
who uses Outlook will be unwilling to move to say GNU/Linux because he will need to learn how to use Evolution instead. Finding a replacement
for a program like AutoCAD is even more problematic. Making a FOSS
programs to be used widespread on all platforms is thus a high priority.
More widespread use also helps to find and fix bugs more quickly.
Another major problem is the lack of the drivers. As long as FOSS OS’s
will account for small percent of the market there won’t be as good
hardware support as Windows has. Increasing the number of users of
FOSS OS’s is thus also a high priority. As a side note, although you can’t
use drivers of one OS for another, if you have the source code for the
drivers for one platform that really simplifies the development of the
drivers for other platform(s).
P.S. : One more point – even Linux developers realised how basic libc is,
that’s why they licensed it under LGPL – so even “evil” proprietary closed
source programs could link with it and run on Linux.
“I personaly happy to see that Sun understood and accepted the fact that Free and Open Source software is a way to go.”
Open Source, sure. Free? That depends on who you ask. Ian obviously believes that it is, but his personal opinion is by no means authoritative. The Debian community as a whole remains undecided as to whether or not the CDDL is a Free software license at all (the main bone of contention being the choice of venue clause, AFAICT).
“The Debian community as a whole remains undecided as to whether or not the CDDL is a Free software license at all (the main bone of contention being the choice of venue clause, AFAICT).”
Perhaps. On the other hand, Ian’s in good company:
http://www.gnu.org/licenses/license-list.html#CDDL
Unlike many who comment on this issue, the FSF actually has a lawyer working for them.
I also find this in /usr/share/doc/dpkg/copyright:
“Copyright (C) 1994 Ian Murdock ”
I wonder how much authority that gives him, especially compared to others.
“Unlike many who comment on this issue, the FSF actually has a lawyer working for them.”
I don’t see how that’s relevant. Why should one require legal counsel in order to have an opinion as to whether or not, for instance, the CDDL’s choice-of-venue clause constitutes a fee, thus rendering the license non-free according to the DFSG?
“I also find this in /usr/share/doc/dpkg/copyright:
“Copyright (C) 1994 Ian Murdock ”
I wonder how much authority that gives him, especially compared to others.”
Admittedly I wasn’t very clear (to be fair, so much so that one would’ve had to pretty much be a telepath to grok my meaning, my bad :-) but my point was simply that the ftpmasters are the ones who get to make the ultimate call as to whether or not a license is suitable for main, not him. That Ian has immense influence is indisputable, but influence and actual authority are very different things.
Ian: thanks for speaking some common sense on this topic!
After all, if Nexenta is breaking the GPL by simply distributing a binary of a GPL program linked against a non-free libc, then every proprietary UNIX vendor under the sun is also breaking the GPL whenever they ship GPL’d software as part of their binary distro. [try to find one that doesn’t!]
Big hint: the FSF doesn’t seem to care about proprietary UNIX vendors, even (koff, spit) SCO doing this, as long as they agree to make the source available. So it’s quite amazing to see Nexenta copping so much flak from people who claim that their motive is to defend the GPL. Perhaps they should have asked for an opinion from the FSF before launching a flame war.
-Jason
This is by far not a new issue. Debian has attracted users/advocates like this for a long time. Read the archives of debian-legal@ for a good laugh.
Ian:
“Case in point: The intent of the GPL is to prohibit derivative works of GPL code from being proprietary, not to prohibit GPL applications from being linked to GPL-incompatible libraries. The former is a goal. The latter is a technicality in pursuit of a goal.”
I’m afraid that is closer to the LGPL. GPL does very much prohibit linking to non-GPL libraries.
“For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.”
“all modules” clearly refers to “all modules of the executable”, which clearly includes all libraries.
The only actual question is whether “unless that component itself accompanies the executable” applies or not. It seems reasonable that Nexenta is producing an operating system that includes kernel AND a lot of GPL’d userspace. In that case, the “unless” applies, and distribution is not permitted.
In general, it’s clear that the GPL only allows GPL’d programs on non-GPL-compatible systems that are distributed separately. ClosedSolaris cannot distribute GNU tools as part of the OS. Nexenta similarly cannot.
And the choice is not Debian’s for that matter. The individual copyright holder decide (or a court), including FSF. Debian has always tried to respect the wishes of the copyright holders, and should do so in this case too.
The GPL really needs and update, firstly it needs to be moved to the FSF, as its no longer a General Public License for the GNU project, this may mean the start of other open source projects joining the FSF.
Secondly the GPL should be less viral, this case is a proof that it is too viral, RMS should have in mind for a third party which is not a copyright holder of any of the work, where the person might have to follow 2 licenses, and the person is just USING GPL software not coding using it.
Thirdly I hate the GPL, I hate capitism, I hate how people can not get along, I hate how people use other people and gaining control over the person’s life in an unfair deal (I hope you see what I mean…). I’ll give an example of my last case in a way you all might understand:
Microsoft has gained power over their users, but are not their users what they want if it threats their chance on making an extra dollar, I call this an unfair deal.
Read this article by RMS:
http://www.fsf.org/licensing/licenses/why-not-lgpl.html
To me this says:
– LGPL would be sufficient to make sure free software cannot be stolen by commercial software vendors, in a sense that they improve it in closed source manner and do not return improvements to the original authors.
– In addition, GPL gives free software an advantage over commercial software vendors, by not permitting them to use GPL software
That’s why RMS generally prefers the GPL even for libraries. “By releasing libraries that are limited to free software only, we can help each other’s free software packages outdo the proprietary alternatives.”
Therefore I think that the GPL, as far as it differs from the LGPL, is not about providing more freedom, but about keeping certain players out of the game alltogether. Unfortunately, in the time since the article was written (1999), the scope of parties excluded from using GPL software has expanded. Now it’s not only proprietary software, but also GPL-incompatible OSS licenses.
Ian, you’re asking not to interpret the GPL as literally as one could. This seems sensible, as there is clearly no damage done by what Nexenta is doing. But this gives the licensee no legal certainty. Every single copyright holder could come up and sue, even if the majority of the community thinks that they should not. If individual copyrights have not been transferred to an organization like FSF, that would be every single contributor.
If I look at recent judgement in patent matters, everything seems to be possible once IP matters are taken to court. I for my part would not want to use GPL software in a way that is not clearly allowed by the license, without written permission by every single copyright holder.
Personally, I think that every software author has the right to use whatever OSS license they like for their software. There will always be valid reasons for NOT using the GPL or any GPL-compatible license. Even if you disagree, if you think that people using incompatible licenses are just suffering the consequences of their own wrong decisions–is it not often third parties who suffer the consequences of not being able to merge to pieces of OSS software? I think that’s the case with Nexenta, and with everyone who would like to use the resulting Solaris/Debian system.
Wouldn’t license compatibility be much less of a problem, if any, if licenses would only restrict the use of the original module, and not extend to the concept of “combined works”?
And wouldn’t this be sufficient to keep the original work in the free domain, including improved and modified versions?
Yes, this would mean that commercial software could be built on top of GPL software, that exceeds the functionality of the original GPL code. But trying to prevent this always has the potential of backfiring on the OSS community. And turning a blind eye to “friendly violations” does not seem like much of a solution to me.
After reading this does anyone wonder why the Nexenta folks just went ahead and did the work? Sheeesh. I’m glad they did.
No you don’t need a lawyer’s input to have an opinion on this but you do need a lawyer’s input to have an intelligent opinion on it.
I am not a lawyer but have used OSS from sunfreeware for years and look forward to more excellent releases from gnusolaris.
Far from damaging the OSS movement this is a great step ahead. Up to now you’ve had just a few choices for the underlying kernel (Linux or *BSD, etc). Now you have a robust entry on top of which you can run all the great GNU software.
Step back and think about something here: Sun just leached the hard work GPL (mutually benefiting) developers put into Debian… and Sun is going to use that hard work to build up “community” around Solaris…
What has Sun given to the Linux community? It’s very easy to setup a 1 way license that can leach off the other camp; but is it right?
Is using some BSD code in a GPL program leaching ?
“Step back and think about something here: Sun just leached the hard work GPL (mutually benefiting) developers put into Debian… and Sun is going to use that hard work to build up “community” around Solaris…”
Sun? You mean the Nexenta people I think.. And even then, this is a project using the Solaris kernel and a Debian userland. So if anything, this is a project that is rallying behind and contributing to the Debian community.
“What has Sun given to the Linux community? It’s very easy to setup a 1 way license that can leach off the other camp; but is it right?”
Sun has actually contributed quite a bit to the OSS community at large. And much of Linux was at least inspired by Solaris, so in a way they have contributed indirectly to Linux by simply existing and having a great kernel.
Really, who cares if the OS is using an OpenSolaris, Linux, FreeBSD, etc. kernel?? More choices of Open Source kernels can only be a good thing.
I “use to be” a Linux advocate..
But when I’m consulting at a company, and a software company at that, I’m sorry, but I cannot tell them that anything they program, they’d have to give the source code to.
GPL is way too viral.. I now recommend things with BSD licenses. The whole “If it’s BSD and not GPL, they will be source code hords, and never release source!!” Errr.. I have netbsd, freebsd, openbsd, postgres code.. BSD allows the OPTION of selling enhancements without having to go to the patent office. GPL doesn’t.
I personally think the concept of good userland from Debian and a Solaris Core to be a great concept.
GPL is about FREEDOM so they say, but take a look, and you will find that GPL is the one who restricts what everybody can and can’t do with THEIR code..
You write the code, but “All your source are belong to us”. That should be the GPL motto..
A lawyer once tried to get me to explain GPL to him. At the end, he asked me “So you are telling me, GPL proponents are a bunch of freeloaders basically right?” WOW, that was a difficult statement to say no to..