Back to
Projects List
AppImage, Flatpak, etc. for packaging 3D Slicer on Linux
Key Investigators
- Benjamin Zwick (University of Western Australia, Australia)
Project Description
This project aims to create a portable AppImage or Flatpak distribution of 3D Slicer for Linux systems. AppImage and Flatpak are universal software package formats that allow applications to run on various Linux distributions, making 3D Slicer more accessible and easier to deploy across different Linux environments. The project will streamline the distribution process and reduce dependency conflicts that users often encounter when installing 3D Slicer on different Linux distributions.
Objective
- Objective A. Create a functional 3D Slicer AppImage that bundles all necessary dependencies and libraries to run 3D Slicer on major Linux distributions without requiring system-wide installation.
- Objective B. Establish an automated build pipeline for generating AppImages from 3D Slicer releases, ensuring consistency and maintainability for future versions.
- Objective C. Validate cross-distribution compatibility by testing the AppImage on multiple Linux distributions (Ubuntu, Fedora, openSUSE, Arch Linux, etc.) to ensure broad compatibility.
- Objective D. Document the build process and usage instructions to enable community contributions and provide clear guidance for end users.
Approach and Plan
- Analyze 3D Slicer’s dependency requirements and identify all libraries, Qt components, Python modules, and system dependencies needed for a standalone package.
- Set up AppImage build environment using linuxdeploy tools and configure the build process to bundle 3D Slicer with all required dependencies.
- Create AppImage recipe and build scripts that can automatically generate the AppImage from existing 3D Slicer builds, including proper library linking and Qt plugin configuration.
- Implement continuous integration pipeline to automatically build AppImages for new 3D Slicer releases using GitHub Actions or similar CI/CD platforms.
- Test the generated AppImage across different Linux distributions in virtual machines or containers to verify functionality and identify compatibility issues.
- Optimize AppImage size and performance by removing unnecessary components and ensuring efficient library bundling without compromising functionality.
- Create comprehensive documentation including build instructions, troubleshooting guide, and user installation/usage documentation.
Progress and Next Steps
- Learnt that AppImage is not very suitable, and Flatpak is difficult to get working with e.g. the Extension Manager.
- Decided to use existing
make package
for now.
- Updated the SlicerBuildEnvironment instructions for building 3D Slicer, Slicer Custom Apps and Slicer extensions (See the Slicer Build Instruction Updates project for more details).
TODO
Illustrations
Screenshots and demonstration videos will be added as the project progresses, showing the AppImage creation process and cross-platform testing results.
Background and References
Background
References
3D Slicer:
AppImage:
Flatpak:
Misc: