Skip to content

gawk: drop sudo/shadow-utils BuildRequires to fix toolchain graph cycle - #18529

Open
jslobodzian wants to merge 5 commits into
fasttrack/3.0from
users/jslobodzian/gawk-drop-sudo-buildrequires
Open

gawk: drop sudo/shadow-utils BuildRequires to fix toolchain graph cycle#18529
jslobodzian wants to merge 5 commits into
fasttrack/3.0from
users/jslobodzian/gawk-drop-sudo-buildrequires

Conversation

@jslobodzian

Copy link
Copy Markdown
Collaborator

Summary

Reverts the %check section of SPECS/gawk/gawk.spec to its 5.2.2-1 form and drops the sudo + shadow-utils BuildRequires added in 5.2.2-2 (#18426). CVE patches (CVE-2026-40467/40468/40553) are unchanged. Release 2 → 3.

Why

gawk is a toolchain/bootstrap package and previously had no BuildRequires. 5.2.2-2 added, under %if 0%{?with_check}, BuildRequires: shadow-utils + sudo so the pma test could run as a non-root user. Under with_check=1 this expands gawk's build closure into sudo/shadow-utils → glibc(/sbin/ldconfig) → gawk, forming an unresolvable dependency-graph cycle the grapher cannot break with prebuilt/PMC RPMs. It panics during full-graph generation (graph.dot), before any package is selected:
PANI[grapher] unfixable circular dependency ... gawk-5.2.2-2 ... /sbin/ldconfig make: *** [pkggen.mk:150: .../graph.dot] Error 2
Because the panic is in whole-repo graph construction, it breaks every check-enabled source build regardless of the package being built — e.g. ~100% of buddy builds since 08-17 (any target: flannel, golang, packer, expat, kubevirt, gh…).

Not affected: PMC consumers of the binary RPM, Fast-Track PROD (built/published gawk fine with checks off at graph time), and the DEV RPM cascade.

Fix

Restore the -1 %check (run the suite directly) and remove the two BuildRequires. Trade-off: the pma persistent-memory test is skipped when the suite runs as root (check_pma_security() refuses persistent memory for euid 0) — same coverage as -1 and every prior release.

Follow-up

  • Auto-cherry-pick to 3.0-dev (also carries the poisoned spec).
  • Cleaner future option that keeps pma coverage: run the test via runuser (util-linux, already in base) instead of useradd+sudo, avoiding the toolchain build-dep.

Revert the %check section to its 5.2.2-1 form. gawk is a toolchain bootstrap
package; the sudo + shadow-utils BuildRequires added in 5.2.2-2 created an
unresolvable dependency-graph cycle, breaking all check-enabled source builds
(e.g. every buddy build). CVE patches are unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jslobodzian
jslobodzian requested a review from a team as a code owner August 20, 2026 00:32
@microsoft-github-policy-service microsoft-github-policy-service Bot added Packaging fasttrack/3.0 PRs Destined for Azure Linux 3.0 labels Aug 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

un resolvable dependency of gawk on glibc , hence reverting this test changes for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fasttrack/3.0 PRs Destined for Azure Linux 3.0 Packaging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants