Repository navigation
fix: use c2pa-rs 0.91.7 and patched Python TLS roots - #353
Merged
Merged
Conversation
Select the patched native SDK for release builds and require certifi 2026.10.19 for both runtime tooling and artifact downloads. Document independent trust stores and keep contributor setup on the selected release. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Include the package-version bump alongside the native SDK and TLS trust-store updates in #353. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
tmathern
reviewed
Oct 26, 2026
| import c2pa | ||
| ``` | ||
|
|
||
| ### TLS trust stores |
Collaborator
There was a problem hiding this comment.
This should go in release notes...
tmathern
requested changes
Oct 26, 2026
tmathern
left a comment
Collaborator
There was a problem hiding this comment.
Please move the "why" of this fix in release notes.
Address review feedback on #353 by keeping the 0.38.3 TLS trust-store guidance in the release notes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tmathern
approved these changes
Oct 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes in this pull request
Update the native SDK selector from
c2pa-v0.91.6toc2pa-v0.91.7. Normal wheel builds and developer downloads already consumec2pa-native-version.txt; source-build/preflight configuration is unchanged. Contributor setup now follows that selector instead of recommending 0.91.3.Consolidate the complete package-version change from #352: bump
c2pa-pythonfrom 0.38.2 to 0.38.3, so this PR includes the package bump alongside the native SDK and TLS trust-store updates. #352 contains no other changes; its version bump is now fully included here.Require
certifi>=2026.10.19in both published runtime metadata andrequirements-dev.txt, which is installed before the Requests-based artifact downloader. Upstream's bundle change removes the affected emSign ECC Root CA - G3. This independent Python trust path is not patched by replacing the Rust binary, nor can certifi patch an old binary.Document deployment boundaries: urllib/OpenSSL default stores, OS/interpreter roots, custom CA overrides, and packaging tools need separate updates. No unrelated cryptography dependency removal, Python runtime migration, merge, or release is included. Existing installed wheels require replacement; this PR only changes future builds.
Validation on macOS ARM64 / Python 3.13.2:
scripts/download_artifacts.py; its archive SHA-256 matches GitHub's published8a0c828e41a5c8a81d83426085b4e4dfca66a7e7b3d8fee3f31089812e63b5fd..venv/bin/python -m pytest tests/test_unit_tests.py tests/test_unit_tests_threaded.py -q --disable-warnings: 551 passed, 47 subtests passed (15 existing deprecation warnings), before the package-version-only consolidation..venv/bin/python setup.py --quiet bdist_wheel --plat-name macosx_11_0_arm64: built and installed the wheel; checked that wheel metadata requires the certifi floor and its bundled dylib is byte-identical to the downloaded library. Import from an empty directory confirmed the installed package's own bundled dylib reports SDK 0.91.7.certifi>=2026.10.19dependency..venv/bin/python -m build --sdist --no-isolation --outdir .venv/sdist: source archive preserves the floor in pyproject/egg-info and contains no native binaries (before the package-version-only consolidation).certifi==2026.10.19: all four authoritativeroots.jsonfingerprints are absent; OpenSSL with only that CA bundle rejects all 14 supplied incident chains with a missing-trusted-issuer error, including AAA cross-signs and No-CT chains. This does not claim remediation for custom/OS stores..venv/bin/python -m pip check,make -n download-native-artifacts PYTHON=.venv/bin/python, andgit diff --check: passed.Cross-platform build coverage remains for CI. Native SDK version and artifact identity were verified; native network-provider behavior was not inferred from dependency versions or Python's certifi results. See the public incident details and chains.
Checklist
TO DOitems (or similar) have been entered as GitHub issues and the link to that issue has been included in a comment. (No new TODO items.)