Skip to content

Add musllinux wheel packaging for Alpine - #1

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

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

Conversation

@jtwigg-luma

@jtwigg-luma jtwigg-luma commented Jul 25, 2026

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)

@jtwigg-luma

Copy link
Copy Markdown
Collaborator Author

Ready to squash-merge. Org ruleset Company wide SDLC/SOC-2 requires 1 approving review (current_user_can_bypass: never), so the author cannot merge.

Please approve, then squash-merge (single commit on main).

Contents:

  • scripts/build_musllinux_wheel.sh + build-musllinux-wheel.yml
  • LUMA.md (why / how to upgrade)
  • Upstream Adobe Actions disabled (stub workflow_dispatch only)

@jtwigg-luma
jtwigg-luma force-pushed the luma/musllinux-wheels branch 2 times, most recently from 55dff56 to a869f68 Compare July 25, 2026 02:45
@cursor

cursor Bot commented Jul 25, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Changes are limited to CI, a Docker build script, and docs; no runtime Python API or auth/data-path changes.

Overview
Adds musllinux wheel build and release for Alpine/musl, where upstream only ships manylinux wheels.

scripts/build_musllinux_wheel.sh runs a Docker build on python:3.14-alpine: clones the pinned c2pa-rs tag, compiles c2pa-c-ffi, stages the .so under the existing gnu artifact layout, and runs bdist_wheel with --plat-name musllinux_1_2_x86_64, including a smoke import c2pa check. .github/workflows/build-musllinux-wheel.yml runs that script on workflow_dispatch or v*-musl* tags, uploads the artifact, and attaches wheels to a GitHub Release on tag push.

Upstream Adobe workflows (build.yml, PyPI/docs/memray, Jira issue label sync) are stubbed to workflow_dispatch only so musl tags do not trigger multi-platform builds or PyPI publish. MUSLLINUX.md documents fork rationale, upgrade steps, and uv find-links consumption; README.md points Alpine users there.

Reviewed by Cursor Bugbot for commit 93d1b24. Bugbot is set up for automated code reviews on this repo. Configure here.

@jtwigg-luma jtwigg-luma changed the title Add musllinux wheel build for Alpine (Vespa) Add musllinux wheel build for Alpine Jul 25, 2026
@jtwigg-luma jtwigg-luma changed the title Add musllinux wheel build for Alpine Add musllinux wheel packaging for Alpine Jul 25, 2026
Build and publish musllinux wheels from this fork; disable unused upstream Actions; document in MUSLLINUX.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jtwigg-luma
jtwigg-luma force-pushed the luma/musllinux-wheels branch from 3a743cc to 93d1b24 Compare July 25, 2026 04:47
@jtwigg-luma

Copy link
Copy Markdown
Collaborator Author

Superseded by a PR from branch musllinux-wheels (no Luma branding in branch/diff).

@jtwigg-luma
jtwigg-luma deleted the luma/musllinux-wheels branch July 25, 2026 04:47
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