Qt Project Legal Aspects
Below you will find information about the following topics:
The Qt framework is dual-licensed, available under both commercial and open-source licenses. The primary open-source licenses are the GNU General Public License v. 3 ("GPL") and the GNU Lesser General Public License v. 2.1 ("LGPL"). In addition to GPL and LGPL, the Qt libraries are available under commercial license terms from Digia. The Qt documentation is licensed under the GNU Free Documentation License version 1.3.
GPL and LGPL have been chosen as the primary open-source licenses for Qt Project, because it provides the following four degrees of freedom:
- The freedom to run the program for any purpose.
- The freedom to study how the program works and adapt it to specific needs.
- The freedom to redistribute copies so you can help your neighbor.
- The freedom to improve the program and release your improvements to the public, so that the whole community benefits.
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 GPL and LGPL adhere to these and fully meet all the requirements set by the GPL and LGPL. It is recommended than a thorough legal analysis is conducted when choosing to use the GPL or LGPL or other open-source licenses. In many cases, the GPL or LGPL is well suited, but it is important that the freedoms of the GPL and LGPL are not restricted from the user of an application or device using a GPL or LGPL library such as Qt, which may be difficult to achieve in some use cases.
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. Static linking is an item that is not clearly stated in the LGPL and possible methods to circumvent the application becoming a derivative work are not proven, thus is it best 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. It is not clearly stated whether or not the user has to be able to place the modified library back into the device, if this is meant by the LGPL license, it should be enabled.
- 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 theLGPL library that would in any way restrict the rights provided by the LGPL.
- 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.
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 Project does not any 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.
The Qt Project has made the following exceptions from LGPL licensing:
- Third party software already included in Qt is governed by the separate Open Source license terms under which the third party software has been distributed. All third party software is listed in the documentation, along with their licensing terms. For example, here you can find list of third party licenses used in Qt.
- Libraries that must be statically linked, such as the QtMain Library (QaX Server, QaX Container) have been licensed under a BSD-style license.
- Application code as part of examples, which can be used by Qt contributors in the application creation is generally licensed under a BSD-style license
- Documentation is licensed under the GNU Free Documentation License
Qt trademark policy
Participating in the Qt Project
In order to participate in the Qt Project, you (or the legal entity on whose behalf you intend to contribute) need to execute the Contribution Agreement. If you are considering contributing to Qt, please familiarize yourself with the contribution agreement.