Home        Store        Learn        Blog

Licensing for Custom QGC Interface

Hi!

As part of our project we need to write a part about the licensing needed for QGC with a custom interface.
We have found that QGC is open source (as we all know :clown_face: ) But we have found something else.

We use Qt Creator (as we had the whole journey to start using it) and we have found that Qt requires a license to use it for commercial ends. Qt FAQ: Qt Commercial Licensing

Does this mean that if we build an interface on QGC, which uses Qt Creator to edit, we also will need a license to “use” our version in an enviroment that “uses” it for commercial ends? i.e. implement it in a work enviroment that earns income with the application as a tool during said work?

(we are not experienced in licensing at all so next to our own research on this topic I’d figure to make this post and ask if any others have tips, wisdom or own experiences in this)

Licensing is frequently a tricky/confusing subject, particularly because there’s a decent amount of value for companies in scaring users/developers into paying for commercial licenses even if they technically don’t require one for their use-case.

You’ve linked to the Qt Commercial Licensing FAQs, which states the following:

To understand what those obligations are, I would direct you to Qt’s Obligations of the GPL and LGPL page, the LGPLv3 license itself, and potentially also the GNU (L)GPL FAQs. Of the points presented on Qt’s page, the main ones I expect to potentially cause concern or have a direct impact on your application are the first 3, and the 6th. I have attempted to summarise those below, but am not a lawyer, so as always if you’re actually planning to sell your software and are uncertain about licensing requirements then you should seek official legal counsel.

  • (1) If running your application requires a modified version of Qt itself, you need to make those Qt modifications available to users, including in source code form - this is unrelated to the rest of your application’s source code
  • (2/3) If your application requires Qt binaries/libraries to run, it must be possible for users to swap those out for their own versions if they want to - this is practically always handled by dynamically linking to Qt binaries, because it’s much harder to manage static linking without also making your application’s source code open
  • (6) If you’re using libraries under the LGPL license you need to make that obvious to the user, and provide them with a full copy of the LGPL license text (this generally isn’t difficult, just something that needs to be done)

On the second point, I’d direct you back to the Quora response I linked you to in your previous thread. In particular, note that (my emphasis)

If you’re planning to provide your software only on desktop computers then the “swap out capability” requirements are generally quite easy to meet, whereas doing that for embedded/mobile devices is generally still possible but can be more complicated.


On a separate but related topic, I would note that there can be significant benefits from making software open source, and also that open source software doesn’t necessarily stop the developers from making money. As a few specific points/examples:

  • software can be paired with hardware, such that people buy the hardware partly because of the software it runs/can interface with (e.g. most Blue Robotics products)
  • software that’s designed to be integrated into other things can get funding from users for maintenance, integration aid, and/or development of particular features (e.g. gstreamer, the ArduPilot project, etc)
  • open source code means users can find problems and/or contribute improvements/new features, so people can work collaboratively to make higher quality shared software that costs less to develop, can develop faster, and has fewer bugs
  • it’s easier to make use of other open source libraries if your software is open source (and indeed, it’s sometimes even a requirement for particular libraries depending on their license)