When we made the QPL almost two years ago, we were afraid of harming the growing Qt programming community with several incompatible versions of Qt. We felt that we lacked the resources to provide an infrastructure to let other parties interested in Qt development cooperate with us instead of splitting the development. This is not achieved with just a public CVS, but requires careful code review, intensive discussions about design, and a very short response time to suggestions and requests from the community. Without these, we would not be able to keep the high quality of the code base. Today, Trolltech is a much bigger company (five times more developers, to be precise) with a fast-growing second development department in Australia, so this is no longer an issue.
We want to give a strong sign that we have never wanted to control the graphical interface of the free Unices (and GNU, which, as we know, is Not Unix). Instead, we want to provide the best technology possible to write great applications. Thanks to the K Desktop Environment (KDE), the quality of free applications finally reached and even went beyond the level of quality represented in applications on MS Windows.
Recently, several vendors of Open Source applications have enhanced their commitment to the GPL, favoring it over their more specific Open Source licenses. Mozilla and Staroffice are two examples. In more and more cases, newly opened software is distributed under the GPL.
While we believe there are clarity problems with the GPL and strongly encourage the FSF to speed up work on an improved version 3, we see this standardization process as being very important to the success of the free Unices. It would be a shame if Qt, the base library of many of the available applications and the foundation of KDE, were to be an exception.
Under these considerations, using an unmodified GNU General Public License appears a wise thing to do. However, we hesitated due to recent discussions about the strength and validity of the GPL in regard to protecting libraries. Several features on the Web raised this question, including a freshmeat editorial by one of the authors (Eirik Eng).
We read James Ramsey's editorial on July 15th with interest. We could see that we agreed on many points, and the points James brought up concerning the definition of "modules" in the GPL were interesting.
We have been in contact with Richard Stallman (President of the Free Software Foundation) on the issue, and he has been kind enough to offer his help and analysis. He has also sent us comments from Professor Eben Moglen, Professor of Law & Legal history and General Counsel for the Free Software Foundation.
Professor Moglen points to clause 2 b) in the GPL that speaks about a work that "in whole or in part contains or is derived from the Program". After having looked more closely into the matter and the definition of source code in clause 3 (as pointed to by Mr. Ramsey), we have concluded that our fears of people legally making closed source software with a GPLed library were exaggerated.
Another item that has been brought to our attention relates to functions defined in C++ header files. There are a number of functions implemented in our header files (inline functions). These are not a part of the binary Qt library but are put into the application or library that uses Qt at compilation time. There can be no doubt that, for any non-trivial program that uses Qt, parts of our code are contained in the binary version of the program.
It is clearly in the spirit of the GPL that you must not use a GPLed class library for non-free software development, and there are strong arguments that this is legally binding. We were happy to see wide support within the community to spread this word and hope the community will continue doing so.
In short, we have been convinced that the GPL does indeed protect a library from being used to develop non-free software. This is how we interpret the GPL and this is also how the free software community, including the Free Software Foundation, interprets the GPL. Non-free software, in this respect, of course, includes software developed internally in an organization and software with users who do not get access to the source code under a free software license.
We have thus decided to license our next version, Qt 2.2, under the GNU General Public License in addition to the QPL and our commercial license.
By still offering Qt under the QPL, developers can choose the Open Source license that best fits their needs. This guarantees that existing and future programs that use, for example, the Artistic license can also use Qt.
Finally, we would like to thank everybody in the community who has supported us during this process. Now, if you excuse us, we will go back to making Qt even better.
Eirik Eng (firstname.lastname@example.org) is the President and co-founder of Trolltech and holds an M.Sc. in Computer Science. He wrote the first versions of Qt together with Haavard Nord, but has been transformed into a pointy-haired boss. Despite his ripe age of 34, he sometimes lurks around the Trolltech offices with an armed nerf gun. He is married to a beautiful French woman and is the father of 2 boys.
Matthias Ettrich can be reached at email@example.com; we'll post a bio of him when we have it. :)