Skip to content

Add musllinux wheel packaging for Alpine - #2

Open
jtwigg-luma wants to merge 1 commit into
mainfrom
musllinux-wheels
Open

Add musllinux wheel packaging for Alpine#2
jtwigg-luma wants to merge 1 commit into
mainfrom
musllinux-wheels

Conversation

@jtwigg-luma

Copy link
Copy Markdown
Collaborator

Why

Upstream contentauth/c2pa-python only publishes manylinux (glibc) wheels. Alpine (musl) cannot load those wheels; the sdist pulls gnu natives that fail at dlopen; compiling Rust inside every image build is too slow.

This fork ships musllinux wheels so Alpine can import c2pa without a per-image Rust compile. The Python API is unchanged. macOS and glibc Linux keep using PyPI.

Divergence is kept small: one build script, one workflow, MUSLLINUX.md, and disabled unused Adobe Actions so musl tags do not fan out into their Build/PyPI/Pages/Jira matrix.

What

  • scripts/build_musllinux_wheel.sh — build musllinux_1_2_x86_64 in python:3.14-alpine
  • .github/workflows/build-musllinux-wheel.yml — CI + GitHub Release on v*-musl* tags
  • MUSLLINUX.md — why this fork exists + how to upgrade
  • Disable unused upstream Actions (stub workflow_dispatch only)

Consume

dependencies = [
  "c2pa-python==0.37.1",
]

[tool.uv]
find-links = [
  "https://github.com/<org>/<repo>/releases/expanded_assets/v0.37.1-musl.1",
]

Do not pin a direct musllinux wheel URL (forces one platform everywhere).

Test plan

  • Wheel installs in python:3.14-alpineimport c2pa + Context() OK
  • Release v0.37.1-musl.1 published with wheel asset
  • CI musllinux workflow succeeds on workflow_dispatch
  • Approve + squash-merge (org ruleset requires 1 review)

Made with Cursor

Build and publish musllinux wheels from this fork; disable unused upstream Actions; document in MUSLLINUX.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant