Changes to Qt Licensing
Some Qt licensing changes were recently announced (1) by The Qt Company. Software licensing can be a complex and confusing issue, and I've already seen some misunderstandings on the mailing lists and forums. Therefore, I thought it would be timely to give some of my thoughts on the changes and what the implications may be for the Qt community.
The usual "I am not a lawyer" disclaimers apply here – nothing I say should be considered legal advice and you should always consult a lawyer when interpreting the various software licenses.
Also note that, in the following discussion, LGPL refers to the GNU Lesser General Public License, GPL refers to the GNU General Public License, and LGPLv2.1 and LGPLv3 refer to versions 2.1 and 3 of the LGPL, respectively.
Qt, starting with the 5.7.0 release coming this spring, will have some licensing changes. Starting with Qt 5.7, the majority of Qt modules (known as the Qt Essentials) will be offered under the LGPLv3 license, but no longer under the LGPLv2.1. Previously, Qt was offered under both LGPL versions (as well as the GPL), although some modules were LGPLv3 only (mostly the new modules added in recent releases since Qt 5.4). The essential modules will also continue to be offered under the GPLv2 and commercial licenses.
The Qt development tools and related applications (like the Qt Creator IDE) will be released under the GPLv3 as well as a commercial license. The GPL makes sense for tools, as it ensures that anyone distributing a modified version gives the changes back to the community, but doesn't prevent using the tools to create non-free software.
The components known as Qt Add-Ons that are currently available in the open source version of Qt, will in the future be available under the LGPLv3, GPLv2 and commercial licenses. Add-ons that were only available under commercial license terms in the past will now be available under both GPLv3 and commercial licenses.
The diagram below shows a breakdown of the licenses that the various Qt modules will be offered under using the open source version.
Summary of New Qt Licensing (image credit: The Qt Company)
I think, overall, this is good news for everyone involved in the Qt ecosystem.
For developers who use Qt to develop applications, there is one less license to worry about, now that the LGPLv2.1 is not one of the options. Previously, if you wanted to use Qt under the LGPLv2.1 you have to be careful not to use any of the newer modules that were offered under the LGPLv3. There are seven new modules becoming available as open source that were previously commercial only, specifically Qt Charts, Qt Data Visualization, the Qt Virtual Keyboard, QML Profiler, Clang static analyzer, Qt Test Integration and the Qt Quick 2D renderer. The Qt Quick QML compiler will also become available under LGPLv3, GPLv2, and commercial licenses, likely in the Qt 5.8 release.
For open source developers who use Qt, like the KDE project, the new modules should be available for use in open source applications. In fact, The Qt Company has a legal agreement with KDE (2) to ensure that Qt always remains free software. Part of this new licensing process involved updating the agreement between The Qt Company and KDE. Over the years the ownership of Qt has changed several times, and it is comforting to know that this agreement ensures that Qt will stay free and open despite any changes in ownership.
For developers who contribute to Qt, they can now see and contribute to the new modules that are being open sourced. One of the main advantages of open source, having many eyes looking at and working on the code, will likely improve the code quality and increase the rate at which new features are added.
For managers and other decision makers, there is one fewer license to understand. The conditions of the LGPLv3 are more restrictive than LGPLv2.1, particularly for embedded systems, and need to be examined carefully to ensure you can comply with them.
One possible area of confusion with the LGPLv3 is that it references the GPLv3. Effectively, the LGPLv3 is a set of special exceptions to the GPLv3 license. So, for example, you may have heard that the LGPLv3 has restrictions on DRM and patents, but you won't find the details in the LGPLv3, as it references the relevant portions of the GPLv3 for this. This is a major structural difference between LGPLv3 and LGPLv2.1, where the latter was effectively a standalone license which was self-contained and could be examined in isolation.
The GPLv3 and LGPLv3 have a requirement to allow the end users to install and execute modified versions of the software (i.e. Qt). For desktop applications, where Qt is typically shipped as dynamic link libraries, compliance with the LGPLv3 should not be difficult. Many embedded devices, however, are intended to be locked down and users cannot update any software on them. These types of products will typically require the commercial version of Qt. But not all embedded devices will necessarily need to use the commercial version of Qt – if you are able to comply with the terms of the LGPLv3 then you can use Qt under that license. This is one of those points where I get to remind you that your product owners need to talk to your legal counsel to see what is best for you!
I expect the licensing changes to be welcomed by most people in the open source community, as it brings Qt in line with the latest versions of the GNU licenses. However, it will make it more difficult for some commercial users to continue using the open source version. These changes should help bring more balance to the Qt community where traditionally many commercial firms have financially contributed to the growth and stability of Qt by purchasing licenses, while many open source developers contribute in their spare time. While some might prefer that Qt be free as in "free beer", the reality is that the future viability of Qt requires revenue to sponsor that free beer so it continues to be available to all. The changes should also have the benefit of helping ensure that users submit changes back to the community so that everyone benefits from a single code stream.
The license changes are a little confusing, but when all is said and done I think things will be simpler than before. Developers will continue to need to be aware of the various licenses that different modules are offered under, and avoid including modules that are not licensed appropriately for their project. Fortunately, users will not need to make a quick decision as these changes will not take effect until the Qt 5.7 release. Qt 5.6.0, coming in the next month or so and being released under the same licenses as previous versions, will be an LTS (Long Term Support) release of Qt that will be supported for at least three years.
I am personally looking forward to seeing the new Qt modules and tools coming up in the Qt 5.7 release and hope to review some of them in future blog posts.
References
- New Agreement with the KDE Free Qt Foundation and Changes for the Open Source Version, The Qt Company blog post, last accessed 14 Jan 2016, http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation
- Qt is Guaranteed to Stay Free and Open – Legal Update, KDE project blog post, last accessed 14 Jan 2016, http://dot.kde.org/2016/01/13/qt-guaranteed-stay-free-and-open-%E2%80%93-legal-update