Licensing question - QGC & Qt Open Source

Hi everyone,
According to QGC’s COPYING.md the software is released under both Apache 2.0 and GPL v3 and “When building with Apache 2.0 a commercial Qt license is required.”.

Qt Licensing and GPL modules list only a few modules under GPL/commercial, one of them is the Qt Charts module.

Looking at how QGC uses Qt I am not sure I understand why Qt open source cannot be used, except for the Qt Charts dependency in a few components which can be disabled if not using those components.

Could you please elaborate on the reasoning behind the commercial Qt license requirement?

Thanks!

I don’t quite know how the licensing should be worded. But the way it works is this:

  • If you use a QGC fork to build your own released version of QGC and your repo is not public then you need to have a commercial license of Qt. Those are Qt rules, not QGC rules.
  • If you use a QGC fork to build your own released version of QGC and your repo is public then you can release using the open source version of Qt. Once again Qt rules.
  • If you use a QGC fork to build your own released version of QGC and publish it to the Apple Store then you must use a commercial license of Qt. Apple rules.

The QGC source license itself is basically do whatever the hell you want with it. But the complications come from Qt and Apple.

Thanks a lot for the answer! I’m not entirely sure why these are the Qt rules -

If you use a QGC fork to build your own released version of QGC and your repo is not public then you need to have a commercial license of Qt. Those are Qt rules, not QGC rules.

Most of Qt is also licensed under LGPL 3 (see licensing), so in general software that uses those parts of Qt and can comply with that license can be released without the source code. That’s the main difference between GPL and LGPL, LGPL allows dynamic linking with Qt without affecting dependent code, as long as one does not modify Qt itself.

QGC for desktop links with Qt dynamically (the default), so I don’t see why one will not be able to comply with LGPL requirements. The only thing that does seem to prevent that is the dependency on Qt Charts (which is commercial / GPL only), but that can be disabled. I’m not sure about mobile platforms because dynamic linking may not be technically possible, but I’m only asking about desktop for now.

So if I may suggest alternate wording, I would remove the “commercial license required” phrase from QGC COPYING.md and instead direct users to the Qt licensing page while mentioning that Qt is either commercial or open source (GPL/LGPL). I would also mention that QGC uses Qt Charts which is commercial/GPL only to prevent any misunderstandings.

Thanks again!

I asked Lorenz to take a look. Licensing isn’t my thing.

So, I have a pretty close problem, but I want to build LGPL modules as *.so files for dynamical linking them to my application, but can’t understand how to do that? And so what need to doo with qt libraries, maybe I can build part statically, and part dynamically, never the less I want to build it dynmically, or part statically, part dynamically.

Yes you are right, the QtCharts lib is the one that requires the commercial QT license.
QtCharts are used in some places. Unfortunately the latest QGC releases now added one important location: the terrain height diagram.
All these places could be replaced using a non GPL based Charts lib, but nobody has yet done it.

Is it possible to have QGC edition linked with only LGPL libraries ?