Introduces CUPS Packaging with Snapcraft and Rockcraft
This PR enhances the packaging process for CUPS by introducing two distinct methods for deployment:
- Snapcraft: Packages CUPS as a Snap, already maintained by @tillkamppeter in the OpenPrinting/cups-snap repository.
- Rockcraft: Adds the necessary code and configurations to build and deploy an OCI image of CUPS using Rockcraft.
Key Changes
Packages Configuration
- Added
packages/rockcraft.yaml, containing all the configurations required to build the Rock forCUPS. - Added
packages/snapcraft.yaml, containing all the configurations required for theCUPSSnap.
GitHub Workflows
- Introduced
packages-ci.ymlworkflow to build and test the Rockcraft and Snapcraft packages. - Added the
auto-update.ymlworkflow with the latest changes from desktop-snaps#813. - Implemented a CI pipeline (
registry-actions.yml) to automatically push newly built Docker images to GitHub Packages.
(Note: Publishing to Docker Hub is commented out until OpenPrinting's Docker Hub setup is finalized.)
Testing Instructions
- Added
TESTING.mdwith detailed instructions on how to test the CUPS Rock package.
Thanks for this, will probably have a chance to start reviewing this tomorrow...
@rudra-iitm the needed copyright/license header is as described in DEVELOPING.md, same text content as CUPS' own files. We want to have everything under the same license (Apache 2.0 with exceptions) so you overtake the content of the other file's license headers. The copyright of the snapping is by me and of the Rock is by you and me (as you have overtaken parts of the Snap). AFAIR I had issued the snapping under the same license as CUPS is, if not, you have my permission to change the license to be the same as CUPS.
@rudra-iitm the needed copyright/license header is as described in
DEVELOPING.md, same text content as CUPS' own files. We want to have everything under the same license (Apache 2.0 with exceptions) so you overtake the content of the other file's license headers. The copyright of the snapping is by me and of the Rock is by you and me (as you have overtaken parts of the Snap). AFAIR I had issued the snapping under the same license as CUPS is, if not, you have my permission to change the license to be the same as CUPS.
I have added the license headers.
@michaelrsweet Should we have a single README.md file in the packaging directory with all packaging methods documented in the same file, or should we split it into separate files like SNAP.md and ROCK.md?
@rudra-iitm My preference would be a single file.
@rudra-iitm My preference would be a single file.
@michaelrsweet I have documented CUPS Rock and CUPS Snap in the README.md. However, I don't have experience with RPM and EPM packages, so I won't be able to document those.
@rudra-iitm somewhere in the CUPS repo there should be also documentation for the RPM and EPM packaging. This documentation should be just moved over into the packaging/README.md file.
@rudra-iitm somewhere in the CUPS repo there should be also documentation for the RPM and EPM packaging. This documentation should be just moved over into the
packaging/README.mdfile.
I have added documentation for EPM and RPM packages taking reference from INSTALL.md
Hi @tillkamppeter and @michaelrsweet, could you please review these changes and let me know if any further modifications are needed?