4

This is my question related with GPL and extern GPL scripts:

I have a closed source project plus an extern .qml file, in the app root folder, that uses some GPL QT modules (for example, Virtual keyboard...maybe this modules loads other c++ dynamic libraries too). This file is accessible and editable by the user.

If I load in runtime this GPL .qml file, my project must be GPL too, or can be closed source?

  • 1
    If your application is combined with GPL software such as Virtual Keyboard, then according to the GPL license you must make your application open source under the GPL. The .qml files or whether the files are accessible and editable by the user do not seem to matter for this question. – Brandin Sep 6 '18 at 5:15
  • Qt virtualkeyboard loads dynamic libraries, so its clear that all must be GPL. But is the same if I only load and execute , for example, a GPL javascript function? – M.A. Pons Sep 6 '18 at 9:15
  • The language (JavaScript, etc.) does not matter; what matters is if you are combining code with your application. For example, if you distribute your application with .qml files that are needed for it to function, I would consider those files as being combined with your application. OTOH, if the .qml files are not distributed with your application and are just extra files that the end user can load into the program if she wishes, then they are not considered to be combined with your application. – Brandin Sep 6 '18 at 10:35
  • What do you mean by "extern" .qml file? When you distribute your application, will you distribute those files? Then they are not external in any meaningful sense. Maybe you didn't write them yourself, but the end user (the person you give your software to) doesn't care about that. – Brandin Sep 6 '18 at 10:38
2

Based on your description you have built your application by using the following components:

  • Your application (closed source).
  • Liraries from the LGPL edition of Qt like QtCore, QtGUI, and so on (LGPL).
  • Qt Virtual Keyboard plugin (GPL).

Inluding Qt's LGPL edition libraries in your closed source application is allowed by the license as long as you follow the LGPL rules, which usually implies that you link dynamically to Qt and that you allow users to upgrade or replace the LGPL parts (i.e. the Qt libraries) with their own version if they wish.

However, by including and linking the Qt Virtual Keyboard plugin with your product, you are arguably violating the GPL because you are distributing it and combining it with your program as a plugin. Even if your application uses the functionality of the GPL program only occasionally or only in response to certain user actions (e.g. when the user loads a specific file), you are still distributing the GPLed work with your application, so you must abide by the GPL terms in order to do so.

The GPL allows you to include a GPL program with a closed source program only if the GPL program and closed source program are clearly separated so as they would not be considered one program. The GPL calls this an "aggregate" in the license text. Including the Qt Virtual Keyboard plugin in your application as you have stated sounds like it is combined as to form one program, not aggregation:

When is a program and its plug-ins considered a single combined program?

If you want to maintain GPL compliance you should not distribute Qt Virtual Keyboard plugin or any other GPL library with a closed source product if your closed program makes use of any GPL programs as libraries or plugins.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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