The Qt framework

Qt is licensed under three different licenses. You can choose whether you want a commercial license (in which case, your proprietary application is protected in exchange for a per-developer license plus royalties), an LGPL license (which, as discussed before, would also protect your proprietary software by allowing the dynamic linking of your application as long as you complied with the LGPL for the Qt framework itself), or the GPLv3 (which would be inherited by your application).

The LGPL version of Qt library versioning has changed with each software release:

  • In Qt5.3 most modules were under LGPLv2.1, with a few commercial-only modules
  • From Qt5.4, new modules were published under LGPLv3, which was also added as an option for older modules
  • Qt5.7 dropped LGPLv2.1 support, with the only option being commercial, GPLv3, or LGPLv3
  • The licensing model for Qt5.9, which is the version in Yocto 2.4, has not changed so it allows commercial, GPLv3, or LGPLv3

LGPLv3 is an extended version of LGPLv2.1 that basically adds what is called an anti-tivoization clause that requires us to allow for modified source code to run on the device as well as to provide instructions for it. When using Yocto Project, this could be done by providing the SDK to build the Qt library source with, as well as a way to deploy it, which could be via a package update. Note that this only refers to the Qt library, not the application that links with it dynamically, so the system should be designed in such a way that the Qt application that uses the library has no access to critical parts of the system, for example, by a well-designed SELinux policy as explained in the Securing the root filesystem recipe in this chapter.

Details about Qt's current licensing models can be found at https://www1.qt.io/licensing-comparison/.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset