Back to Landing Page
CCExtractor · Linux Packaging

Snap Packaging + GitHub Actions Workflow

March 20265 min read
# ccextractor#1998  snapcraft.yaml
parts:
  gpac:
    plugin: make
    source: https://github.com/gpac/gpac.git
    source-tag: abi-16.4
    override-build: |
      ./configure --prefix=/usr && make -j$(nproc)
      make DESTDIR=$SNAPCRAFT_PART_INSTALL install-lib
  ccextractor:
    after: [gpac]
    build-environment:
      - PKG_CONFIG_PATH: "$SNAPCRAFT_STAGE/usr/lib/pkgconfig:$PKG_CONFIG_PATH"

Background

CCExtractor had no official Snap package, limiting cross-distro distribution on Linux.

Root Cause

Several blockers: GPAC (a required dependency) had no core22 Snap. Rust toolchain version in the base image was too old for CCExtractor's Rust components. CMake entry point was misconfigured. The Snap command: field passed $@ incorrectly, causing argument shift.

The Fix

Built GPAC from source within the Snap using abi-16.4 branch. Pinned Rust toolchain to a compatible version via rustup. Fixed CMake entry point. Corrected $@ arg forwarding in the Snap command wrapper.

Evidence

Verified installation and execution on Ubuntu 22.04 and Ubuntu 24.04. Tested with real media files post-install.

Result

PR ccextractor#1998, approved. Full cross-distro Snap with working GPAC support and a CI workflow for automated builds.