Skip to content

desktop: AppImage compiling and uploading as artifact in GitHub Actions #12401

@kevin-wijnen

Description

@kevin-wijnen

AppImage support

I am looking to introduce AppImage support to the Ruffle project's desktop app for a standalone version with all necessary shared libraries included. AppImages are similar to Windows' .exe executables, with the possibility of having dependencies built-in to allow it to run on any Linux system regardless of installed shared libraries.

Using AppImages is one of the alternative ways of distributing the emulator to any Linux system. This is a benefit for those running a Linux distro that does not have the capabilities of installing said dependencies because of a locked down filesystem (e.g. Fedora Silverblue and Valve Steam Deck's SteamOS 3). Another way of distribution of said packaged binaries, is through Flatpak. Flatpak support was currently being worked on by someone else through #9220 , but considering it is still work in progress and the complexity of adding Flatpak support, I have tried to look into how to integrate AppImage support instead.

Cargo AppImage seems to be a suitable solution, by adding the following steps to the current CI setup:

  • Installing appimagetool and cargo-appimage
  • Making appimagetool executable and putting the path magic byte in (following the Dockerfile provided in the project's README)
  • Uploading the artifact to GitHub as part of a release.

I am currently working on it in my fork, but figured opening an issue and making a draft pull request to try and attract assistance to make it work. Especially as I am currently inexperienced with Rust to tackle this feature request on my own. See #12402 for my own (not working) attempt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-buildArea: Build scripts & CIA-desktopArea: Desktop ApplicationenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions