cups icon indicating copy to clipboard operation
cups copied to clipboard

Introduces CUPS Packaging with Snapcraft and Rockcraft

Open rudra-iitm opened this issue 1 year ago • 9 comments

This PR enhances the packaging process for CUPS by introducing two distinct methods for deployment:

  1. Snapcraft: Packages CUPS as a Snap, already maintained by @tillkamppeter in the OpenPrinting/cups-snap repository.
  2. 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 for CUPS.
  • Added packages/snapcraft.yaml, containing all the configurations required for the CUPS Snap.

GitHub Workflows

  • Introduced packages-ci.yml workflow to build and test the Rockcraft and Snapcraft packages.
  • Added the auto-update.yml workflow 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.md with detailed instructions on how to test the CUPS Rock package.

rudra-iitm avatar Jan 13 '25 13:01 rudra-iitm

Thanks for this, will probably have a chance to start reviewing this tomorrow...

michaelrsweet avatar Jan 13 '25 17:01 michaelrsweet

@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.

tillkamppeter avatar Jan 15 '25 00:01 tillkamppeter

@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.

rudra-iitm avatar Jan 21 '25 17:01 rudra-iitm

@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 avatar Jan 21 '25 18:01 rudra-iitm

@rudra-iitm My preference would be a single file.

michaelrsweet avatar Jan 21 '25 19:01 michaelrsweet

@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 avatar Jan 21 '25 20:01 rudra-iitm

@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.

tillkamppeter avatar Jan 21 '25 21:01 tillkamppeter

@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.

I have added documentation for EPM and RPM packages taking reference from INSTALL.md

rudra-iitm avatar Jan 22 '25 05:01 rudra-iitm

Hi @tillkamppeter and @michaelrsweet, could you please review these changes and let me know if any further modifications are needed?

rudra-iitm avatar Nov 13 '25 13:11 rudra-iitm