In the new Qt Documentation we can find “Qt 5.5 GNU Lesser General Public License (LGPL)” and particularly the confusing and foggy sentence “Qt is available under the GNU Lesser General Public License version 3 and the GNU Lesser General Public License version 2.1.”.
Is it released under LGPL 2.1 or LGPL 3? From the final application and the embedded device itself the difference is huge.
Qt license model offers two choices:
- Enterprise, Professional, and Indie Mobile licenses.
- Community license (GPL or LGPL versions 3 and 2.1)
The adoption of a LGPL license for Qt, will basically allow you to create closed-sources application if you dynamically link to the library, as stated by the LGPL-v2 license itself.
The confusing part is that Qt5 started offering some library components under LGPL-v3 and the v3 license obliges and requires that to provide all instructions to recompile and reload the library on the target system, but only two components are released under LGPL-v3 : Canvas3D and WebView, so if you avoid to use them you can continue to create closed-sources applications as usual.
For further details read this post in the QT Blog
Changes in the Qt 5.4 Release with LGPLv3
Because of this, Digia are now adding LGPL v3 as a licensing option to Qt 5.4 in addition to LGPL v2.1. All modules that are part of Qt 5.3 are currently released under LGPL v2.1, GPL v3 and the commercial license. Starting with Qt 5.4, they will be released under LGPL v2.1, LGPL v3 and the commercial license.
However, there will be a set of new add-ons that will be only released under LGPL v3 (plus GPL v2 or later) or commercial license. These add-ons are listed below. We have discussed with the KDE Free Qt Foundation and have their support to make this change in Qt 5.4. We are also in talks with the KDE Free Qt Foundation about further strengthening the agreement.
New add-ons released under LGPL v3
In Qt 5.4, the new Qt WebEngine module will be released under LGPL v3 in the open source version and under a LGPLv2.1/commercial combination for Qt Enterprise customers.
Adding LGPLv3 will also allow us to release a few other add-ons that Digia before intended to make available solely under the enterprise license. In Qt 5.4, we will add a technology preview for two brand new modules to Qt under the LGPL v3.
The second module is a lightweight WebView module that will also be released as a technology preview. It supports embedding the native Web engines of the underlying operating system into Qt, and is currently supported on Android.
There is a final add-on that will get released under LGPL v3. This module will give native look and feel to the Qt Quick Controls on Android. This module can’t be released under LGPL v2.1, as it has to use code that is licensed under Apache 2.0, a license that is incompatible with LGPL v2.1, but compatible with LGPL v3.
How does this change affect you as a Qt user?
One of the first questions you might have is, of course, how this affects you as a user of Qt.
This first thing to notice is that if you are using Qt under a commercial license, nothing changes at all.
Also, if you are using Qt under GPL v3, you are unaffected, since LGPLv3 can always be converted to GPLv3.
Please find more information about open source licenses at http://www.gnu.org/licenses/
If you are not sure what license you should be using in your project, please consult a legal expert.
Digia has opened an email address for specific questions about using Lgplv3 in your project.
Please contact Digia : https://www1.qt.io/contact-us/
UPDATED OCTOBER 2018
Developing Qt5 with LGPL
These four degrees of freedom are very important for the success of the open-source Qt Project, and it is important that all users of Qt under LGPL adhere to these and fully meet all the requirements set by the LGPL. It is recommended that a thorough legal analysis is conducted when choosing to use any open-source licenses. In many cases, the LGPL is a viable solution to use, but it is important that the freedoms of the LGPL are not restricted from the user of an application or device using an LGPL library such as Qt, which may be difficult to achieve in some use cases. For such cases the commercial licensing option is typically a better choice.The following requirements should be fulfilled when, for example, creating an application or a device with Qt using the LGPL:
- Complete corresponding source code of the library used with the application or the device built using LGPL, including all modifications to the library, should be delivered with the application (or alternatively provide a written offer with instructions on how to get the source code). It should be noted that the complete corresponding source code has to be delivered even if the library has not been modified at all.
- In case of dynamic linking, it is possible, but not mandatory, to keep application source code proprietary as long as it is “work that uses the library” – typically achieved via dynamic linking of the library. In case of static linking of the library, the application itself may no longer be “work that uses the library” and thus become subject to LGPL. It is recommended to either link dynamically, or provide the application source code to the user under LGPL.
- The user is allowed to change and re-link the library used in the application or device – including reverse engineering. With LGPLv3 it is explicitly stated that the user also needs to be able to run the re-linked binary, and that sufficient installation information must be provided. In practice, this forbids the creation of closed devices, also known as tivoization.
- If the application or device is not fully following all requirements of the LGPL, it is not allowed to be distributed at all. This includes, for example, possible patent license restricting distribution of the application in which case there is no right to distribute.
- The freedoms provided by the LGPL license cannot be in any way negotiated upon or restricted from any of the recipients – i.e. it is not possible to make such terms for an application or a device using the LGPL library that would in any way restrict the rights provided by the LGPL. For example some means of distribution, such as online application stores, may have rules that are in conflict with LGPL, in which case those cannot be used with the LGPL licensing option of Qt.
- The user of an application or device created with LGPL library has to be notified of their rights by providing a copy of the LGPL license text to the user and displaying a prominent notice about using the LGPL library – i.e. it is not allowed to hide the fact the LGPL library is used.
- The LGPLv3 doesn’t forbid anyone from implementing any kind of DRM technology. However, if someone breaks the DRM, the license says that he will be free to distribute his software. For more details, see the (L)GPLv3 license FAQ.
- The LGPLv3 contains explicit patent clauses in order to prevent people from trying to enforce patent claims against other licensees of the open source libraries. The clauses are rather complex but extremely relevant especially for larger corporations with software patents. So, it is always recommended to go through the patent clauses carefully with a legal counsel to make sure this would not be an issue if deciding to use LGPLv3. For more information and details, please see the (L)GPLv3 FAQ.
This is not a complete list of LGPL requirements – please refer to the LGPL for complete list of requirements – it is always recommended to contact an experienced legal counsel to clarify detailed licensing suitability. Please note that The Qt Company does not offer legal guidance on whether or not a certain license is suited for your need, or if your application or device meets the LGPL requirements. In case there is any doubt whether or not the requirements of LGPL can be met in full, the commercial licensing option of Qt is often the best choice.