AppBundle
AppBundle is a portable executable packaging format and AppImage alternative, created by @xplshn. Applications are packed into single portable files with embedded dependencies, supporting both dwarfs and squashfs filesystems.
pkg_type: appbundle
Features
- Easy to create and modify
- Embedded dependencies
- Self-contained structure
- Prebuilts available from AppBundleHUB
Prerequisites
- FUSE — required for mounting
- Fonts — for rendering non-Latin characters and emojis
- User Namespaces — for sandboxing
Quirks
DANGER
- Never run
strip,objcopy, or any binary rewriting tool on AppBundles. They will destroy the embeddedsquashfs|dwarfsarchive, leaving only the runtime stub. - A
.appbundlefile is not a real ELF binary.
Example SBUILD
yaml
#!/SBUILD
_disabled: false
pkg: "myapp"
pkg_id: "github.com.user.myapp"
pkg_type: "appbundle"
ghcr_pkg: "user/myapp"
description: "My application"
provides:
- "myapp"
src_url:
- "https://github.com/user/myapp"
x_exec:
host:
- "aarch64-linux"
- "x86_64-linux"
shell: "bash"
pkgver: |
curl -qfsSL "https://api.github.com/repos/user/myapp/releases/latest" | jq -r '.tag_name'
run: |
soar dl "https://github.com/user/myapp" --match "appbundle" -o "./${PKG}" --yes