hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.18k stars 2.17k forks source link

(Feature Request) Provide statically compiled binaries for official releases #16511

Open hardBSDk opened 1 year ago

hardBSDk commented 1 year ago

What should happen

The official releases should have a statically compiled binary, actually it just offers a Flatpak.

(Development builds had statically compiled binaries for years)

Who would this benefit

The user need to install Flatpak to use the standalone version of PPSSPP, there are security concerns too.

Platform (if relevant)

Linux / BSD

Games this would be useful in

All.

Other emulators or software with a similar feature

Checklist

hrydgard commented 1 year ago

Pull requests that set this up would gladly be merged.

It's really a Sisyphean job to keep up with all the changing packaging requirements on all platforms and distribution channels, I am unable to keep up myself, so would be perfect if someone who knows these platforms can help set this up.

hardBSDk commented 1 year ago

Pull requests that set this up would gladly be merged.

It's really a Sisyphean job to keep up with all the changing packaging requirements on all platforms and distribution channels, I am unable to keep up myself, so would be perfect if someone who knows these platforms can help set this up.

Statically compiled binaries is the most easy way to maintain because you choose the libraries to compile, plus the requirement is just a Linux/FreeBSD kernel.

It helps the bug reporting too, since you don't need to care about dependency bugs affecting the emulator stability.

hrydgard commented 1 year ago

I fully agree, but if someone who knows how and can test that the result is as expected can do the CMake tweaks, that would help a lot. My point is that there are so many platforms and packaging formats these days that I just can't keep up.

hardBSDk commented 1 year ago

I fully agree, but if someone who knows how and can test that the result is as expected can do the CMake tweaks, that would help a lot. My point is that there are so many platforms and packaging formats these days that I just can't keep up.

I vote for static builds to replace Flatpak, it reduce the dependencies too.

anr2me commented 1 year ago

(Development builds offers statically compiled binaries for years)

Is this mean the linux artifacts from github action? if it is, can't we just packaged it and upload it to release page https://github.com/hrydgard/ppsspp/releases ?

hardBSDk commented 1 year ago

(Development builds offers statically compiled binaries for years)

Is this mean the linux artifacts from github action? if it is, can't we just packaged it and upload it to release page https://github.com/hrydgard/ppsspp/releases ?

The tar.xz file is a static build? if yes, this static build is not shown on the website, so just people acessing the GitHub Releases page know his existence.

hardBSDk commented 1 year ago

(Development builds offers statically compiled binaries for years)

Is this mean the linux artifacts from github action? if it is, can't we just packaged it and upload it to release page https://github.com/hrydgard/ppsspp/releases ?

The tar.gz file is a static build? if yes, this static build is not shown on the website, so just people acessing the GitHub Releases page know his existence.

@hrydgard @unknownbrackets

hrydgard commented 1 year ago

I'll add links there to the new website coming early next year.

anr2me commented 1 year ago

(Development builds offers statically compiled binaries for years)

Is this mean the linux artifacts from github action? if it is, can't we just packaged it and upload it to release page https://github.com/hrydgard/ppsspp/releases ?

The tar.xz file is a static build? if yes, this static build is not shown on the website, so just people acessing the GitHub Releases page know his existence.

The tar.xz at release page only contains source code (may be for people who don't use git). What i'm talking about is the artifacts at Actions page, like this ubuntu-latest build (which contains PPSSPPSDL binary in a zip file) image But unfortunately, only people who have github account can download these artifacts.

hardBSDk commented 1 year ago

(Development builds offers statically compiled binaries for years)

Is this mean the linux artifacts from github action? if it is, can't we just packaged it and upload it to release page https://github.com/hrydgard/ppsspp/releases ?

The tar.xz file is a static build? if yes, this static build is not shown on the website, so just people acessing the GitHub Releases page know his existence.

The tar.xz at release page only contains source code (may be for people who don't use git). What i'm talking about is the artifacts at Actions page, like this ubuntu-latest build (which contains PPSSPPSDL binary in a zip file) image But unfortunately, only people who have github account can download these artifacts.

Nice! then it have statically compiled binaries with Ubuntu libraries, but it needs a GitHub account to download.

@hrydgard @unknownbrackets You can offer this GitHub Actions Ubuntu builds without user login on the website and GitHub Releases.

Like Xash3D FWGS does.

kenderipa commented 10 months ago

Hello @hrydgard, have you considered AppImage? It is usable on any Linux system, is portable, doesn't pull a copy of an operating system for sandboxing and is pretty easily added to Steam as a non-Steam game (for Steam Deck users mostly).

XargonWan commented 3 months ago

Greetings, any advancements on this? We at RetroDECK are interested in a linux binary release such as an AppImage. Thanks a lot.

anr2me commented 3 months ago

Greetings, any advancements on this? We at RetroDECK are interested in a linux binary release such as an AppImage. Thanks a lot.

There was an attempt to build AppImage format, discussed at https://github.com/hrydgard/ppsspp/pull/19295 (but the test PR is actually https://github.com/ANR2MERefork/ppsspp/pull/13/)

Unfortunately, it's still failed to run the AppImage file due to musl not being statically linked (since it was built on Alpine Linux, thus using musl instead of the more common glibc). Might considers building it on a Debian-based linux in the future (didn't have the time to work on it yet), but when i saw this https://github.com/AppImage/AppImageKit/issues/877 statically linking musl seems to be preferred than statically linking glibc due to license and file size reason.

Mrlinkwii commented 1 month ago

Unfortunately, it's still failed to run the AppImage file due to musl not being statically linked (since it was built on Alpine Linux, thus using musl instead of the more common glibc). Might considers building it on a Debian-based linux in the future (didn't have the time to work on it yet), but when i saw this AppImage/AppImageKit#877 statically linking musl seems to be preferred than statically linking glibc due to license and file size reason.

@anr2me

id say just build base on Ubuntu ( like the way most other emus do ) i think most use https://github.com/probonopd/go-appimage (PCSX2/ duckstation etc) with has libfuse3 support for building appimages