2.1 KiB
2.1 KiB
AppImage Build Guide
ScanSlicer includes a full AppImage packaging workflow under packaging/appimage/.
Files
packaging/appimage/AppImageBuilder.yml: AppDir recipe and AppImage configpackaging/appimage/build-appimage.sh: local build scriptpackaging/appimage/build-appimage-docker.sh: containerized build wrapperpackaging/appimage/Dockerfile: AppImage build environment- desktop entry file in
packaging/appimage/ - application icon file in
packaging/appimage/
Local Build
Prerequisites:
uvappimage-builder(or custom binary viaAPPIMAGE_BUILDER_BIN)
Command:
bash packaging/appimage/build-appimage.sh
What the script does:
- Exports runtime requirements from
uv.locktoappimage/build/requirements.txt - Builds wheel into
appimage/build/ - Appends wheel path to requirements list
- Sets:
SCANSLICER_ROOTSCANSLICER_APPDIRSCANSLICER_REQUIREMENTS
- Runs
appimage-builderwithAppImageBuilder.yml - Moves
.AppImageand.zsyncartifacts toappimage/dist/
Dockerized Build
Prerequisite:
- Docker
Command:
bash packaging/appimage/build-appimage-docker.sh
What it does:
- Builds an image from
packaging/appimage/Dockerfile - Runs the local AppImage build script inside the container
- Applies host UID/GID ownership to generated
appimage/outputs
Optional environment variables:
APPIMAGE_DOCKER_IMAGE(default:scanslicer-appimage-builder)HOST_UIDandHOST_GID
Recipe Notes
AppImageBuilder.yml currently:
- Uses Ubuntu Noble apt sources
- Bundles Python and runtime shared libs
- Removes bundled Qt system libs to prefer PySide wheel Qt runtime
- Installs Python dependencies and project wheel into AppDir
/usr - Injects desktop entry and icon assets during
after_bundle
Runtime environment variables set in AppDir include:
PYTHONHOMEPYTHONNOUSERSITEQT_PLUGIN_PATHLD_LIBRARY_PATHPATH
Output
Expected output artifact location:
appimage/dist/ScanSlicer-<version>-x86_64.AppImage
Intermediate build files are kept under appimage/build/.