TagStudio
TagStudio copied to clipboard
make a flatpak for linux
https://www.flatpak.org/ flathub.org
it's linux's app sharing website
As a fellow linux user, I would like to point out that TagStudio is still in very early development, and probably shouldn't be packaged for flat quite yet.
Updating the flatpak would be an extra chore that isn't nessicary at this stage in TagStudio's development.
That being said, I'm not familiar with the flatpak packaging process. As one of flatpak's main purposes is stability, if it could, having it clone from the repo wouldn't make sense.
you just PR the app to the flathub repo and follow its instructions, having it compatible early on will prevent future forking being blocked due to design decisions now
I'm not familiar with flatpaks but a cursory glance appears to show that sandboxing is one of the primary goals, and while re-enabling whole system or specific folder file access is possible it would be opening holes in that sandbox. Am I understanding the goal/limitations here properly or are there other details that support this as a distribution channel?
they use portals to escape sandbox. look at the docs or talk to the devs, they know more
you just PR the app to the flathub repo and follow its instructions
Oh it's not "just". There can be some difficulties to actually make the app compatible with Flatpak due to the portals, but you are right that it's good to have it early at design stage.
re-enabling whole system or specific folder file access is possible it would be opening holes in that sandbox
Well, it's not that it disables the whole sandbox, but it just gives the permission to the folder and it's content. Users can either do it manually with Flatseal or the Program can have this specified from start. Like, for example there is the Bottles program. It only sees files in it's folder so even when you point it the installer that is outside the permission, Bottles can't run it. I personally love it, but it has lead to many users just dismissing the program as not working because it couldn't open the files. There is also supposed to be a new portal to open file and neighbouring files which I think TagStudio would very much need to use in the future.
That being said even though I do use Flatpaks on daily basis and generally don't have any major complains the portability is one of those areas that Flatpak isn't the best (kind of). Running it from USB memory stick is pain compared to .exe on Windows, but it is portable in the sense that you can switch your whole Linux distro while retaining the Flatpak folder and the apps should work.
The .AppImage is better fit for portable apps. However It doesn't bundle all the runtimes like the Flatpak does so it may not run on every distro so you need to check it.
Packaging the programs, ain't it fun...
As @Qronikarz pointed out, making a Flatpak is not a trivial matter. As well, it does not make sense for the current infrastructure being a Python application experiencing rapid development, and wide scope changes as things are adjusted for user needs and experience. That being said, the Tauri project builds into an AppImage, and should be able to be published to AppImageHub. Not Flatpak, but something alike. As well, once Tauri V2 is stabilized as a release, that brings support for Flatpak. So as all to say, while a Flatpak will not be created now, it will be once the Tauri project takes over as a main TagStudio release and Tauri V2 is used.
You can feel free to reference my Python QT app if you need help with flathub manifests for packaging.
https://github.com/TagStudioDev/TagStudio/issues/129#issuecomment-2094365079
Most KDE and GNOME developers would recommend designing for Portal usage due to a great many important technologies’ reliance upon them, like most Wayland compositors, and Flatpak, and because they can be used irrespective of whether the application is packaged using Flatpak or running under Wayland (or XOrg X11). Consequently, Flatpak packaging might be useful to ensure that the relevant portals are being used.
However, note that the Flatpak sandbox can be almost entirely escaped. From my experience, most people using Flatpak (for FOSS software) use it because a native package doesn't exist, rather than an interest in security. Consequently, disabling problematic filesystem restrictions until the relevant portals have been implemented is a strategy to test solely whether Flatpak packaging is immediately feasible.
https://github.com/TagStudioDev/TagStudio/issues/129#issuecomment-2094373544
@xarvex, AppImage is barely comparable. It's a file that is decompressed at runtime and has dependencies that aren't available in a lot of OSes. I don't see the use nor benefit if any alternative kind of compiled version exists.