Open Source and the Free Software movement have always played a very important role in Qt’s history. From the very beginning, Qt has been available under both Open Source and commercial licensing terms.
This dual licensing approach has played a major role in turning Qt into the technology it is today. While the commercial business funds the majority of the development work, the open source version has helped us grow the ecosystem of users and provided us with invaluable feedback and contributions improving the product.
KDE Free Qt Foundation
To show our commitment to this dual licensing model, the KDE Free Qt Foundation was founded in 1998. It is a non-profit foundation ensuring that Qt will always be available under open source licensing terms. The agreement that governs this foundation has stayed mainly unchanged over the last 17 years. As a lot of things have changed during these years, we have been working with KDE over the last year to create a new and updated agreement that takes todays realities better into account.
Nowadays, we have many more operating systems that are relevant to end users than we had when the original agreement was signed. To account for this, the updated agreement does not only cover X11 as in the original contract (Android got added around 3 years ago), but all major desktop and mobile operating systems. This includes Mac OS X, Windows, X11, Android, iOS and Windows Phone.
We are also now taking into account the fact that Qt is being developed in the open, with many other people in addition to the ones working for The Qt Company contributing to it. To respect the work of these people, the new contract ensures that all contributions, even if they aren’t yet part of a released version of Qt, are covered by the agreement.
Finally, the new agreement contains updates to the license requirements The Qt Company has when releasing a new version of Qt. Let’s have a look at those.
New license requirements
The new contract changes the licensing requirements for the open source version of Qt. The purpose here has been to bring the licensing of Qt more in line with the philosophy of the Free Software movement.
Free Software is about the freedom of the user to change and modify the code and to redistribute and use these changed and modified versions of the code. LGPL version 2.1 (LGPLv2.1) that we have been using as our main license does not ensure this freedom in the most effective way. For that reason, the Free Software Foundation created version 3 of the GPL (GPLv3) and LGPL (LGPLv3) a couple of years back.
LGPL version 3 differs from version 2.1 in two fundamental aspects. It explicitly protects the right of the end user to not only compile their modifications, but also deploy and run them on the target device. This essentially prevents the creation of fully locked-down devices. Secondly, it explicitly includes a protection against patent claims from the entity distributing code licensed under LGPLv3. These two additions greatly help protect the end users’ freedom when using source code licensed under LGPLv3.
For this reason, we added LGPLv3 as a licensing option to Qt with Qt 5.4 back in 2014, and have published new Qt modules under this license.
In line with this, the new contract with KDE now removes LGPLv2.1 as a required license for the open source version. Instead, it now requires LGPLv3 (and GPLv2 to keep license compatibility with some GPLv2 open source projects) for all existing frameworks and GPLv3 for our tooling and new add-ons.
Changes to our product offering
Starting with Qt 5.7, we are planning to adjust Qt’s open source licensing to be in line with these ideas. At the same time, this allows us to open up the parts of Qt for application development that have previously only been available under commercial terms to the Free Software community, unifying the product.
So Qt 5.7 will not be available under LGPLv2.1 anymore. Instead, we will provide the different parts of Qt under the following licenses:
- Qt Essentials: All Qt Essentials will from now on be licensed under LGPLv3, GPLv2 and commercial license terms.
- Qt Add-ons: All Add-ons that are currently available in the open source version of Qt, will in the future be licensed under LGPLv3, GPLv2 and commercial license terms (Qt WebEngine in addition has a LGPLv2.1 requirement due to the 3rd party code from Chromium).Add-ons that were only available under commercial license terms in the past (e.g. Qt Charts and Qt Data Visualization) are now available under both GPLv3 and commercial license terms.
- Qt Tools and Applications: All tools (Qt Creator, moc, etc.) will in the future be available under commercial license terms and GPLv3. The GPL license comes with two exceptions that ensure that there are no license restrictions on generated code, and that bridging to 3rd party code is still possible.
This means that all parts of Qt for Application Development can be used under the GPLv3. Most parts can additionally be used under the LGPLv3 and GPLv2. Compatibility with GPLv2 will be kept where it is currently in place. All LGPL-licensed libraries inside Qt stay available under LGPLv3.
We believe that this combination of licenses for Qt is the best possible option to grow the Qt ecosystem further in the future.
In the embedded space, LGPLv3 in essence prevents the creation of locked-down devices. So any Qt user will then either help the ecosystem by creating an open device that allows Qt developers to target a larger market, or help the ecosystem by funding further development of the product. For desktop and mobile applications, the changes compared to LGPLv2.1 are smaller, but there are important clarifications for example related to mandatory patent license in case of distributing under LGPLv3 or GPLv3.
Unified product offering
With the contribution of these previously commercial-only modules and tools, we are removing the feature delta between the open source and commercial versions of Qt for Application Development. Publishing these add-ons under GPLv3 makes these available to the Free Software ecosystem, while at the same time keeping the incentives for commercial users to buy a license and help us fund further development of Qt.
The modules newly available to open source users are:
- Qt Charts
- Qt Data Visualization
- Qt Virtual Keyboard
- QML Profiler
- Clang static analyzer
- Qt Test Integration
- Qt Quick 2D renderer
Furthermore we will start work to integrate the Qt Quick Compiler functionality into the Qt QML module, targeting the Qt 5.8 release. At that point it will be available under LGPLv3/GPLv2/commercial license (the currently available Qt Quick Compiler will remain commercial-only for Qt version prior to Qt 5.8).
The source code for many of the modules has already been pushed to codereview.qt-project.org and we will push the remaining items in the coming days.
No changes to Qt 5.6 and Qt for Device Creation
Qt 5.6 and earlier versions will not be changed and continues to be available under the old licensing terms. Qt 5.6 is a long-term supported release, supported for three years after its release. We believe that this will give all users of the open source version enough time to adjust to the new licensing terms.
There are also no changes to Qt for Device Creation, which remains a commercial-only product.
Changes for commercial license holders?
It’s important to note that there are no changes to the commercially licensed version of Qt. But, we are convinced that these changes to the open source version will result in indirect benefits also for our commercial customers.
We believe these changes to lead to a better and more feature-rich Qt. This is due to the fact that the previously commercial only parts of Qt for Application Development will receive much broader testing and hopefully also contributions from the ecosystem. In addition, this change will help us extend the investments of The Qt Company into Qt and allow The Qt Company to focus more of its investments into the core part of the product.
Qt for Start-Ups
Over the last years, we have heard comments from many small companies and start-ups telling us that they would love to use the commercial version of Qt, but can’t afford the price of a full license. For these companies, we will in the coming months introduce a commercial start-up license for Qt for Application Development. This reduced-price offering will be limited to small companies and start-ups with annual revenue less than $100K.
Summing it all up
This change is the last step in a process we started about 1.5 years ago when we announced the one unified web site (www.qt.io) for Qt and that certain parts of Qt will only be available under LGPLv3 in the future. With this change, we can now fully unify our product offering. In the future, we will have one product called Qt for Application Development that comes with both commercial and open source licensing options.
The new licensing of the open source version of Qt is now much better aligned with our vision for Qt and the ecosystem around it. It is focused around the idea of a growing ecosystem where the open source version helps us extend the outreach and set of addressable devices for Qt application developers, and the commercial version generates the revenue to push the development of Qt as a product forward.
Feel free to also have a look at the corresponding announcement from KDE.