feat(pkgs): opencv 0.0.9 单仓库形态 + mcpp 0.0.102 floor (windows scan-deps #261 + module PCM baseline)#111
Merged
Merged
Conversation
Sunrisepeak
marked this pull request as draft
July 21, 2026 13:16
Member
Author
|
临时转为 draft:本 PR 删除了 计划:先合 #112,本 PR rebase 后即可只跑 opencv 相关成员( 本地已验证的内容不变:lua 语法 / |
opencv-m 自 0.0.7 起把 OpenCV 5.0.0 的完整源码构建收入自身仓库:上游源码
(third_party/opencv-5.0.0/,官方 tag 的裁剪导入,sha256 锁定,零补丁)与各平台
冻结的 configure 快照(gen/)随 release tarball 一并分发,消费端不执行 CMake。
索引侧因此只保留指向该 release 的 Form A 描述符。
- pkgs/o/opencv.lua:0.0.7(GLOBAL GitHub tag tarball + CN gitcode 镜像,
两者字节一致,sha256 a896d08d…);描述符注释重写为单仓库形态。仅保留 0.0.7,
0.0.6 及更早版本随 compat.opencv 一并移除。
- 删除 pkgs/c/compat.opencv.lua、pkgs/c/compat.opencv-unifont.lua 与
tools/compat-opencv/(描述符生成流水线),以及两个临时快照采集 workflow
(snapshot-{macos,windows}-opencv.yml)。
- 删除仅用于验证 compat.opencv 的 workspace 成员:opencv、opencv-win、
opencv-unifont、opencv-dnn;模块层成员 opencv-module{,-dnn,-unifont}
依赖上调至 0.0.7 并更新已失效的注释(不再有 feature 转发与 linux-only)。
- README 与 validate.yml 的相关描述同步更新。
opencv-m 侧五条 CI 腿(linux gcc/llvm22/musl-static、macOS llvm、windows llvm)
全部通过;本地已用本检出解析 opencv 0.0.7 并运行 opencv-module 成员验证。
Sunrisepeak
marked this pull request as ready for review
July 21, 2026 13:20
Sunrisepeak
force-pushed
the
feat/opencv-0.0.7-single-repo
branch
from
July 21, 2026 13:21
f3096ba to
5a150a5
Compare
v0.0.7's --template opencv scaffold used std::println(stderr, …) under a
bare `import std;` and did not compile (modules do not export the <cstdio>
stderr macro). opencv-m v0.0.8 fixes the template and adds a CI lint for the
class. No library-source or ABI change from 0.0.7.
- pkgs/o/opencv.lua: version 0.0.7 → 0.0.8 (all three OS blocks), sha256
re-pinned to 0025f7a6…45cd8 (GLOBAL github archive == CN gitcode asset,
both verified 11756053 bytes). Requires-mcpp note raised to >= 0.0.102
(windows scan-deps cmdline, mcpp#261).
- tests/examples/opencv-module{,-dnn,-unifont}: consumer pins → 0.0.8.
…261)
The windows workspace leg builds a package's own TUs from under the
registry's xpkgs path (~124 chars) rather than a ~23-char checkout, so
the clang scan-deps command — wrapped in `cmd /c` only to redirect its
P1689 JSON — crossed cmd.exe's 8191-char ceiling on the vendored-opencv
consumer (opencv-module{,-dnn}). mcpp 0.0.102 drops the wrapper via
clang-scan-deps -o and extends #247's response-file fallback to every
$local_includes rule, restoring the CreateProcess 32767 ceiling.
Bump min_mcpp/latest_mcpp together with the CI pin per the index.toml
version-contract rule. Also carries #257 (Clang purview-include depfile),
#258 (OS-conditional [build].flags) and #254 (per-OS splice on target).
…6 re-pinned)
0.0.8 was not usable as a windows/clang dependency: opencv's SSE3 baseline
-msse3 tagged the module-interface BMIs, and a baseline consumer TU could not
load opencv.<mod>.pcm (clang -Wmodule-file-config-mismatch). opencv-m v0.0.9
moves -msse3 to a per-glob on the library TUs only, so the interfaces are
baseline-loadable. No public C++ API change.
- pkgs/o/opencv.lua: 0.0.8 → 0.0.9 (all three OS blocks), sha256 re-pinned to
888c45ad…768a (GLOBAL github archive == CN gitcode asset, both 11756394 bytes).
- tests/examples/opencv-module{,-dnn,-unifont}: consumer pins → 0.0.9.
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.
把 opencv 收敛为单仓库形态并升到 0.0.8,同时把索引的 mcpp 底座抬到 0.0.102。
opencv 单仓库 + 0.0.8
pkgs/o/opencv.lua:Form A 描述符,三平台各一个["0.0.8"]块,GLOBAL(github archive)与 CN(gitcode mcpp-res 资产)指向同一 tarball,sha2560025f7a6…45cd8(两端均 11,756,053 字节,已实测一致)。退役 compat.opencv / compat.opencv-unifont 与tools/compat-opencv/。mcpp new --template opencv脚手架在import std;下用了std::println(stderr, …),而模块不导出<cstdio>的stderr宏,生成代码编译不过(opencv-m#14 修复模板 + 新增模板 lint)。0.0.8 只改模板,无库源码 / ABI 变化。tests/examples/opencv-module{,-dnn,-unifont}:消费者 pin → 0.0.8;删除旧的 compat.opencv 系成员(opencv / opencv-win / opencv-unifont / opencv-dnn)。mcpp 0.0.102 底座(原 #113,已折叠进来)
windows workspace 腿把包当依赖消费时,包自己的 TU 落在 ~124 字符的 xpkgs 路径下,clang scan-deps 命令越过 cmd.exe 8191 上限(
The command line is too long.)。mcpp 0.0.102(#261) 用clang-scan-deps -o去掉cmd /c重定向 wrapper,上限回到 CreateProcess 的 32767。因此:.github/workflows/validate.yml:MCPP_VERSION与三矩阵 pin 0.0.101 → 0.0.102。index.toml:min_mcpp/latest_mcpp→ 0.0.102(按版本契约与 CI pin 同步)。折叠理由:0.0.102 底座的必要性正是由 opencv 0.0.8 的 windows 腿引入,且本 PR 已删除旧 compat.opencv 成员——分开跑一遍全量只会把 windows 构建时间浪费在即将删除的旧路径上。
本地验证(对已发布 v0.0.8 tarball,mcpp 0.0.102)
mcpp new myvision --template opencv→template opencv@0.0.8:imgproc→mcpp build→./myvision in.png输出灰度 PNG。opencv = { features = ["dnn","unifont"] }:dnnblobFromImage→ NCHW1×3×16×16、Net().empty()==true;unifontFontFace("uni")+ 中文putText落墨 1797 px。编辑了 validate.yml → 触发全量 workspace,正好在 0.0.102 上构建新单仓库成员(含 windows 腿验证 #261 修复)。
更新 0.0.8 → 0.0.9(windows/clang 消费者修复):0.0.8 的模块接口 BMI 被 opencv 的 SSE3 baseline
-msse3打上+sse3,baseline 消费者 TU 无法加载(clang-Wmodule-file-config-mismatch)。opencv-m v0.0.9(#15)把-msse3收到仅库 TU 的 per-glob,接口以 baseline 编译。sha256 →888c45ad…768a。索引改指 0.0.9。