Skip to content

Conversation

@anr2me
Copy link
Collaborator

@anr2me anr2me commented Jun 7, 2025

Automatically create AppImage artifacts on commit push.
Automatically update released files on a new tag.

Example of released files: https://github.com/ANR2MERefork/ppsspp/releases

Thanks to @Samueru-sama

PS: I use Release configuration instead of RelWithDebInfo, not sure which one will be better🤔

@anr2me anr2me mentioned this pull request Jun 7, 2025
@hrydgard hrydgard added this to the v1.19.1 milestone Jun 7, 2025
@hrydgard
Copy link
Owner

hrydgard commented Jun 7, 2025

nice!

@hrydgard hrydgard enabled auto-merge June 7, 2025 07:46
@hrydgard hrydgard disabled auto-merge June 7, 2025 07:46
@anr2me
Copy link
Collaborator Author

anr2me commented Jun 7, 2025

Btw, i didn't see macOS build released for v1.19 at https://github.com/hrydgard/ppsspp/releases

Did the build.yml didn't get triggered when the v1.19 tag created? 🤔

@anr2me
Copy link
Collaborator Author

anr2me commented Jun 7, 2025

Also, should i use PPSSPP or PPSSPPSDL on the name? 🤔

@hrydgard
Copy link
Owner

hrydgard commented Jun 7, 2025

Go for PPSSPP I guess. been meaning to change PPSSPPSDL to PPSSPP for some time, haven't gotten around to it.

@Samueru-sama
Copy link
Contributor

@anr2me Note that for deltas to work, the VERSION var needs to be set before the appimage and zsync files are made.

In other words the artifact names cannot change between being made and being released.

image

@anr2me
Copy link
Collaborator Author

anr2me commented Jun 7, 2025

@anr2me Note that for deltas to work, the VERSION var needs to be set before the appimage and zsync files are made.

In other words the artifact names cannot change between being made and being released.

image

Hmm.. i guess we need to change the script to fix the naming🤔 should i add an argument for the script to use it as version, and fallback to "test" when without any argument? or it's as simple as exporting VERSION var before running the script?

So the "test" part can be replaced with the tag, right?

@anr2me anr2me marked this pull request as draft June 7, 2025 08:05
@Samueru-sama
Copy link
Contributor

Samueru-sama commented Jun 7, 2025

So the "test" part can be replaced with the tag, right?

Can be anything, what is important is that the filename does not change after the .zsync file is made.

This works

And maybe a check to make sure the var isn't empty would be good as well.

@anr2me
Copy link
Collaborator Author

anr2me commented Jun 7, 2025

So the "test" part can be replaced with the tag, right?

Can be anything, what is important is that the filename does not change after the .zsync file is made.

This works

And maybe a check to make sure the var isn't empty would be good as well.

i was thinking using this VERSION=${1:-test} to set the version using the 1st argument, and default to test.

Since we use a short hash following the version number on artifacts without release, but only the version number on release, we probably need to adjust the version outside of the script (depends on the trigger)

@Samueru-sama
Copy link
Contributor

i was thinking using this VERSION=${1:-test} to set the version using the 1st argument, and default to test.

Ye that works.

@Samueru-sama
Copy link
Contributor

In any case you can also just remove VERSION entirely from it, that's what some projects like duckstation do.

It is not recommended by the appimage spec but it is not mandated either.

@anr2me
Copy link
Collaborator Author

anr2me commented Jun 7, 2025

Hmm.. it seems the file size is slightly smaller with RelWithDebInfo instead of Release 🤔

@anr2me anr2me marked this pull request as ready for review June 7, 2025 13:46
@anr2me
Copy link
Collaborator Author

anr2me commented Jun 7, 2025

Btw @Samueru-sama , i tried using clang on the archlinux image you use for PPSSPP-AppImage repo, but doing a simple clang --version already got undefined symbol issue 😨 does clang works on your archlinux? 🤔

clang: symbol lookup error: /usr/lib/libclang-cpp.so.19.1: undefined symbol: LLVMInitializePowerPCAsmPrinter, version LLVM_19.1

@Samueru-sama
Copy link
Contributor

Btw @Samueru-sama , i tried using clang on the archlinux image you use for PPSSPP-AppImage repo, but doing a simple clang --version already got undefined symbol issue 😨 does clang works on your archlinux? 🤔

clang: symbol lookup error: /usr/lib/libclang-cpp.so.19.1: undefined symbol: LLVMInitializePowerPCAsmPrinter, version LLVM_19.1

The smaller llvm doesn't have powerpc targets. clang by default tests building for powerpc and a bunch of other arches, so you ran into that issue.

One way to get around this issue is by installing the smaller llvm after building, but this is not guaranteed to work, I had this issue with dolphin-emu where for some reason it depends on all the llvm targets even on the compiled binary.

For this I have llvm-mini which keeps all the targets ,but also makes the lib 90 MiB instead of 60 like llvm-nano.

@hrydgard
Copy link
Owner

hrydgard commented Jun 7, 2025

Are we good to go here with the change as-is? I guess we can optimize the size later...

(as for powerpc, we're probably never gonna support that anyway heh so it can go)

@anr2me
Copy link
Collaborator Author

anr2me commented Jun 7, 2025

Yeah, it's ready. I already changed it to RelWithDebInfo.

The powerpc stuff is just an issue of clang, this workflow only generates x64 and arm64 AppImages

@hrydgard hrydgard merged commit 0496411 into hrydgard:master Jun 7, 2025
21 checks passed
@anr2me anr2me deleted the appimage branch June 8, 2025 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants