Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow building QGroundControl with only LGPL Qt modules #8252

Open
realflight1 opened this issue Jan 23, 2020 · 4 comments · May be fixed by #11600
Open

Allow building QGroundControl with only LGPL Qt modules #8252

realflight1 opened this issue Jan 23, 2020 · 4 comments · May be fixed by #11600

Comments

@realflight1
Copy link

According to Qt Licensing and in particular this list, most of Qt is (also) released under the LGPL license except for a few modules that are GPL / commercial only.

QGroundControl uses mostly LGPL modules. At the moment only MAVLink inspector uses the charts module which is GPL / commercial.

What I am asking for is a CONFIG option or something similar to disable building code that uses non-LGPL modules. This will require changes to qgroundcontrol.pro. Something like this works for the current code base (define QGC_ENABLE_QT_LGPL in user_config.pri or on the command line):

#-------------------------------------------------------------------------------------
# MAVLink Inspector
contains (DEFINES, QGC_ENABLE_MAVLINK_INSPECTOR && !QGC_ENABLE_QT_LGPL) {

Another option would be something like this (easier to understand but more verbose):

# Enable usage of LGPL-only Qt modules
contains(CONFIG, QGC_ENABLE_QT_LGPL) {
    # Disable MAVLink inspector as it uses the charts module
    contains (DEFINES, QGC_ENABLE_MAVLINK_INSPECTOR) {
        DEFINES -= QGC_ENABLE_MAVLINK_INSPECTOR
    }
}

You might remember I started a discussion on this.

Thanks!

@DonLakeFlyer
Copy link
Contributor

At the moment only MAVLink inspector uses the charts module which is GPL / commercial.

Just FYI: PID tuning also uses charting

@dogmaphobic
Copy link
Contributor

That means both iOS and Android must also be disabled as they both statically link Qt, no?

@realflight1
Copy link
Author

At the moment only MAVLink inspector uses the charts module which is GPL / commercial.

Just FYI: PID tuning also uses charting

Correct, my mistake. QGC can still be built though, it will just fail when trying to open Tuning with the following message (tested with ArduCopter SITL) -

qrc:/qml/APMTuningComponentCopter.qml:463:17: Type PIDTuning unavailable
qrc:/qml/QGroundControl/Controls/PIDTuning.qml:12:1: module "QtCharts" is not installed

That means both iOS and Android must also be disabled as they both statically link Qt, no?

Regarding Android, QGC already links dynamically with QT. You can unzip the generated APK file and see that it includes the QT .so files. I am not sure about iOS.

@ea-r1
Copy link

ea-r1 commented Mar 6, 2024

Would this be possible ?

@HTRamsey HTRamsey linked a pull request Jun 4, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants