Debian Developer And QT License Contributer Speaks
NRLax27 writes: "Freshmeat has an interesting editorial up by Joseph Carter on the issues surrounding Debian and KDE. Carter is a member of the Debian team, and spent much time working with the Troll Tech fellas trying to make the QPL compatible with the GPL." Interesting bit. Worth a read if you're interested in the licensing issues.
Bruce
Bruce Perens.
First, make sure you're not confusing Troll Tech and KDE. KDE is a project that happens to use a (now free software, DFSG, Open Source compliant) library owned and distributed by Troll Tech.
Second, the "KDE crew" cannot be generalised. Some agree with Debian, some disagree, and some don't even use the GPL, choosing a more free license instead.
There's not an indifference on the side of KDE. There's just a real community, with the real disagreements that result. A consensus on whether a MacOS-style menubar should be the default can't be reached; how could anyone expect agreement on something as politically sensitive as licensing?
It's only libel if it's false and I know it to be false. However, I've proven it to be true right here.
In other words, Mr. Bastian, fuck off. I will not be silenced by legal threats from a meta-organization that doesn't even exist as a legal entity.
As I read through the replies to this article, I just have to shake my head in disbelief at some of what I am reading here. Is this really Slashdot? Yes, unfortunately. People can post rather long replies to stories without understanding the first paragraph, and are thought of as insightful. Very well, let me clue you in on some insight you missed.
The main problem with the Qt license in KDE is that it stifles development of KDE. Because of the nature of the Qt license, changes must be supplied as a patch and recompile. The only legally distributed binaries are from the KDE maintainers themselves.
The license makes it hard to modify the Qt code itself, and KDE generally. The license makes the distibution of KDE as we now see it illegal. Because companies like Red Hat, Corel, etc. are technically illegally distibuting KDE and such, licenses in general, and in particular the GPL, are being undermined by general practice. If you do not defend your license, it becomes unenforcable, and everything the FSF and the Linux community has worked for is lost.
The article mentions several examples of this already happening in the sense of companies violating the GPL and getting away with it because of the situation with KDE (eg NVidia, Corel...).
The further problem is that Linux needed a desktop badly and KDE was "it" for awhile. The Troll tech guys, etc kept promising to "fix" the license while gaining marketshare. As long as they kept promising that, and opensource advocates kept believing it in good faith, KDE continued to be distributed unchallenged.
As more and more people became concerned with the situation, the Gnome project began in an effort to have a desktop that was truly free and could be modified under GPL. But it was too late, because KDE was already ubiquitous as planned.
Even now, as Gnome is comparable in performance and features to KDE, there are those who complain about its lack of stability versus KDE (personally I have not seen it, but then there are those who have said they never saw their windows box crash ;) ), which is the older project, and which is eroding the GPL by its very existence. Nevermind the illegality of this "default" desktop.
I think that the debian people are right to exclude KDE from their distribution, and by god we ought to support them in this. I like KDE, and it was the first Linux desktop i used. BUt as I became aware of the implications, I stopped using it, and switched to Gnome. If Gnome does not suit my needs, I have the benefit of source and can modify it at will without violating archaic licenses. I can include the whole modified version TOGETHER in an rpm if I wanted. And the most important thing is that I am not working towards a situation in which the Microsoft OS group can make a closed-source linux distro, distibute it for free, and take over the linux desktop like they did with Windows.
I understand that most people are pragmatic in that they don't want to use something just for its political value, as they do want to get work done and would like to evaluate a technical product on its technical merits. What teh article points out is that politics aside, the license of KDE makes it harder to modify, add features, fix bugs, etc, which is, I think a point that is all-too-often missed in the debate between pragmatic users and "rabid open source advocates."
It seems to me that the whole point of dynamic linking is the fact that the library code doesn't have to be included in the executible, right? That's a major benefit of the technology, to make the binary executible smaller.
:-)
With my copy of libqt.so.2.1.1 weighing in at 5.5MB, I don't think it's fair to say that dynamic linking is being used to circumvent the GPL.
Rather, I think a loophole of the GPL is being used. Would you agree that it'd be nice for a GPL 3 to be released, that would finally put to rest this argument, to the satisfaction of all parties? A GPL 3 that would take into account all sorts of wierd situations (new linking, Application Service Providers, and other things)?
Also, I was wondering whether you have written, or know of someone else who has written, a detailed argument of how dynamic linking should be treated the same? I'd like to think that somebody who feels as you do has considered the issue enough to have written more than two sentences on it.
Look, people. Debian doesn't exclude KDE out of spite. I doesn't exclude KDE because it's not Open-Source. It excludes it because, at the moment, IT's NOT FREAKIN LEGAL to include it. This is due to what is, sadly, a rather boneheaded oversight by the KDE team when they chose to use the GPL for their license. The GPL explicitly states that if you can't distribute all the source used in the program under its terms (or less restrictive ones), then you cannot distribute the program at all. QPL is more restrictive than GPL, and therefore it is technically illegal to distribute KDE unless you have explicit permission from Troll Tech.
There's an exception to this rule built into the GPL. This exception states that files which "normally" come with the operating system do not count towards this restriction. This is very important, because without it there's no legal way to make GPL'd software on closed-source operating systems. However, Qt does not qualify for this exception, since it doesn't "normally" come with Linux. You either have to download it or get it in a distro.
Now, this was overlooked by the KDE team when they chose to use the GPL for KDE. It was a rather boneheaded mistake, but an understandable one since, to my knowledge, an issue like this had never come up before. It is also trivially easy to fix. All it takes is one measly sentence in their licenses, where they explicitly state that you are allowed to link against Qt. That is all it takes. And yeah, it's embarassing to admit you made a mistake, but who cares so long as the problem is fixed?
Qt is Open-Source. Debian includes it. KDE is also Open-Source. The problem is that its license clashes with Qt's in a rather nasty way, so it's not legal to include it. All KDE has to do is add one tiny little sentence to their license, and everything is in the free and clear. Much easier than changing the license completely. It holds true to the principles under which KDE was developed (unless arrogance was one of those principles, and I very much doubt that). I do it myself with one of my own projects that uses PowerPlant (a decidedly proprietary application framework for MacOS). So what's the big deal? It's one sentence, and all of the licensing issues vanish.
So, and this is an honest question: why the heck haven't they done it?
But Debian isn't about the "majority". Debian is about producing a high quality, free Linux distribution. (Whether the "high quality" part or the "free" part is more important depends on who you talk to. I lean towards the "free" side.)
If you want KDE, you have several options. You can download the .debs from KDE's site. They even give you a line to add to /etc/apt/sources.list so that you can install and manage KDE with apt. If you don't like Debian's stance on KDE at all, you can always go to another distribution, such as Red Hat or Mandrake, that includes KDE by default. Don't get after Debian for not behaving the exact way you want them to behave. They're taking a stand on an issue they feel strongly about, but you still have your options.
--Phil (For that matter, the majority of computer users still use Windows...)
355/113 -- Not the famous irrational number PI, but an incredible simulation!
Really, the problem is with RedHat, SUSE, and Corel (and other distros) knowingly illegally distributing KDE binaries. And since KDE 2.0 (using Qt 2.x with QPL) isn't quite finished yet, there isn't currently even any room to argue over subtleties of the licenses.
The common corporate stance of "Yes, we know we're breaking the GNU GPL, but maybe we'll fix it in a few years" really surprises me (see nVidia et al). If they were including unlicensed copies of W2K (for use with VMWare) in their distros, they'd issue a recall on them the minute Microsoft called them up. When it's the license of the community that they break, they don't care because there's no immanent danger of a lawsuit.
Of course, most of the people whose code is linked against Qt without permission don't care anyway, but would at least like to have been asked.
1) KDE uses the artistic license instead
2) KDE adds a clause to their license that explicitly allows linking against QT as well as GPL(/LGPLd) libraries.
3) Trolltech makes their license GPL intead, which has the potential to kill their business model.
4) RMS rewrites the GPL to allow linking against QPL licensed libraries as well as GPL(LGPL) licensed libraries (which has the added effect of hell freezing over and pigs flying).
There still seems to be a lot of misunderstanding here.
a) Debian provides a lot of non-free software (e.g. Netscape). KDE is not excluded because it's non-free. It's excluded because, as far as we can tell, the combination of licenses results in a contradiction that forbids us (or anyone) from distributing KDE.
b) We don't hate KDE. Many people in Debian have tried very hard to get this situation resolved, because we want to distribute KDE. I, personally, would be ecstatic if the situation were solved.
c) This is not about politics or philosophy. We are not willing to break the law, which seems to be what distributing KDE entails at this point. Unlike commercial distributors, we are an all-volunteer group, and can't afford to risk the chance of a lawsuit.
The recent $3000 offer to KDE to fix their license problems went unclaimed. See this article on www.teamlinux.de for more on this.
Section 3 of the QPL reads:
Modifications must be seperate, ie patches or CVS or something, from the source code itself.. That's a restriction the GPL doesn't have, to be sure. Now let's look at the GPL itself, shall we?
All we have to do is satisfy sections 1 and 2 and make source available under the provisions in section 3. But let's have a look at section 2(b):Here's the classic dilemma. Binaries are okay as long as the whole thing is under the GPL's terms. The GPL does provide an exceoption for system libraries, but that exception doesn't apply if the system libraries are being distributed at the same time as kghostscript, so it does not apply to Qt.
You could argue that Qt is not part of the binary because it is dynamically linked. But Qt's headers and macros are linked in at compile time. And even then, a court would have to view dynamic linking the same as static linking if it were being used as a mechanism to thwart the license of the GPL'd application. Another point from the GPL:
Any other agreement includes the terms of the QPL. Because we cannot satisfy both the QPL and GPL, we cannot distribute the program at all. And not only can we not, but KDE can not as well. Neither can Red Hat or SuSE or Mandrake for that matter. To do otherwise is a violation of Copyright law, whether or not you're likely to face a lawsuit (or even criminal charges under the DMCA!)
I did my homework, believe me.
(I'm quoting what you meant to say.) Ignoring for the moment the fact that the GPL was around long before the QPL, how would you propose to do as you suggest? The GPL is so popular specifically because of what it says. Changing parts of it to be more compatible with the QPL or any other license would necessitate removing a lot of things that other people specifically want in their license. Modifying the GPL as a whole because it's incompatible with another license is not a move that many people would like, and not something that the FSF is likely to do, anyway.
Another possibility is for KDE programs that are otherwise GPLed to have an addendum to the GPL saying that linking with QT is permitted. (Note that the Linux kernel has a similar addendum specifically excluding third party kernel modules from the GPL on the kernel.) This addendum to the GPL is the sort of thing a number of Debian people were pursuing, in the interests of ensuring the legality of Debian distributing KDE. That effort ended up not going extremely far. Some original authors couldn't be contacted and permission to change the license couldn't be granted. Some authors refused to modify the license on their code, feeling that it would weaken the freeness of the software. (Relative freeness of various licenses is a flamewar for another time.) As it stands now, the GPL and the QPL are incompatible and it appears that neither side is going to try to accomidate the other. (I, personally, like the GPL as it is and, were it to be changed to be QPL compatible (as I said, not likely), I, and probably many other people, would release my software under the old, IMHO better, GPL.)
Finally (and somewhat tangentially to the rest of my post), you said
This is not entirely true. One specific part of the license that I don't like is the patchware clause. It basically says that any modifications to the program that are distributed by anyone other than the original author must be distributed as patches and not integrated into the main source tree. This clause tremendously encumbers antone who wants to fork a QPLed project. I understand Troll's reasons for that clause and I respect their right to license their software as they see fit, but I don't have to like their license and I would not put such a license on my software.--Phil (I hope I managed to avoid ranting too much there.)
355/113 -- Not the famous irrational number PI, but an incredible simulation!
While it is true that nobody really knows the "One True Way" on any philosophical issue, it seems infinitely more productive to choose a position and stick with it, than to adjust one's position to avoid offense. What can compromises achieve other than a mediocre solution pleasing nobody? As George Bernard Shaw said "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man."
quite frankly, Debian has Netscape Communicator as part of the main distro, and one could use the same arguments used against KDE against Netscape. Compiling software for Linux is damn near impossible without somewhere using some includes from GPL software. One could argue Communicator is an illegal derivation of GPLed software.
I think you misunderstand the problem here. Netscape has a clear license for how it can be used and distributed. Any software licensed under the GPL has a clear license of how it can be used and distributed. Qt has a clear license of how it can be used and distributed. None of that is in question. Also, all of these work, because there are no direct conflicts between licenses.
If you have not read the GPL, you should read that know, so you understand exactly what is entailed in it. According to the GPL, Netscape is perfectly legal. It does not violate any licenses. Qt, on its own, does not violate any licenses. It is a perfectly legal, and even free library.
The problem comes when you link an application that is licensed under the stock GPL with the Qt libraries. You see, the GPL requires all code in a program, including linked libraries, to be either GPLed, or to not impose any additional restrictions on use and distribution beyond the those in the GPL. Unfortunately, the QPL does include additional restrictions. Unless you include a specific item with the software license that explicitly allows linking with the Qt library, then legally you cannot distribute the application (unless you are the author) becuase the GPL does not allow it. This is not just some argument someone cooked up to keep KDE out of Debian. It is a simple legal fact that there is a conflict between licenses on software licensed under the stock GPL and linked with QPL libraries.
I've seen it argued by some that this is just a plot by Debian against KDE because it uses Qt, and I've even seen it mentioned in posts that Debian doesn't accept any software that isn't licensed under the GPL. These are both completely and totally wrong. In fact, there are probably hundreds of programs that are not licensed under the GPL. Debian will allow any software that meets the Debian Free Software Guidelines into the distribution (In fact, there are applications that use the Qt library, along with the library itself, included with Debian. These applications have properly licensed their software under the GPL with an explicit statement concerning Qt). However, this is a completely seperate issue from the KDE issue, even though people often confuse them.
KDE is absent from Debian because it has an invalid license, not because it isn't free software. Hopefully, eventually, the KDE authors will put forth the little bit of effort required to fix their mistake, and make their software legally distributable by everyone.
Topher
What is up with the KDE Crew? Don't they see the potiental dangers in there laxed licensing policy? There indifference to fix the problem doesn't reflect well on their project or their direction. Do they really not care?
For me, this is above all other reasons why I'm lery of KDE. Does Troll Tech really believe developers will blindly follow just because they write code?
And I quote (GPL, version 2, section 3):
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.
This is the so-called "system library" exception. Of course, what is a system library? It's a library that comes with the standard distribution (according to the GPL)...
Distributing GPL applications (including KDE) that are dynamically linked to QT is perfectly OK in distributions that include QT as a part of the base OS. RedHat, Suse, Mandrake, TurboLinux, and virtually all distros except Debian include it. Debian does not, as QT is non-free software, and thus does not fit within their philosophy.
Fine for Debian. They hold to their ideals, and that's what they view important. It's hypocritical of them to accuse TT of not bending to their will to change the QT license, though. That's the license, and if it doesn't change, well, there are consequences for Debian users. There's no free lunch, folks.
KDE on the otherhand, needs to be voicing the restrictions that using the QT requires of end-users: that is, KDE should be distributing apps that are dynamically-linked with QT, and also should not be including QT as part of the default install. This is something that the end-user needs to be aware of when choosing to use/not-use KDE.
This leads back to the system-library exemption clause in the GPL: this is totally bogus, since a system library is so ill-defined that I could make anything a system library. Honestly, this clause is so vague that I can ignore the GPL for huge chunks of my code if I just make them into a library (and call it a "system library"), since what is "normally distributed"? And exactly what is a "major component"?
This all leads to my biggest bitch about Licenses in the OpenSource movement in general: somehow, the concept that a standalone library is part of a finished app needs to change. The whole point of dynamic libraries is that the same codebase is shared between multiple apps (well, not the whole point, but one of the major benies...).
We should move towards the following standard:
-Erik
There are always four sides to every story: your side, their side, the truth, and what really happened.