For a specific example relating to my question, I offer VisIt.

Per the licensing information for VisIt, it is stated that it is BSD-licensed.

But, looking over the libraries used in VisIt, it can be seen for instance that Qt is used for VisIt's GUI. It is my understanding that Qt was never BSD-licensed, or, ever as unrestrictive as a BSD-license, and currently you can use Qt in terms of LGPL or commercial licensing.

So, how can VisIt, which distributes via both source code and binary still be considered BSD-licensed?

As an aside, in the source distribution of VisIt, it includes the GPL and QPL license file for Qt, suggesting an even more restrictive license propagation setup, suggesting that VisIt should be released as GPL and not BSD, as it currently is. (I noticed in the About area in VisIt, they display the QPL license, but, as I understand it, that was dropped many Qt versions ago, and yet VisIt 'distributes' in both the source and binary sense, versions of Qt above v4 and v5.)

The reason I am asking such specific questions regarding VisIt is that I was going to utilize VisIt as the visualization component for a simulation program that I have written. Seeing as how it was BSD-licensed, I thought, 'great', but, in looking at the libraries that VisIt is utilizing, it makes me wonder how it could be BSD-licensed as a whole package. If it was for instance GPL-licensed, then I would not be using it in my 'potentially' commercial future for my simulation program.

So, in general then, does someone intending on using any given software (not written by you) in a commercial application have to scour the library dependencies for said software looking for a GPL-licensed piece of software that might 'force' you to GPL-license your application?

2 Answers 2


Firstly, IANAL/IANYL. Secondly, any answer must address the question of whether dynamically linking code B to code A creates a derivative work of both A and B. We have arguments that it does, and arguments that it doesn't, but no-one really knows; for the rest of this answer I will assume that dynamic linking does create a derivative work, but that is only an assumption for the purposes of the answer.

Despite what other answers here say, if you distribute a derivative work of a body of GPL code (which this answer assumes is true if your code dynamically links to GPL'ed code), the derivative work must be distributed under GNU GPL (GPL3 s5c, GPL2 s2b).

However, Qt is available under LGPL3, which does not require this (see, eg, lack of comparable requirement in s3). If Qt were only freely-available under GPL, then the Visit executable would indeed be required to be distributed under GPL, and its components under compatible licences; but this is not the case, so it isn't.


Although it is commonly advised to use the GPL license if your code depends on third-party GPL code, there is no actual requirement to do so. The only requirement is that you use a GPL-compatible license.

This indeed means that if you want to use a third-party library in your (commercial) GPL-incompatible project, you need to recursively check the dependencies if they have a license that is incompatible with your license.

With a package like Qt as a dependency, which is multi-licensed, the situation becomes more complicated and you can see that it is actually a good thing that you don't have to take over the most restrictive license of your dependencies.

When a project is multi-licensed, it is made available under multiple licenses and users of the project can choose which of the licenses they want to have applied to themselves.

Qt is licensed under GPL. LGPL and commercial licenses. If Vision had chosen to use the GPL license itself, users of Vision would be forced to choose a non-commercial license for Qt as well.
However, as Vision is licensed with a permissive license that is compatible with any of the Qt licenses, they have left all options open for you to choose under which license you would use Qt.
For commercial applications, either the LGPL (if you link dynamically to allow end-user updated of Qt) or commercial options of Qt are viable.

  • “there is no actual requirement to do so”? This answer may be rather misleading. If the VisIt software is a work based on the GPL-licensed library in a way that would make it a derivative work under copyright law then using the GPL is not a suggestion but the only legal way to publish such software. When a work is derivative is debated, but merely linking to a GPL library may make software a derivative work. Very different for the LGPL which allows this with some restrictions. So licensing under BSD when using Qt under GPL is not OK, but it would be OK when using Qt under LGPL.
    – amon
    Commented Dec 3, 2017 at 18:08
  • 1
    @amon: Whether a work is a derived work of some other work is independent of the license that is used. The GPL can not use a different meaning of derived work than the BSD license (for example). If a project that use a third-party library really is a derived work of that library, then according to your interpretation, you can't use libraries with different licenses, because you would be creating a derived work of multiple originals with different license terms and you can't use both licenses on your code. Commented Dec 3, 2017 at 18:32
  • This means that either the GPL definition of a derived work is wrong, or (some types of) derived works can have a different license than the work they build upon. I would argue that the latter is true. Commented Dec 3, 2017 at 18:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.