LGPL and "Proprietary Non-Standard Components"?

| | August 5, 2015

I’m reviewing the Qt licensing options, and this SO question was helpful (despite being closed..). However, when looking at this presentation explaining the Qt licensing options, slide 15 says:

Is the software architecture such that Qt will need to make calls to a proprietary component that is not “standard”?

  • If Qt will make calls to non-standard proprietary component you could have a license incompatibility if such proprietary component does not permit you to redistribute it.

  • Section 6 states that “… the required form of the “work that uses the Library” must include any data and utility programs needed for reproducing the executable from it.”

  • Materials “normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs” are exempted, unless the component itself accompanies the executable.

What does that mean? What is a “non-standard” component? Seeing as how Qt is a GUI library, it will quite obviously be somehow calling into my code. What does being “non-standard” have to do with being able to redistribute other parts of the application, that are not created by me?

One Response to “LGPL and "Proprietary Non-Standard Components"?”

  1. As long as anyone can use the same compiler to re-link your project with Qt, you’re in the clear. The object files for your application can be of course linked into a static library, to make handling everything easier. Thus:

    1. Create a static library (.lib / .a) with all of your proprietary code in your application.

    2. Link this static library with your choice of static or dynamic Qt library into an executable.

    3. Upon request you must provide sources for Qt, the static library from #1, and whatever build scripts you use to arrive at #2 (including configuration for building the Qt proper).

    IANAL.

Leave a Reply