touchHLE icon indicating copy to clipboard operation
touchHLE copied to clipboard

Release binaries for desktop-ish Linux: how? AppImage/Flatpak/something else?

Open ghost opened this issue 1 year ago • 15 comments

Linux AppImage/Flatpak support for this would be neat.

ghost avatar Mar 07 '23 00:03 ghost

Does not support Linux, please use wine.

upintheairsheep avatar Mar 07 '23 02:03 upintheairsheep

Will close for now, but please think about adding Linux support in the future.

ghost avatar Mar 07 '23 17:03 ghost

Uh, to be clear, this project does “support” Linux, in the sense that you can build it for Linux, it's just not something we promise will be easy or work well, for the time being at least.

There was an existing discussion about Linux support in https://github.com/hikari-no-yume/touchHLE/issues/3.

I don't really want to do Linux binary releases, it's not a single platform in the way that Windows or macOS are. But I am willing to make it easier to build yourself on Linux.

hikari-no-yume avatar Mar 07 '23 20:03 hikari-no-yume

Also, if you hit any problems while building it yourself, please tell us about them (probably in the thread I linked).

hikari-no-yume avatar Mar 07 '23 20:03 hikari-no-yume

Thanks for the clarification

ghost avatar Mar 08 '23 17:03 ghost

I want to revive this discussion a bit.

It seems that the biggest objection to Linux binaries being released is due to all the different distros and dependencies that differ. I would argue that Flatpak and AppImage seek to solve that issue directly, by specifically being distro agnostic.

Literally from the AppImage front page:

"As a user, I want to download an application from the original author, and run it on my Linux desktop system just like I would do with a Windows or Mac application." "As an application author, I want to provide packages for Linux desktop systems, without the need to get it 'into' a distribution and without having to build for gazillions of different distributions."

These two package types bundle the deps in with the binary (a bit more complicated than that, but you get the jist). When paired with a CI tool like GitHub actions, which you already seem to be using, it should be pretty easy to automate a new set of builds, especially with the GitHub provided Ubuntu instance.

Let me know if you want to discuss further, I appriciate the existing Linux support you do have, and have given, but want to see if we can make this easier for all of us :)

WingofaGriffin avatar Apr 30 '23 05:04 WingofaGriffin

I'd recommend going with flatpak if anything for touchHLE, AppImage's main developer can be a living nightmare to deal with, he has a tendency to harass other devs, drop AppImage PRs without any will to maintain them. + Flatpak has the upside of being a stable environment to have your app in and does de-duplication of dependencies.

LunaTheFoxgirl avatar May 08 '23 11:05 LunaTheFoxgirl

Ah, thanks for the heads up.

Unrelated: I wonder if I can avoid using any of these imaging formats. I've refused to have “Linux” builds because it doesn't seem like a well-defined platform to me, but actually, touchHLE probably only needs glibc, SDL 2, and maybe a handful of other things. That's a small enough surface area that I think imaging/containerisation/etc is superfluous. I should do some experiments.

hikari-no-yume avatar May 08 '23 11:05 hikari-no-yume

If you build on something like debian, then yeah it might just work, both glibc and SDL2 has backwards compatibility built in

LunaTheFoxgirl avatar May 08 '23 11:05 LunaTheFoxgirl

Maybe I should look into what the Steam runtime provides. touchHLE is very similar to a typical game in terms of what stuff it needs, and it's probably all in there. If there are distros where Steam support is unrealistic, I would say binaries for touchHLE are also unrealistic there.

hikari-no-yume avatar May 08 '23 11:05 hikari-no-yume

Maybe I should look into what the Steam runtime provides. touchHLE is very similar to a typical game in terms of what stuff it needs, and it's probably all in there. If there are distros where Steam support is unrealistic, I would say binaries for touchHLE are also unrealistic there.

Steam runtime provides basically a old ubuntu container, last time I checked it was 18.04

LunaTheFoxgirl avatar May 08 '23 11:05 LunaTheFoxgirl

If I stick to SDL2, glibc and libstdc++, say, should it work also on stuff that's not Debian-derived, assuming I use reasonably old minimum versions?

hikari-no-yume avatar May 08 '23 11:05 hikari-no-yume

More or less, once you get UI in to touchHLE I would recommend releasing it as a flatpak, means it's one package that just works on linux systems, even non-glibc ones as flatpak ships its containers with it that anyone can download on virtually any distro.

LunaTheFoxgirl avatar May 08 '23 11:05 LunaTheFoxgirl

A flatpak would be amazing! flatpak is a single platform that is platform agnostic, and is much like Android or macOS! it solves many issues and nightmares with Linux both for developers and users, and is generally amazing! plus, a flatpak release would mean compatibility with the Steam Deck too! you can ship it to flathub or as a .flatpak, whichever you prefer

ffoxD avatar Sep 06 '23 12:09 ffoxD

Agreed, flatpak support would be great

puigru avatar Dec 20 '23 19:12 puigru