Skip to content

Fix stale opencv-python macOS x86_64 licence claim - #23

Merged
thorwhalen merged 2 commits into
mainfrom
worktree-vg-21
Sep 9, 2026
Merged

thorwhalen merged 2 commits into
mainfrom
worktree-vg-21

Conversation

@thorwhalen

Copy link
Copy Markdown
Collaborator

Closes #21.

What was wrong

CLAUDE.md's non-negotiables section claimed opencv-python's macOS x86_64 wheel "bundles no FFmpeg at all". That was a silent generalisation of a opencv-python-headless-only finding (note 08 + its adversarial review) to opencv-python at large — the two distributions were never separately measured on that platform, and they disagree.

What was measured (this PR, first-hand, no install — wheel download + strings/dylib inspection)

wheel bundled ffmpeg
opencv-python==4.12.0.88 macOS x86_64 GPL-3.0-or-later, same as arm64 (libx264/libx265, --enable-gpl --enable-version3)
opencv-python==5.0.0.93 macOS x86_64 none — same permissive dylib set as the headless wheel

Independently corroborated for 4.12.0.88 in thorwhalen/paces#19. So on macOS x86_64 the tier is a property of the wheel version, not just the platform or the headless/non-headless split — nothing between the two measured versions was checked, and that gap is now recorded as unverified.

What changed

  • looks/data/provider_terms.json — two new version-pinned ledger rows: pypi:opencv-python==4.12.0.88@macosx_x86_64 (derives UNKNOWN, same open in-process-coupling question as the arm64 rows) and pypi:opencv-python==5.0.0.93@macosx_x86_64 (derives PERMISSIVE). No new Python logic — classify() already handles this shape; looks never actually depends on opencv, so there is no tier-detection code to fix, only the ledger and the docs that summarise it.
  • looks/tests/test_licence.py — the two new rows are pinned in test_every_row_derives_the_position_it_was_transcribed_with, plus a new test_the_same_platform_disagrees_across_wheel_versions.
  • CLAUDE.md, docs/decisions_and_rationale.md (§5.7 table + unverified-rows line + the remedies line in the coupling-question row), docs/research/README.md — corrected to state the per-version fact.
  • docs/research/08_opencv_and_python_deps.md, docs/research/00e_the_flatten_tension.md — append-only corrections (repo convention: a review correction wins over body text, body text is not rewritten).

No new dependency. No breaking change — this only adds ledger rows and narrows a doc claim; nothing was removed or renamed.

Testing

  • pytest --doctest-modules looks: 1357 passed, 3 skipped.
  • ruff check . and ruff format --check .: clean.

https://claude.ai/code/session_01UTgrLvW3iCB26444844uMZ

CLAUDE.md and the research notes generalised a headless-only finding
("macOS x86_64 has no FFmpeg") to opencv-python at large. Measured
directly (wheel download + strings/otool, no install): opencv-python
==4.12.0.88 macOS x86_64 bundles the same GPL-3.0-or-later ffmpeg as
arm64 (libx264/libx265, --enable-gpl), while ==5.0.0.93 on the same
platform ships none. Corroborated by reeleehq/paces#19.

The ledger (looks/data/provider_terms.json) gains two version-pinned
rows for pypi:opencv-python@macosx_x86_64, deriving UNKNOWN for
4.12.0.88 (same open in-process-coupling question as the arm64 rows)
and PERMISSIVE for 5.0.0.93 via the existing classify() machinery --
no new tier-detection code, since looks never actually depends on
opencv (it is a documented refusal, not a live dependency).

Claude-Session: https://claude.ai/code/session_01UTgrLvW3iCB26444844uMZ
Review of PR #23: the correction section wrote 93 dylibs for the
opencv-python==4.12.0.88 x86_64 wheel (copy-pasted from the arm64
row); actual count is 66. Also runs ruff format over the one new
test hunk (the rest of the file's formatting drift is pre-existing
and out of scope here).

Claude-Session: https://claude.ai/code/session_01UTgrLvW3iCB26444844uMZ
@thorwhalen
thorwhalen merged commit 3f4ee64 into main Sep 9, 2026
12 checks passed
@thorwhalen
thorwhalen deleted the worktree-vg-21 branch September 9, 2026 00:45
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.

CLAUDE.md licence fact is stale: opencv-python macOS x86_64 wheel DOES ship GPL FFmpeg

1 participant