Skip to main content

max / audiofiles

Build the AppImage without FUSE appimagetool self-mounts to run, which needs libfuse.so.2 and a fusermount binary. Alloy has neither, so the release step failed there while working on Pop. APPIMAGE_EXTRACT_AND_RUN=1 makes the runtime extract itself instead. Verified by hiding fusermount from PATH: without the flag appimagetool exits 127 with "Cannot mount AppImage, please check your FUSE setup", with it the build succeeds. On a host that has FUSE the flag is a no-op, so the existing build is untouched. The flag goes in the script because dist/recipes/linux.rhai runs it through sh_ok with no environment of its own. Also write down where appimagetool comes from: fetched on demand, not vendored, not on any restore list.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-21 23:48 UTC
Signed with PGP, not checked
Commit: d5c4e114a8d5967d18784db1be1e4869c3869c17
Parent: 734a668
1 file changed, +13 insertions, -1 deletion
@@ -36,6 +36,17 @@
36 36 chmod +x "$APPDIR/AppRun"
37 37
38 38 # Step 3: Get appimagetool
39 + #
40 + # Fetched on demand, not vendored and not on any restore list. dist/tools/ is
41 + # gitignored on purpose: this is a 15 MB third-party binary and the repo is
42 + # published, so committing it would put someone else's release artifact in our
43 + # history for no gain. A machine with no cached copy downloads it here, which
44 + # means the first release on a fresh machine needs network. That is the whole
45 + # cost, and it is the only thing about this tool that is not self-healing.
46 + #
47 + # The URL names the `continuous` tag, so the tool can change under us between
48 + # releases. Pinning it to a numbered release is a change to what builds the
49 + # artifact, so it is not made silently here.
39 50 mkdir -p "$TOOLS_DIR"
40 51 APPIMAGETOOL="$TOOLS_DIR/appimagetool-${ARCH}.AppImage"
41 52 if [ ! -x "$APPIMAGETOOL" ]; then
@@ -51,7 +62,8 @@
51 62 APPIMAGE_PATH="$DIST_DIR/$APPIMAGE_NAME"
52 63 rm -f "$APPIMAGE_PATH"
53 64
54 - ARCH="$ARCH" "$APPIMAGETOOL" "$APPDIR" "$APPIMAGE_PATH"
65 + # Extract and run, since appimagetool cannot self-mount without libfuse.so.2 on Alloy.
66 + ARCH="$ARCH" APPIMAGE_EXTRACT_AND_RUN=1 "$APPIMAGETOOL" "$APPDIR" "$APPIMAGE_PATH"
55 67
56 68 # Cleanup
57 69 rm -rf "$APPDIR"