Preface
I'm having trouble determining if I can use the Qt framework for developing a cross platform desktop app.
Situation
The app is open source, and the libraries it uses are also open source. So I can provide the source code for the whole app without issue. However, the app will be communicating with hardware that has closed source firmware. The app will read and write data from the device. Read data will be used to visualize what the hardware is doing. It will also update the hardware by feeding the device an encrypted firmware file, which its boot-loader (also closed source) will encrypt and commit to flash. LGPL and GPL licensed code will in no way be used in the firmware or boot-loader.
Questions
Does the free LGPL version of the Qt framework allow me to keep my firmware as closed source? If so, does the GPL license allow for this use-case as well?
Edit
I read something interesting on a similar question involving the LGPL and GPL licenses:
"As a rule of thumb, the GPL reaches as far as the address space of the licensed code."
If I am reading this correctly, my Qt app should have no licensing issues.
-
5The LGPL was specifically created to provide this ability. You should read more about the license. The main difference between the GPL and the LGPL is that the latter allows the work to be linked with (in the case of a library, "used by") a non-(L)GPLed program, regardless of whether it is free software or proprietary software. The non-(L)GPLed program can then be distributed under any terms if it is not a derivative work...Robert Harvey– Robert Harvey2017年08月03日 15:05:56 +00:00Commented Aug 3, 2017 at 15:05
-
Can you verify that the encrypted firmware file is simply treated by the Qt application as piece of data, and is no way linked to or utilized by the Qt application itself?Peter M– Peter M2017年08月03日 15:58:05 +00:00Commented Aug 3, 2017 at 15:58
-
I can verify the firmware file is not linked to the Qt application. It is 'utilized' in the sense that the Qt application will open it, and parse / send its contents over a COM port, but nothing in the firmware update file will change the app or its supporting files. The Qt application serves as an interface between the desktop user and the hardware.Megabytte– Megabytte2017年08月03日 16:36:45 +00:00Commented Aug 3, 2017 at 16:36
1 Answer 1
From your description I think the use of LGPL (and probably GPL) code in the app is probably ok.
The GPL FAQ covers this:
To do this validly, you must make sure that the free and nonfree programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.