The K Desktop Environment  
 
 

The Qt issue

KDE has been attacked for the use of the Qt crossplatform GUI toolkit. A lot of misinformation has been spread about Qt and its role and position in the KDE project. We would like to take this opportunity to explain our point of view. 

Read what Linus Torvalds, the creator of Linux, has to say about the licensing issue.

Why did KDE choose Qt?

  • Qt is the best GUI toolkit available for the UNIX platform. It would have been a grave mistake to build a project of the size and scope of KDE with anything else but the best. This is particularly true for a Desktop project whose success depends critically on the availability of many great applications. It is imperative for the designers of the desktop to make application development as easy as possible.
  • Qt is available free of charge to anyone, including its source, for free software development. Furthermore Qt can be freely distributed.
  • We actively encourage commercial software companies to develop applications for KDE. Those companies need a mature, high quality toolkit and technical support. None of the GPL'ed toolkits would have been able to meet these stringent requirements.
  • While most member's of the KDE project would probably agree that it would be good to have a LGPL'ed version of the Qt toolkit, if it were of the same quality as Troll Tech's implementation, we feel a real sense of urgency and a strong need for building a usable desktop today as opposed to 2-5 years from now. From a strategic point of view it would  make absolutely no sense to build our own toolkit before starting actual KDE development. We feel that it is our mandate to build a usable, free, open desktop first. Once that is accomplished we can rewrite some of the tools we used. Strategy and timing are important.
  • The KDE Free Qt foundation was founded. This foundation guarantees the continued free availablility of Qt for free software development as well as the continued developement of Qt now and in the future. The founding of the KDE Free Qt Foundation addresses and renders void fears by parts of the free software community that Qt one day may no longer be available for free software development or no longer be actively developed.
 

I don't understand the Qt issue. Please explain.

Don't worry you are not alone .... 

KDE uses the Qt C++ crossplatform GUI toolkit for KDE development. Qt is available for free in source code form for free software development and can be freely distributed. In particular there is nothing that prevents a CDROM distributor from legally pressing copies of Qt on their CD's. You can use Qt to write applications as long as you make the source code of your applications available for free and you can even sell your application that you wrote with Qt as long as you make the source code of your application available for anyone to download. However, if you wish to sell your applications that you wrote with the freely available Qt toolkit and insist on not making the source code of your application available for anyone to download, then you are obliged to buy a license from the creators of Qt, Troll Tech AS. 
Furthermore if you wish to improve the Qt toolkit then you will have to submit your improvements to Troll Tech who will then merge your changes with the Qt source tree if your 'improvement' makes sense. You are not allowed to distribute a modified version of Qt on your own. 

This might have been a bit compilicated, so let us recapitulate: 

  1. If you want to sell your applications that you wrote using Qt and do not wish to make your source code available for anyone to download, then you need to buy a license from Troll Tech.
  2. If you want to improve Qt then you need to send your improvements to the makers of Qt . If your changes make sense they will incorporate them and make the improved Qt available to anyone through their next weekly snapshot.
Some vocal purists in the free software community object to this sort of license. This might be hard to believe for a newcomer to the free software world, after all Qt is available for free to anyone committed to free software development, but this is the way it is.

The main points of critique are: 

  • If you want to sell applications that you wrote with Qt and do not wish to make your source code available for free then you need to buy a Qt licence.
We believe this point of critique to be unjustified. The most widely used licence within the free software community is the GPL. The GPL is the de facto standard and the vast majority of all programs in the free software community are published under the GPL. However, the GPL license does not permit you to sell applications derived from sources published under the GPL if you do not wish to make the source code available for free. This means that the GPL is a much more prohibitive license than the Qt license in this respect. With the Qt license you can always buy a commerical license and this gives you a way out if you want to sell your applications. If you build on GPL'ed code you don't have this option. You are stuck. 
 
  • If you want to make improvements to Qt you need to send your improvements to Troll Tech. You can not simply distribute the modified version of Qt yourself. 
In our view it only makes sense that there is one centralized authority that is in charge of looking after Qt.  This is the case with most free software projects and is widely regarded as a good thing. Otherwise so called 'fork offs' are a real possiblilty and this sort of branching is not seen to be a good thing by any group. Some like to argue that you couldn't fix a security hole that might have snuck into Qt because you need to send your fixes to Troll Tech first. Clearly, Troll Tech has every incentive to fix such problems immediately, should they ever occur. Given the fact that Qt snapshots are published weekly there is no reason to belive that the fix will not be available almost instantly. Another point often brought forth against Qt is that Qt doesn't have  a certain feature X, say pluggable styles, and that since one is not allowed to distribute modified copies of Qt  we won't get that feature X. The fact is that Troll Tech has put all its resources behind the development of Qt. Qt is being constantly developed and improves at a speed unmatched by any GPL toolkit. Pluggable styles for example are under development and will most certainly be finished and usable before  an implementation of pluggable styles is really usable in any of the half-finished GPL toolkits. 

The astute reader will have noticed that we have made two critical assumptions in the above discussion, namely that: 

  1. Qt will  always improve through active continued developement
  2. Troll Tech will never cease to make Qt available for free software development for any reason, be it a buy out, merger, bankrupcy, you name it ...
This problem is addressed by the KDE Free Qt Foundation: 
 

The KDE Free Qt Foundation

The KDE project and Troll Tech, the makers, of Qt have founded the KDE Free Qt Foundation. The purpose of this foundation is to guarantee the availabiliy of Qt for free sofware development now and in the future. Should continued development of Qt stop or should Troll Tech choose to no longer make Qt available for free for free software development the latest version of Qt will be released under a BSD style license, a license much less restrictive than either GPL or LGPL. The members of the board of the KDE Free Qt Foundation will assess whether Qt development has stopped in which case Qt will be made available under a BSD style license.  The board of the KDE Free Qt foundation consists of 2 member of Troll Tech as well as 2 member of the KDE project who are not affiliated with Troll Tech. In case of a tie, the KDE vote will prevail. 
 

Harmony

Lastly, there is the Harmony Project. The Harmony project is writing a LGPL'ed clone of the Qt toolkit. Given the fact that Qt is about 80,000 lines of code and the fact that Harmony has already written about 25,000 lines within the last 3 months there is a real chance that a usable Qt clone will be availabe within a year's time. Just to put things into perspective, recall that KDE is about 800,000 lines of code today. ( Incidentally, the i386 version of Linux 2.0.31 consists of about 600,000 lines of code.) This shows clearly, that if you do not agree with the use of Qt for KDE, the solution doesn't lie in writing a new desktop from scratch but in writing an LGPL'ed Qt clone. This is what the Harmony Project does. Even for GPL purists there is no viable reason to refuse KDE since a Qt clone will be available in the not so far future. We believe that we have made the right decision by first building a desktop rather than first building a Qt clone. There would have been a good chance that we would have suffered the same fate that the GnuStep project had to endure if we had acted otherwise. The bottom line is, that if you feel that we should use an LGPL'ed GUI tookit, then participate in the Harmony Project.

 

 References

 

Last updated on 27 June 1998.
Send comments to Bernd Wuebben