[FEATURE]: Add Snap packaging support with Github workflow #1998
+163
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In raising this pull request, I confirm the following:
My familiarity with the project:
Summary
As proposed in #1583, this PR adds Snapcraft-based packaging for CCExtractor, along with a GitHub Actions workflow that builds the Snap and uploads the resulting
.snapartifact to GitHub Releases.Benefits:
Implementation Details
snap/snapcraft.yamlSnapcraft configuration using the existing CMake build system. Runtime dependencies (FFmpeg, GPAC, Tesseract, etc.) are bundled explicitly via
stage-packages.snap/local/run-ccextractor.shLightweight runtime wrapper that ensures bundled shared libraries are resolved from within the Snap at execution time, avoiding accidental linkage against host system libraries. While the Snap may work without this wrapper on some environments, it makes runtime behavior deterministic and consistent across distributions.
.github/workflows/build_snap.ymlGitHub Actions workflow completes successfully and produces a
.snappackage, which is published as a CI artifact (zipped by GitHub Actions).Testing
GitHub Actions workflow completes successfully and produces a
.snappackage(CI run artifact).
Local runtime verification performed on:
sudo snap install ./ccextractor_*.snap --classic --dangerous ccextractor --version.snapartifact should be attached to GitHub Releases as well.