Add Flatpak packaging support for UltiMaker Cura#20952
Conversation
Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
|
@copilot the AppImage is build by the GitHub CI from this workflow: https://github.com/Ultimaker/cura-workflows/blob/main/.github/workflows/cura-installer-linux.yml The Flatpak should be build similarly, by first installing and building all dependencies with Conan, then using PyInstaller to create the App, which is then packaged. |
Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
You're absolutely right. I've updated the Flatpak implementation to follow the same build workflow as the AppImage:
The key changes in commit cf348c3:
This ensures consistency with the existing build infrastructure and uses the proven dependency management approach. The Flatpak now serves as just the final packaging step, similar to how AppImage works. |
This PR adds comprehensive Flatpak packaging support for UltiMaker Cura, providing Linux users with a modern universal package format option alongside the existing AppImage packages.
What's Added
The new
/packaging/Flatpak/directory contains a complete Flatpak build system that follows the same workflow as the existing AppImage configuration:Core Files
com.ultimaker.cura.json- Flatpak manifest using KDE Platform runtime with Qt6 supportcura.desktop- Desktop integration file adapted from AppImage versioncura.appdata.xml- Enhanced AppStream metadata for software centersBuild Infrastructure
build.sh- Automated build script with Conan + PyInstaller + Flatpak workflowREADME.md- Comprehensive documentation covering prerequisites, build process, and usageLIMITATIONS.md- Documents current limitations and future improvement pathsKey Features
Universal Linux Support: Flatpak packages run on any Linux distribution with Flatpak support, providing consistent behavior across different systems.
Proper Sandboxing: The package includes carefully configured permissions for filesystem access, graphics acceleration, and desktop integration while maintaining security.
Consistent Build Process: Uses the same Conan + PyInstaller workflow as AppImage packaging for maximum compatibility and reliability.
Desktop Integration: Full integration with application menus, file associations for 3D model formats, and AppStream metadata for software centers.
Technical Approach
The Flatpak implementation follows the proven AppImage build workflow:
conan install --requires "cura/..." --build=missingto install and build all dependenciesThis approach ensures:
Compatibility
This implementation maintains full compatibility with existing packaging:
com.ultimaker.cura)Usage
Users can build the Flatpak using the provided automation:
The build script supports environment variables for customization:
Future Work
This implementation provides a solid foundation with the same proven build process as AppImage. Future improvements can focus on:
This PR establishes Flatpak support using the established build infrastructure and can be iteratively improved based on community feedback and testing.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.