mavlink / qgroundcontrol

Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)
http://qgroundcontrol.io
3.19k stars 3.54k forks source link

Packaging qgroundcontrol into a snap package #6829

Open Jaeyoung-Lim opened 6 years ago

Jaeyoung-Lim commented 6 years ago

With a discussion with @dagar on #3886 I have tried to package qgroundcontrol into snap.

Snaps are a containerized software package that allows atomic over the air updates and security features. I have had some success on directly pulling the binary of QGC but I find it not practical and seems like a short term workaround, so I am trying to build qgc from source with snapcraft.

However, I have been having problems in building it with the qmake plugin that snapcraft uses. The problem with the qmake plugin in snapcraft that it pulls the qmake binary from the Ubuntu PPA, which on 18.04 it is based on 5.9

It looks like we cannot use the qmake plugin provided by snapcraft anymore, I feel kind of stuck and would be great if I can get some pointers in making this work.

Jaeyoung-Lim commented 6 years ago

I have tried to solve the qt version problem using a qtbuilder plugin on my branch

However, it doesn't connect to the modules with the errors as the following.

Staging qt 
Preparing to pull qgroundcontrol 
Pulling qgroundcontrol 
Preparing to build qgroundcontrol 
Building qgroundcontrol 
qmake LIBS+="-L/home/jalim/dev/qgroundcontrol/stage/lib" INCLUDEPATH+="/home/jalim/dev/qgroundcontrol/stage/include" /home/jalim/dev/qgroundcontrol/parts/qgroundcontrol/src/../../../qgroundcontrol.pro
Info: creating stash file /home/jalim/dev/qgroundcontrol/parts/qgroundcontrol/build/.qmake.stash
Project MESSAGE: Qt version 5.11.0
Project MESSAGE: Linux build
Project MESSAGE: QGroundControl Development master:08dcb7e 2018-08-27 07:37:46 +0200
Project MESSAGE: Release flavor
Project MESSAGE: Using Default QtLocation headers
Project MESSAGE: Using MAVLink dialect 'ardupilotmega'.
Project MESSAGE: Skipping support for Zeroconf (unsupported platform)
Project MESSAGE: Including support for video streaming
Project ERROR: Unknown module(s) in QT: location qml quick quickwidgets texttospeech location-private
Failed to run 'qmake LIBS+="-L/home/jalim/dev/qgroundcontrol/stage/lib" INCLUDEPATH+="/home/jalim/dev/qgroundcontrol/stage/include" /home/jalim/dev/qgroundcontrol/parts/qgroundcontrol/src/../../../qgroundcontrol.pro' for 'qgroundcontrol': Exited with code 3.
Verify that the part is using the correct parameters and try again.