-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Add Flatpak packaging support for UltiMaker Cura #20952
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: jellespijker <[email protected]>
Co-authored-by: jellespijker <[email protected]>
|
@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 <[email protected]>
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.