Skip to content

Predict elog notices from distfiles and check NEEDED against RDEPEND - #1

Merged
Zakkaus merged 2 commits into
masterfrom
floors-needed-deps
Sep 14, 2026
Merged

Zakkaus merged 2 commits into
masterfrom
floors-needed-deps

Conversation

@Zakkaus

@Zakkaus Zakkaus commented Sep 14, 2026

Copy link
Copy Markdown
Member

因为这周 netbird、euphonica、pack-cli-bin 三次 bump 都是本机绿、CI 红在 install-qa-check.d 的同一类 elog(go 下限字符串、vendored crate 的 rust-version、预 strip),测试机的树快照落后就跑不到这些检查,所以加 gzh floors 在推之前从 distfiles 直接算出 CI 会要的那个字符串;又因为审 tsukimi 时 NEEDED 对 RDEPEND 是手工 scanelf + qfile 做的,所以加 gzh needed-deps 从 VDB 算,单文件只依赖 portage,能拷到测试机跑。

三个真实 ebuild 回归验过:修好的版本过,原来推上去的版本各报出 CI 报的那一条。

Three bumps this week were green locally and red in CI on the same class
of notice: netbird's go.mod said 1.26.0 while BDEPEND said 1.26 (ver_test
calls that less), euphonica's vendored crates carried rust-version 1.92.0
above RUST_MIN_VER 1.88.0, and pack-cli-bin's upstream binary was already
stripped. All three checks live in ::gentoo's install-qa-check.d, so a
test box whose tree snapshot lags never runs them; the ebuild had to be
fixed after the push each time.

`gzh floors <ebuild>` unpacks the archives SRC_URI and the Manifest name
and applies the same sed patterns and version comparison as
60go-module-eclass, 60cargo-eclass and estrip, then prints the exact
string the ebuild needs. Distfile missing or bsdtar absent is exit 2,
not a pass. Verified against the three ebuilds above: the fixed versions
pass, the originally pushed versions each produce the one finding CI
produced.
Reviewing tsukimi 26.9.2 meant running scanelf on the merged binary,
qfile on every soname and reading the providers against RDEPEND by hand;
that found libseccomp linked but declared nowhere, present only because
mpv happens to drag it in six hops away.

`gzh needed-deps <cp> [--ebuild]` does that from the VDB: NEEDED.ELF.2
for the sonames, every installed package's PROVIDES for the owner, then
direct RDEPEND versus a one-hop transitive versus anything longer, which
counts as missing. needed_deps.py imports only portage so it can be
copied to the box where the merge happened.
@Zakkaus
Zakkaus merged commit 1f0a11e into master Sep 14, 2026
1 check passed
@Zakkaus
Zakkaus deleted the floors-needed-deps branch September 14, 2026 02:19
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