Skip to content

Add AppImage, Flatpak and .deb packages for Linux - #631

Open
prayasabhinav wants to merge 3 commits into
mapmapteam:devfrom
prayasabhinav:linux-packages
Open

prayasabhinav wants to merge 3 commits into
mapmapteam:devfrom
prayasabhinav:linux-packages

Conversation

@prayasabhinav

Copy link
Copy Markdown

MapMap has no Linux package at the moment. The Ubuntu CI job uploads the bare binary, which needs Qt installed. Only someone logged in to GitHub can download it, and it expires after a while.

This PR adds a "Linux packages" workflow. It builds these on every push and attaches them to the GitHub release when a version tag is pushed:

  • An AppImage, built on Ubuntu 22.04 with Qt 6.8.3, so it should run on 22.04 and anything newer.
  • A .deb each for Ubuntu 24.04, Ubuntu 26.04 and Debian 13. One .deb can't serve all three, because the Qt library packages have different names (26.04 dropped the t64 suffix).
  • A Flatpak bundle on the KDE 6.11 runtime.

Each job starts MapMap under Xvfb and fails if it exits within ten seconds. The .deb jobs install the package first. The AppImage job also fails if the FFmpeg multimedia plugin didn't get bundled.

Other changes:

  • make install rules in mapmap.pro (PREFIX, default /usr), which all three packages use.
  • mapmap.desktop is renamed to info.mapmap.MapMap.desktop, and its Icon= now names an installed icon instead of an absolute path.
  • AppStream metadata in info.mapmap.MapMap.metainfo.xml.
  • debian/ packaging and packaging/flatpak/info.mapmap.MapMap.yml.
  • A short section in INSTALL.md.

All jobs pass on my fork: https://github.com/prayasabhinav/mapmap/actions/runs/35988210275. On Ubuntu 26.04 I ran the AppImage and the Flatpak myself. I have only checked that the packages start. I haven't mapped or played a video inside them.

Some things are yours to decide:

  • The app ID info.mapmap.MapMap follows the macOS preferences domain. Change it if you'd rather have another one.
  • debian/changelog says 1.0.0~alpha.1. It needs bumping with each release, the same as mapmap.pro.
  • Putting MapMap on Flathub is a separate submission. Flathub wants at least one screenshot in the metainfo, and somebody on the team to maintain it there.
  • The Flatpak gets read-write access to the home folder, the network and all devices, so media paths, OSC and cameras behave as they do outside it. Narrow these if you'd rather.

Add make install rules, a desktop file named after the app ID, AppStream metadata, Debian packaging, a Flatpak manifest, and a workflow that builds and checks all three packages and attaches them to tagged releases.
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 this pull request may close these issues.

1 participant