OPEN SOURCE

Obligations of the GPL and LGPL

What you need to know before choosing a Qt open source license

The Qt framework is dual-licensed, available under both commercial and open-source licenses. The commercial license is recommended option for non-open source projects.

If you consider using Qt under any open source licenses, please read this document carefully.

The primary open-source license is the GNU Lesser General Public License v. 3 (“LGPL”). With the LGPL license option, you can use the essential libraries and some add-on libraries of Qt. This allows for keeping your application source code closed as long as all the requirements of LGPLv3 are met. More details are available below.

Please be advised that some parts of Qt are only provided under GPL for open source users, not under LGPL. Using these GPL licensed framework libraries requires your application or device to be licensed under GPL, as well. All parts that are licensed under LGPL are also available under GPL, thus you have access to almost all Qt framework functionality, as well as development and design tooling, under GPL.

 Find more details on the Qt features page.

Open source features

Four Degrees of Freedom

gnu_300x300

 

LGPL has been chosen as the primary open-source license for Qt, because it provides the following four degrees of freedom that stem from the foundations of the GPL:

  • Freedom to run the program for any purpose.
  • Freedom to study how the program works & adapt it to specific needs.
  • Freedom to redistribute copies so you can help your neighbor.
  • Freedom to improve the program & release your improvements to the public, so that the whole community benefits.

Developing 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.

Developing with GPL

The Fine Print — Exceptions

The Qt Company 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

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 Qt Contribution agreement.

Looking for more resources?

In the "The Evolution of the LGPL License Agreement" webinar, you can learn how to comply with the requirements of the GPL/LGPL v3 License. Otherwise, we encourage to you discuss this topic with your legal advisor and you are, of course, welcome to contact us.