mavlink / qgroundcontrol

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

provide a flatpak on flathub #10651

Open christianrauch opened 1 year ago

christianrauch commented 1 year ago

This is to let you know that I am working on a flatpak for the distribution via flathub https://github.com/flathub/flathub/pull/3968.

  • What problem does it solve?

Easier distribution and updates for users compared to AppImage.

  • What does it do?

Containerised distribution of isolated programs with their dependencies.

  • What flight stacks must it work with? (All, PX4, ArduPilot)

Not relevant.

  • Relevant vehicle types? (All, multirotor, fixed-wing, VTOL, submarine, etc.)

Not relevant.

  • Are there other systems that have this feature?

Every modern Linux distribution supports flatpak.

  • What communication/integration standards does the feature rely on (e.g. MAVLink commands etc.)

flatpak

Since the repo contains the references to all its dependencies, this is actually straightforward. A minor issue is the licence of the metadata file. Once https://github.com/mavlink/qgroundcontrol/pull/10615 has been merged the original upstream can be used and the flatpak definition can be further simplified. See the original flathub PR for instructions on how to test the current build.

There is prior work by @thopiekar (https://github.com/mavlink/qgroundcontrol/issues/10176#issuecomment-1065931745). But AFAIK, this was never submitted or published on flathub.

christianrauch commented 1 year ago

The flatpak has been released: https://flathub.org/apps/details/org.mavlink.qgroundcontrol

booo commented 1 year ago

I think that needs some documentation in the QGC documentation. For the users and maybe for the developers too. Could you add this?

Thanks for your contribution! Very cool.

christianrauch commented 1 year ago

I think that needs some documentation in the QGC documentation. For the users and maybe for the developers too. Could you add this?

Can you give me a pointer to where to put this? Should I just add it to the main README.txt?

booo commented 1 year ago

I think somewhere here would be appropriate:

christianrauch commented 1 year ago

I think that needs some documentation in the QGC documentation. For the users and maybe for the developers too. Could you add this?

I added user documentation at https://github.com/christianrauch/qgc-user-guide/pull/1.

I don't think there is anything special for developers. Anyone can send a PR to the flatpak repo at https://github.com/flathub/org.mavlink.qgroundcontrol to propose updates, e.g. for new releases or different build flags.

One thing that might be of interest, is a verified badge in the store (https://github.com/flathub/flathub/pull/3968#issuecomment-1497326910) to show that this is an officially supported Flatpak.

AlexKlimaj commented 9 months ago

If we could get this building automatically in CI, that would be great.

tbo47 commented 4 weeks ago

Any change we can have the new version released on flatpak? @christianrauch

christianrauch commented 4 weeks ago

Any change we can have the new version released on flatpak? @christianrauch

A 4.4 release is currently blocked by https://github.com/mavlink/qgroundcontrol/issues/11611.

If released versions can be build without additional patches, the flatpak would automatically sync with the latest release.

tbo47 commented 4 weeks ago

oh, ok, So this doesn't need to be updated manually? https://github.com/flathub/org.mavlink.qgroundcontrol/blob/master/org.mavlink.qgroundcontrol.yml#L25

christianrauch commented 4 weeks ago

No. The x-checker-data scans for new tags on the git repo and automatically generates (and merges) a PR.

See https://github.com/flathub/org.mavlink.qgroundcontrol/pull/11 (and specifically commit https://github.com/flathub/org.mavlink.qgroundcontrol/pull/11/commits/1b82e36459fff06ddde567875f03c923da691ce9) for a recent automatic PR for the v4.4.0 release.

However, this only works if the project maintains the build scripts and the sources can be built without additional patches.

tbo47 commented 3 weeks ago

qgroundcontrol has the status of "unverified" in flathub. Which means it won't be available by default on Linux Mint.

"Unverified Flatpaks are disabled by default."

I'm not sure how much effort it would be to change that.