Stallman on Qt, the GPL, KDE, and GNOMESep 05, 2000, 12:33 (200 Talkback[s])
(Other stories by Richard Stallman)
Making Qt available under the GPL makes it legal to take an existing GPL-covered program and adapt it to work with Qt. It also provides a way to resolve one of the free software community's long-standing problems, the problem of the ethical and legal status of KDE.
The design of KDE was based on a fundamental mistake: use of the Qt library, which at the time was non-free software. Despite the good intentions of the KDE developers, and despite the fact that the code of KDE itself was free software, KDE could never be part of a completely free operating system as long as it needed a non-free program to function.
But the KDE developers were not concerned about this problem, and recruited helpers who shared their views. As KDE/Qt developed, it posed a growing risk to the progress of free software. The risk was that KDE/Qt would become so established that most of the user community would treat it as indispensable--disregarding the fact that this meant using non-free software. Widespread acceptance of one crucial non-free program would encourage a general willingness to accept non-free software, meaning fewer people who might have the will to help replace KDE/Qt with something entirely free. And that job would require catching up with a large head start, just as we did in replacing Unix with GNU and GNU/Linux. To be back in that situation was a discouraging prospect.
But we were not there yet, and it was clear we should take preventive measures before we got there. In 1997 we launched two parallel projects designed to avoid that situation: the GNU desktop (GNOME), which aimed to provide a completely different alternative graphical interface, and Harmony, a free replacement for Qt. The reason for starting two projects in parallel was redundancy: any project may fail, and the risk was big enough to warrant two simultaneous approaches to preventing it.
GNOME caught on, and by 1999 it was a clear success. Then Qt was rereleased under a new license, the QPL, which made it free software. This solved the principal problem of KDE/Qt, the fact that part of it was non-free. But a secondary problem remained: the problem of license inconsistency.
The QPL is incompatible with the GPL, which means that Qt and GPL-covered modules cannot legally be combined, unless the developers of one module or the other grant an exception to permit it. The KDE developers certainly intend their GPL-covered code to be used with Qt, and one can argue that by telling you to link it with Qt they have implicitly given you permission to do that. But they did not formally state this exception in the KDE source code itself, and it is not comfortable to rely on implicit permission for something like this.
In addition, in some cases code was copied into KDE from existing GPL-covered modules whose copyright holders had not given special permission. (Only the copyright holders can give extra permission to do things that the GPL does not permit.) That is a real violation of the GPL. Because of this, and the overall lack of an explicit exception, the legal status of KDE remained clouded.
Qt 2.2 provides the basis to solve this secondary problem, but a certain amount of cleaning up will be needed to fix it thoroughly. Misusing a GPL-covered program permanently forfeits the right to distribute the code at all. Such situations have occurred in KDE, and now they ought to be cleaned up.
It would be a good idea for all of the authors of code in KDE (more precisely, all of the copyright holders) to make a clear statement that linking their code with Qt in the past was done with their permission, thus assuring existing KDE users that they have not forfeited distribution rights to that KDE code.
Also, where code was copied from other GPL-covered programs, their copyright holders need to be asked for forgiveness. To lead the way, the FSF hereby grants this forgiveness for all code that is copyright FSF. More precisely, those who as of September 4, 2000 have used some FSF code in violation of the GPL solely by linking it with Qt, and thus have forfeited the right to use that code under the GPL, will once again have full GPL permissions to use that code upon switching to a GPL-covered version of Qt. I appeal to all the other copyright holders of affected code to grant similar forgiveness and thus help resolve the situation quickly.
Soon KDE should be properly based on a GPL-covered version of Qt, and the Free Software Movement will be able to think of KDE/Qt as a contribution and not as a problem. Meanwhile, I think there is no reason to work on another package which is equivalent to Qt. If you want something like Qt, use Qt.
But GNOME is here, and is not going to disappear. GNOME and KDE will remain two rival desktops, unless some day they can be merged in some way. Until then, the GNU Project is going to support its own team vigorously. Go get 'em, gnomes!
Copyright 2000 Richard Stallman