Skip to content

Handle known ARM64 libc6 usr-merge diversion warnings - #433

Merged
serhat andic (serhatandic) merged 1 commit into
developfrom
ihalatci-arm64-diversion-warning-fix
Sep 9, 2026
Merged

serhat andic (serhatandic) merged 1 commit into
developfrom
ihalatci-arm64-diversion-warning-fix

Conversation

@ihalatci

Copy link
Copy Markdown
Contributor

Summary

Recognize the known protective libc6 ARM64 usr-merge diversion before Debian warning filtering discards its context. This is limited to complete, contiguous diagnostic blocks containing only these exact lines:

dpkg-shlibdeps: warning: diversions involved - output may be incorrect
 diversion by libc6 from: /lib/ld-linux-aarch64.so.1
 diversion by libc6 to: /lib/ld-linux-aarch64.so.1.usr-is-merged

An accepted block must have equal from/to counts, one warning per detail, and no prefix with more details than preceding warnings. This accommodates parallel dh_shlibdeps interleaving, including the actual topn/Noble warning / warning / to / from sequence captured in the new 26-line fixture.

Unknown owners, paths, architectures, local diversions, malformed or extra diagnostic records, missing context, imbalanced blocks, and detail overruns are not exempted. Unrelated output and blank lines end a block; context is never borrowed across boundaries. Only matching base-warning indexes are skipped, preserving raw build diagnostics and existing lintian state transitions. RPM handling, ignore-file semantics, --output_validation, system diversions, and the validate_output interface used by both callers are unchanged.

Local/offline evidence

  • The existing warning suite passes 67 cases, including all 10 original cases unchanged and focused positive/negative coverage.
  • The two changed Python files pass Black and the existing Prospector profile with --no-autodetect (zero findings).
  • All six original build.stdout.log inputs for Citus, hll, and topn on Noble and Trixie were replayed through the unchanged standalone packaging_automation.validate_build_output CLI with their exact original inputs/packaging_ignore.yml files. Each returned 1 before the fix and 0 afterward, with no remaining unignored base or package-specific warnings. SHA256 comparisons confirmed all source logs and policies remained unchanged.
  • Validation ran locally in WSL; no native package rebuild or runtime-installability result is claimed.

The original logs come from packaging diagnostic run 34258995794, attempt 1. That diagnostic run was red: its original warning gates failed, and collection also encountered a separate source-identity assertion. It is evidence for the original diagnostics and offline comparison, not a new green native run for this change.

Rollout scope

This draft changes only the warning handler, focused tests, and the small real-output fixture. A tools release/tag and packaging-pin updates require separate approval and rollout; this PR does not claim that currently pinned packaging builds are already unblocked.

Recognize complete, exact libc6 ARM64 usr-merge diagnostic blocks before warning context is discarded. Preserve unknown warnings, raw logs, lintian handling, RPM behavior, and existing ignore policies.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 52d4e780-cd8c-405c-8944-5e3167ae4e59
@ihalatci
ibrahim halatci (ihalatci) force-pushed the ihalatci-arm64-diversion-warning-fix branch from 7ac8983 to 12b738e Compare September 9, 2026 16:54
@ihalatci
ibrahim halatci (ihalatci) marked this pull request as ready for review September 9, 2026 16:58
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.

3 participants