-
-
Notifications
You must be signed in to change notification settings - Fork 464
Add flatpak support #629
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
base: main
Are you sure you want to change the base?
Add flatpak support #629
Conversation
|
Thanks for this - haven't had a chance to go through it all yet but at a glance it looks high quality. I think we're ok if the flatpak is podman only. @tulilirockz mentioned a while back that podman-remote might be the way forward for flatpak, not sure exactly what her intention was for that approach though. I don't have any real working knowledge of flatpaks nor flathubs publishing requirements. |
I think, (but I'm not sure) the idea is to ship podman with the app in the flatpak, and expose the host podman socket to flatpak. Then podman inside the flatpak can use podman remote to connect to the socket. |
|
Also it might be a good idea to wait for #515 before dealing with flatpak. I think |
|
Food for thought: both docker and podman have HTTP APIs that can be used instead of their cli programs:
It's possible to generate a typescript client for those APIs and use it directly instead of relying on external CLIs: docker run -it --rm -v "$PWD:/local" \
openapitools/openapi-generator-cli generate \
-i https://docs.docker.com/reference/api/engine/version/v1.52.yaml \
-g typescript-node \
-o /local/docker-clientThus avoiding the need to package docker and podman altogether. The docker client will probably work for both docker and podman, as podman API is supposed to be compatible, but this needs testing (I haven't tried it yet). |
TY for having a look Auri - this sets off a chain haha as we want to do a full refactor (and rework the UI) of the config page first. I was waiting for Lev/Tibix to do the first sub-page but I should probably just give it a go. |
That seemes a lot more work than just exposing the unix socket, and I don't know if it's worth it. p.s. I can't really speak for whether any changes should be made to the flatpak packaging as I have no idea how it work. |
flatpak/directory:Makefile- has rules to regeneratego-sources.json,modules.txtandjs-sources.jsonapp.winboat.Winboat.metainfo.xml- flatpak metadataapp.winboat.Winboat.yml- flatpak manifestgo-sources.json- guest server dependenciesjs-sources.json- main app dependenciesmodules.txt- guest server modules file for go vendorexecFile*calls to be flatpak-aware, they now useflatpak-spawnwhen inside flatpak to call external programs (docker/podman and xfreerdp aren't shipped with the bundle).This isn't really Flathub-ready because of the use of
flatpak-spawn(although, some apps that use it do get accepted, so I dunno), but it would be convenient to at least provide flatpak bundles from this github repository, as the current installation options do not work on, e.g. GNU Guix (appimages don't work there, not without hacks anyway).