Appimage builds #28

Merged
piplup55 merged 10 commits from appimage into master 2024-10-26 12:31:37 +00:00
piplup55 commented 2024-10-21 14:57:42 +00:00 (Migrated from github.com)

this should in in theory work but i'm unsure, and i'm sure this could be improved

this should in in theory work but i'm unsure, and i'm sure this could be improved
qurious-pixel (Migrated from github.com) reviewed 2024-10-21 21:19:57 +00:00
@ -76,0 +99,4 @@
echo "Unexpected PLATFORM_NAME "$PLATFORM_NAME""
exit 1
fi
qurious-pixel (Migrated from github.com) commented 2024-10-21 21:19:57 +00:00

if build-appimage.sh does not have the exec bit set, set it, prior to callng it.

chmod +x distribution/linux/appimage/build-appimage.sh
if `build-appimage.sh` does not have the exec bit set, set it, prior to callng it. ``` chmod +x distribution/linux/appimage/build-appimage.sh ```
qurious-pixel (Migrated from github.com) reviewed 2024-10-21 21:20:17 +00:00
@ -131,0 +164,4 @@
# Add to release output
pushd publish_ava_appimage
mv Ryujinx.AppImage ../release_output/ryujinx-$BUILD_VERSION-$ARCH_NAME.AppImage
mv Ryujinx.AppImage.zsync ../release_output/ryujinx-$BUILD_VERSION-$ARCH_NAME.AppImage.zsync
qurious-pixel (Migrated from github.com) commented 2024-10-21 21:20:16 +00:00

same:

chmod +x distribution/linux/appimage/build-appimage.sh
same: ``` chmod +x distribution/linux/appimage/build-appimage.sh ```
qurious-pixel (Migrated from github.com) reviewed 2024-10-21 21:23:48 +00:00
@ -0,0 +1,3 @@
#!/bin/sh
CURRENTDIR="$(readlink -f "$(dirname "$0")")"
exec "$CURRENTDIR"/usr/bin/Ryujinx.sh "$@"
qurious-pixel (Migrated from github.com) commented 2024-10-21 21:23:47 +00:00

not absolutely necessary to create an AppRun, if this is all you are doing. But it can stay in case you want to add more functionality in the future.

otherwise ln -s AppDir/usr/bin/Ryujinx.sh AppDir/AppRun

not absolutely necessary to create an AppRun, if this is all you are doing. But it can stay in case you want to add more functionality in the future. otherwise `ln -s AppDir/usr/bin/Ryujinx.sh AppDir/AppRun`
qurious-pixel (Migrated from github.com) reviewed 2024-10-21 21:25:03 +00:00
@ -0,0 +16,4 @@
cp src/Ryujinx.UI.Common/Resources/Logo_Ryujinx.png AppDir/Ryujinx.svg
cp -r "$BUILDDIR"/* AppDir/usr/bin/
qurious-pixel (Migrated from github.com) commented 2024-10-21 21:25:03 +00:00

publish_ava creates a publish folder inside.

cp -r "$BUILDDIR"/publish/* AppDir/usr/bin/

to capture the contents inside the folder.

publish_ava creates a publish folder inside. ``` cp -r "$BUILDDIR"/publish/* AppDir/usr/bin/ ``` to capture the contents inside the folder.
qurious-pixel commented 2024-10-21 21:28:01 +00:00 (Migrated from github.com)

PR will fail until PR https://github.com/GreemDev/Ryujinx/pull/31 is merged or you make the formatting and whitespace fixes.
Then your PR should build an AppImage.

And you have to set the path to upload the artifact as PR/Release build.

PR will fail until PR https://github.com/GreemDev/Ryujinx/pull/31 is merged or you make the formatting and whitespace fixes. Then your PR should build an AppImage. And you have to set the path to upload the artifact as PR/Release build.
piplup55 (Migrated from github.com) reviewed 2024-10-21 21:40:29 +00:00
@ -76,0 +99,4 @@
echo "Unexpected PLATFORM_NAME "$PLATFORM_NAME""
exit 1
fi
piplup55 (Migrated from github.com) commented 2024-10-21 21:40:29 +00:00

it should have the exec bit set but it wouldn't hurt to double check it

it should have the exec bit set but it wouldn't hurt to double check it
piplup55 (Migrated from github.com) reviewed 2024-10-21 21:40:54 +00:00
@ -131,0 +164,4 @@
# Add to release output
pushd publish_ava_appimage
mv Ryujinx.AppImage ../release_output/ryujinx-$BUILD_VERSION-$ARCH_NAME.AppImage
mv Ryujinx.AppImage.zsync ../release_output/ryujinx-$BUILD_VERSION-$ARCH_NAME.AppImage.zsync
piplup55 (Migrated from github.com) commented 2024-10-21 21:40:54 +00:00

it should have the exec bit set but it wouldn't hurt to double check it

it should have the exec bit set but it wouldn't hurt to double check it
piplup55 (Migrated from github.com) reviewed 2024-10-21 21:42:08 +00:00
@ -0,0 +1,3 @@
#!/bin/sh
CURRENTDIR="$(readlink -f "$(dirname "$0")")"
exec "$CURRENTDIR"/usr/bin/Ryujinx.sh "$@"
piplup55 (Migrated from github.com) commented 2024-10-21 21:42:08 +00:00

i think it should stay just in case more functionality wants to be added down the road

i think it should stay just in case more functionality wants to be added down the road
piplup55 (Migrated from github.com) reviewed 2024-10-21 21:42:46 +00:00
@ -0,0 +16,4 @@
cp src/Ryujinx.UI.Common/Resources/Logo_Ryujinx.png AppDir/Ryujinx.svg
cp -r "$BUILDDIR"/* AppDir/usr/bin/
piplup55 (Migrated from github.com) commented 2024-10-21 21:42:46 +00:00

idk how i missed this

idk how i missed this
qurious-pixel commented 2024-10-22 09:31:38 +00:00 (Migrated from github.com)

The packaging looks good now.

Forgot to add earlier, the log files/folder needs to be directed out of the publish folder, now located in AppDir/usr/bin, because it will cause a segfault due to trying to write to a read-only location.

The project this is based on used a flag for Flatpak, which had the same issue.
Should set the Flatpak channel flag, or use custom code to create logs in XDG_DATA_HOME folder.

RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub
The packaging looks good now. Forgot to add earlier, the log files/folder needs to be directed out of the publish folder, now located in `AppDir/usr/bin`, because it will cause a segfault due to trying to write to a read-only location. The project this is based on used a flag for Flatpak, which had the same issue. Should set the Flatpak channel flag, or use custom code to create logs in XDG_DATA_HOME folder. ``` RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub ```
github-actions[bot] commented 2024-10-23 16:04:25 +00:00 (Migrated from github.com)
Download the artifacts for this pull request: * [ryujinx-Release-1.2.0+79d337f-linux_arm64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094731703.zip) * [ryujinx-Release-1.2.0+79d337f-linux_arm64-AppImage](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094731906.zip) * [ryujinx-Release-1.2.0+79d337f-linux_x64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094737485.zip) * [ryujinx-Release-1.2.0+79d337f-linux_x64-AppImage](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094737601.zip) * [ryujinx-Release-1.2.0+79d337f-macos_universal](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094744815.zip) * [ryujinx-Release-1.2.0+79d337f-win_x64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094750709.zip) <details><summary>GUI-less (SDL2)</summary> * [sdl2-ryujinx-headless-Release-1.2.0+79d337f-linux_arm64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094732200.zip) * [sdl2-ryujinx-headless-Release-1.2.0+79d337f-linux_x64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094737842.zip) * [sdl2-ryujinx-headless-Release-1.2.0+79d337f-macos_universal](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094744981.zip) * [sdl2-ryujinx-headless-Release-1.2.0+79d337f-win_x64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094750933.zip) </details> <details><summary>Only for Developers</summary> * [ryujinx-Debug-1.2.0+79d337f-linux_arm64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094731570.zip) * [ryujinx-Debug-1.2.0+79d337f-linux_arm64-AppImage](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094731711.zip) * [sdl2-ryujinx-headless-Debug-1.2.0+79d337f-linux_arm64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094731872.zip) * [ryujinx-Debug-1.2.0+79d337f-linux_x64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094741011.zip) * [ryujinx-Debug-1.2.0+79d337f-linux_x64-AppImage](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094741126.zip) * [sdl2-ryujinx-headless-Debug-1.2.0+79d337f-linux_x64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094741320.zip) * [ryujinx-Debug-1.2.0+79d337f-macos_universal](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094746183.zip) * [sdl2-ryujinx-headless-Debug-1.2.0+79d337f-macos_universal](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094746338.zip) * [ryujinx-Debug-1.2.0+79d337f-win_x64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094760232.zip) * [sdl2-ryujinx-headless-Debug-1.2.0+79d337f-win_x64](https://nightly.link/GreemDev/Ryujinx/actions/artifacts/2094760412.zip) </details>
piplup55 commented 2024-10-23 16:23:03 +00:00 (Migrated from github.com)

The project this is based on used a flag for Flatpak, which had the same issue. Should set the Flatpak channel flag, or use custom code to create logs in XDG_DATA_HOME folder.

this shouldn't be needed as it should default to $HOME/.config/Ryujinx

> The project this is based on used a flag for Flatpak, which had the same issue. Should set the Flatpak channel flag, or use custom code to create logs in XDG_DATA_HOME folder. this shouldn't be needed as it should default to `$HOME/.config/Ryujinx`
regginator commented 2024-10-24 16:35:44 +00:00 (Migrated from github.com)

@qurious-pixel This infra was from myself & @Samueru-sama's changes in ryujinx-mirror. There ended up being issues with just symlinking stuff for appimagetool, resulting in non-local AppImage builds simply not working due to invalid symlinks. (Why appimageool doesn't just follow symlinks like normal I have no clue) I'm unsure if AppRun really is necessary, so I'd just leave everything as-is from ryujinx-mirror.

@qurious-pixel This infra was from myself & @Samueru-sama's changes in ryujinx-mirror. There ended up being issues with just symlinking stuff for `appimagetool`, resulting in non-local AppImage builds simply not working due to invalid symlinks. (Why appimageool doesn't just follow symlinks like normal I have no clue) I'm unsure if `AppRun` really is necessary, so I'd just leave everything as-is from ryujinx-mirror.
qurious-pixel commented 2024-10-24 17:28:18 +00:00 (Migrated from github.com)

The appimage works for me including creating the logs folder in $HOME/.config/Ryujinx.
The AppRun as designed accomodates running the extracted image, while appimagetool will create a relative symlink to binary if none is provided.

The zsync file doesn't need to be included in the zip, and should probably be uploaded as an artifact when published as a release. (to use with AppImageUpdate)

@regginator linuxdeploy is more robust at following symlinks, but I have used both tools for different goals.

The appimage works for me including creating the logs folder in `$HOME/.config/Ryujinx`. The AppRun as designed accomodates running the extracted image, while appimagetool will create a relative symlink to binary if none is provided. The zsync file doesn't need to be included in the zip, and should probably be uploaded as an artifact when published as a release. (to use with AppImageUpdate) @regginator linuxdeploy is more robust at following symlinks, but I have used both tools for different goals.
Samueru-sama (Migrated from github.com) reviewed 2024-10-24 17:52:36 +00:00
@ -0,0 +13,4 @@
cp distribution/linux/Ryujinx.desktop AppDir/Ryujinx.desktop
cp distribution/linux/appimage/AppRun AppDir/AppRun
cp src/Ryujinx.UI.Common/Resources/Logo_Ryujinx.png AppDir/Ryujinx.svg
Samueru-sama (Migrated from github.com) commented 2024-10-24 17:52:35 +00:00

You might want to change this to AppDir/Ryujinx.png as well.

And also add ln -s Ryujinx.png AppDir/.DirIcon

You might want to change this to `AppDir/Ryujinx.png` as well. And also add `ln -s Ryujinx.png AppDir/.DirIcon`
piplup55 (Migrated from github.com) reviewed 2024-10-26 12:22:48 +00:00
@ -0,0 +13,4 @@
cp distribution/linux/Ryujinx.desktop AppDir/Ryujinx.desktop
cp distribution/linux/appimage/AppRun AppDir/AppRun
cp src/Ryujinx.UI.Common/Resources/Logo_Ryujinx.png AppDir/Ryujinx.svg
piplup55 (Migrated from github.com) commented 2024-10-26 12:22:48 +00:00

after discussion i have decided to keep it as svg for scaling reasons

after discussion i have decided to keep it as svg for scaling reasons
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MeloNX/Ryujinx-ryubing#28
No description provided.