Skip to content

Validate upstream gain-map API packaging submission - #2

Open
gregbenz wants to merge 1 commit into
codex/gain-map-submission-ci-basefrom
codex/gain-map-packaging-upstream
Open

gregbenz wants to merge 1 commit into
codex/gain-map-submission-ci-basefrom
codex/gain-map-packaging-upstream

Conversation

@gregbenz

Copy link
Copy Markdown
Owner

Fork-only CI validation of the exact upstream submission commit 0554c38b2783e43a3f3239b4977af89fde7621e1, against upstream main at e394120180f7bae73506c9c4435ed95092709a19. This PR is for validation, not for merging into the fork base branch. No upstream PR has been submitted.

The head contains one commit with the issue link, rationale, and testing details required by CONTRIBUTING.md. It excludes the independent mingw32 and Intel SDE workflow repairs present in fork PR #1, so this run may reproduce those existing setup failures. Results for this exact head are pending.

The installed gain-map and compressed-ICC headers declare functions that applications cannot link through libjxl because their implementations live in extras.

Move the five existing helpers into libjxl without changing their signatures or behavior. Split the read and write implementations so decoder-only builds do not pull in encoder code, and update the CMake, Bazel, and GN source lists.

Two regression checks cover public linkage: a C example uses only the installed libjxl pkg-config package and checks bundle/ICC roundtrips; a CTest consumer links only to jxl_dec and reads fixed synthetic bytes without calling encoder helpers. The example runs in the existing installed-examples CI step, with a Linux loader-cache refresh after installation.

Related upstream issue: libjxl#4865.

Testing

  • The installed consumer fails on unmodified upstream with all five symbols missing on macOS and Linux. Shared and static consumers pass with the fix on macOS arm64, Linux arm64, and Windows x64.
  • The decoder-only regression fails to link on unmodified upstream with both reader symbols missing. It passes through CTest in macOS shared, lean decoder-only, and static-libjxl builds, and runs directly against the Linux decoder library. Earlier lean decoder checks also pass on Windows.
  • The same library and test changes passed 114 checks in the fork validation PR, including Bazel, WASM, Windows, macOS, Linux, cross-testing, and conformance. That validation branch also contains separate repairs for the existing mingw32 GoogleTest setup and unavailable Intel SDE downloads; those repairs are excluded from this PR.

The synthetic payloads exercise linkage and serialization, not HDR image interoperability. Local macOS static testing with lcms required explicitly linking lcms because of existing package metadata. Windows pkg-config integration and GN builds were not tested.

The installed gain-map and compressed-ICC headers declare five helpers whose
implementations live in extras, leaving normal libjxl consumers with undefined
symbols. Move the existing implementations into libjxl and separate readers
from writers so jxl_dec does not acquire encoder dependencies. Update the
CMake, Bazel, and GN source lists without changing public signatures or codec
behavior.

Add an installed C consumer that links using only libjxl pkg-config metadata
and checks bundle/ICC serialization, plus a decoder-only CTest consumer that
reads fixed synthetic bytes without encoder linkage. Refresh the Linux loader
cache before the existing installed-examples CI step.

Fixes libjxl#4865.

Validation: the installed consumer fails with all five symbols missing on
unmodified upstream on macOS and Linux; the decoder-only consumer fails with
both reader symbols missing. Patched shared/static consumers pass on macOS,
Linux, and Windows. The decoder regression passes CTest in macOS shared,
static-libjxl, and lean builds and runs directly on Linux. Existing focused
bundle/ICC tests and formatting/source-list checks pass.

The identical library/test changes passed 114 checks in
#1, including Bazel, WASM, Windows,
macOS, Linux, cross-testing, and conformance. That validation branch also
contains unrelated mingw32 and Intel SDE CI repairs excluded here.
Windows pkg-config and GN builds were not tested; local static lcms testing
on macOS needed an explicit lcms dependency due to existing package metadata.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-28T14:21:35.326570Z 0554c38 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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