Skip to content

Conversation

@Beethoven-n
Copy link

this PR adds a bunch of stuff to the build process, but i think it's worth it.

  • editable AppDir so you can actually get at core parts like the AppRun script
  • enhanced build_appimage.sh that adds default behavior but still allows commit pinning
  • new build_appimage_nightly.sh that focuses on building a nightly build based on the dev branch
  • new appimagetool version, in line with the wishes of the appimagetool developers
  • auto-installs appimagetool to the repo if the user doesn't have it (for building the AppImage outside of github actions)
  • github actions also calls build_appimage_nightly.sh

couldn't test the actions ahead of time because sccache seems to be down right now.

Both the AppDirs, appimagetool, the protostar repo, and any .tar.gz
archives made.
This should be an easier workflow than dealing with heredocs.
Simply edit the files here, then copy them to an AppDir later from a
build script.
I've changed this a bit to make building from terminal easier and more
controllable.
+ install_client_multi(): installs from main if revision is not set
+ install_client(): installs from main if revision is not set
+ line 58: expect AppDir folder to copy from instead of programmatically
  creating it
+ line 106: get appimagetool if you don't have it (for non-actions build)
This is based off of the original build_appimage script, but solely
focused on making the nightly build. Use build_appimage.sh to build
against specific revisions.

- install_client_multi(): replaced revision parsing with an auto-switch
  to the dev branch.
- install_client(): removed revision parsing entirely.
- install_server(): replaced revision parsing with --branch "dev"
+ line 51: expect AppDir folder to copy from instead of programmatically
  creating it
+ line 99: install appimagetool if you don't have it (for non-actions build)
for some reason, i set nightly in the non-nightly script
similar change to build_appimage.sh.
forgot to actually *upload* the final product
begging github actions to just let me push the button
forgot to name the output correctly
@Beethoven-n
Copy link
Author

i have main completely working this way, but i can't get nightly working.
for some reason, it'll try to open a window, but it shows up like this:
image

just the title, but no actual content. looks like flatland is to blame? idk

Copy link
Contributor

@Schmarni-Dev Schmarni-Dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the pr, the only thing i'm worried about is checking against a known good hash of appimagetool, other than that this looks great! also sorry it took so long for me to review this, i wrote the comments a few days ago and just forgot to submit the review

- name: Download appimagetool
run: |
wget https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage -O appimagetool
wget https://github.com/AppImage/appimagetool/releases/download/1.9.0/appimagetool-x86_64.AppImage -O appimagetool
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since this is a tagged version, could we check this against a known good hash maybe? just to make sure the bin in the release isn't swapped out

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so they don't post a hash on their github. should i just set the result of a sha256 or something on the existing file?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

like i could run the command right now, but that's just from me, and you might not trust me. how do we come up with a known good hash when the AppImage devs don't provide one already?


# Create AppImage
if [ ! -e "./appimagetool" ]; then
wget https://github.com/AppImage/appimagetool/releases/download/1.9.0/appimagetool-x86_64.AppImage -O appimagetool
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

especially on user machines, please check for a known hash here


# Create AppImage
if [ ! -e "./appimagetool" ]; then
wget https://github.com/AppImage/appimagetool/releases/download/1.9.0/appimagetool-x86_64.AppImage -O appimagetool
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here, please check for a known hash

@Schmarni-Dev
Copy link
Contributor

i have main completely working this way, but i can't get nightly working. for some reason, it'll try to open a window, but it shows up like this: image

just the title, but no actual content. looks like flatland is to blame? idk

this might be an issue with how resources are loaded, the clients all bake in the ./res path relative to its Cargo.toml on build, if you want to handle those assets manually (not really recommended since ./res is only the convention we use, nothing forced) you might be able to work around that by setting the STARDUST_THEMES env var on the server to a : separated list of paths, tho that might cause clashes since its not per client

@Schmarni-Dev
Copy link
Contributor

okay, i have no idea whats going wrong with the resources, the nightly appimage seems to be doing the same stuff as the release one, idk why nightly doesn't work

@Beethoven-n
Copy link
Author

Beethoven-n commented Nov 23, 2025

thank you for the reply! i'll get to work on checking the hashes when i get some food in me for the day.
however, a hint for why nightly might not work is that it mostly worked with these commit pins before i adjusted the script into build_appimage_nightly.sh:
image-31

this means there may be a breaking commit somewhere in one of the plugins that might be responsible.

@Schmarni-Dev
Copy link
Contributor

the only commit on flatland since the one you tested didn't touch anything resource related at all, this might be a different issue

@Beethoven-n
Copy link
Author

just resolved the merge, gonna try to get hashes solved now

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.

2 participants