Qt Licensing and 3rd Party Libraries
-
Hi All,
I'm after some advice. If I develop an application using Qt on a commercial license, my understanding is that 3rd Party components are still licensed separately. Whilst it is easy to get a full list of 3rd party components and their associated license agreements (ie. here: http://doc.qt.io/qt-5/qtmodules.html ), it is not actually clear which of these libraries my application would actually use. Given that Qt tools are used to auto-generate code and that the association between the Qt API and the underlying implementation is often not clear, how is it possible for a Qt application developer to know exactly which 3rd party libraries are being used and hence ensure the application is appropriately licensed for 3rd party software? Is there a standard way of doing this?Thanks in advance,
Regards,
Dave -
Hi,
Usually, the list of modules matches what you have added in the
QT
variable.The you have the list of 3rd party licenses here.
Hope it helps
-
Thanks, but each module may have many, many associated licenses. Therefore, my question is, is it possible to know which of the internal 3rd party libraries are being used within any particular module?
Ta,
Dave -
The page with the list I linked to gives you that information module by module.
-
Thanks, I know. But that doesn't address the issue.
Let's say your application includes the 'QT Core' module, as I assume most do. This has 23 3rd party libraries included, each with their own license agreements (although some are common). Given that there appears to be no means of knowing which of these libraries are actually used by what Qt API calls are made, that means that any developed application using the Qt Core module (even if it created using a commercial license) will need to address the conditions of 23 additional 3rd party licenses. That seems like quite an overhead to me.
-
@DaveyDave123 said in Qt Licensing and 3rd Party Libraries:
Given that there appears to be no means of knowing which of these libraries are actually used by what Qt API calls are made,
Click through each library at listed http://doc.qt.io/qt-5/licenses-used-in-qt.html. Some of them are documented at quite a granular level (e.g. "Easing Equations by Robert Penner" says, "Used in Qt Core (QEasingCurve).")
Others are not as granular (e.g. some just say "Used in Qt Core." In this case, the easiest thing to do might be to just attribute the library, even if your app doesn't actually use it. After all, your app is still loosely linked to the library via the "monolithic" Qt5Core.dll
that means that any developed application using the Qt Core module (even if it created using a commercial license) will need to address the conditions of 23 additional 3rd party licenses. That seems like quite an overhead to me.
That's common to many large projects, including non-Qt ones. (Just open, say, Mozilla Firefox > Help > About Firefox > Licensing Information)
Since Qt only depends on libraries with permissive licenses, it's mostly a once-off overhead that you incur when you first set up your project: Attribute the libraries, compile your license document, and commit that into source control. You don't really need to touch those documents again (until you add or upgrade a dependency)