Skip to content

fix: v0.5.44 — Docker license-label fix from v0.5.43 didn't reach the published image - #65

Merged
SoundMatt merged 1 commit into
mainfrom
fix/docker-publish-license-override
Jul 27, 2026
Merged

fix: v0.5.44 — Docker license-label fix from v0.5.43 didn't reach the published image#65
SoundMatt merged 1 commit into
mainfrom
fix/docker-publish-license-override

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

Follow-up to #64/v0.5.43. While verifying the v0.5.43 release, I inspected the actual ghcr.io/soundmatt/c-fusa:0.5.43 image's Docker Publish workflow logs and found org.opencontainers.image.licenses=NOASSERTION — the Dockerfile-level MIT→MPL-2.0 fix from #62 item 1 (the highest-priority fix in that issue) never reached the published image.

Root cause: docker/metadata-action auto-generates a set of OCI labels, including org.opencontainers.image.licenses (defaulted to NOASSERTION since it can't detect an SPDX license via the GitHub API). docker-publish.yml passes that full label set to build-push-action, and labels supplied that way override same-key LABEL instructions in the Dockerfile. So despite the Dockerfile correctly declaring MPL-2.0, the published image still shipped the wrong value.

Fix: pass org.opencontainers.image.licenses: MPL-2.0 as a custom label directly to docker/metadata-action (documented behavior: custom labels with a matching key override the action's own auto-generated ones), so the correct value is baked into steps.meta.outputs.labels before it ever reaches build-push-action.

Test plan

  • Clean cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build --parallel — succeeds
  • ctest --output-on-failure — 100% passed, 0 tests failed out of 38 (no regressions; this change only touches docker-publish.yml / version.h)
  • After merge + tag v0.5.44, will re-verify the published image's org.opencontainers.image.licenses label via the Docker Publish workflow logs to confirm it now reads MPL-2.0

… published image

docker/metadata-action auto-generates org.opencontainers.image.licenses
(defaulted to "NOASSERTION" since it can't detect an SPDX license from the
GitHub API), and docker-publish.yml passed that full label set into
build-push-action, whose labels override same-key LABELs declared in the
Dockerfile. The real ghcr.io/soundmatt/c-fusa:0.5.43 image therefore still
shipped licenses=NOASSERTION, silently undoing the v0.5.43 Dockerfile fix
(issue #62 item 1) at the point it actually mattered — the published image.

Fix: pass org.opencontainers.image.licenses=MPL-2.0 as a custom label to
docker/metadata-action itself (documented to override its own
auto-generated value), so the override happens before the label set ever
reaches build-push-action.

Caught by inspecting the v0.5.43 Docker Publish workflow's build logs
after tagging, rather than assuming the Dockerfile-level fix was
sufficient.

Verification: clean cmake configure + build + ctest — all 38 suites pass,
0 regressions (this fix only touches docker-publish.yml/version.h).

Signed-off-by: SoundMatt <SoundMatt@users.noreply.github.com>

Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
@SoundMatt
SoundMatt merged commit bac304e into main Jul 27, 2026
10 checks passed
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