util-linux: add priority and IPC command tools - #110
Conversation
|
Independent devil's-advocate review: ACCEPT exact head The review verified official util-linux 2.42.2 provenance/license metadata, the exact three-program and manpage surface, fail-closed ABI/fork/path validation, and the absence of hidden target dependencies. The Formula uses real upstream Canonical Homebrew source install/test passed on ABI39 plus #912 with declared Binaryen 130. The v126/v130 byte difference was independently pinned to Binaryen trap folding after byte-identical Clang/LLD inputs, and v130 reproduced the canonical hashes. Node and Chromium cover the stated calendar/priority paths; Node covers installed ipcrm fork+exec and exact post-removal EINVAL. The browser ipcrm exec limitation is explicitly unclaimed. Source merge remains gated on main #912 and #882; final bottles/pours remain separate ABI/publisher gates. Do not merge before those prerequisites. |
|
ABI 39 follow-up on the intentionally omitted The cross-process routing gate is still real, and there is a second independent syscall-semantic gate. In one Additionally, util-linux 2.42.2 Open main PR #855 overlaps only loopback UDP and needs redesign/rebase; it does not address AF_UNIX or multi-iovec |
Why
Kandelo needs real command-line tools for calendar display, process-priority changes, and System V interprocess communication (IPC) cleanup. The legacy package set does not make this util-linux surface available as one reviewed Homebrew Formula, and pretending unsupported inspection commands work would hide kernel gaps.
This Formula deliberately includes only commands Kandelo can validate truthfully today.
ipcs, which lists IPC objects, andlogger, which sends messages to a system log service, remain excluded until Kandelo exposes the required live kernel and networking state.What changed
cal,ipcrm, andreniceipcsneeds truthful SysV IPC enumeration, andloggerneeds cross-process AF_UNIX or loopback UDP deliveryPlatform gates
Do not merge this source Formula until both platform fixes have landed:
semctlerrno needed to verify semaphore removalDo not publish util-linux until the final ABI and trusted publisher produce and validate its canonical bottle. No bottle metadata is hand-written in this PR.
Validation
Canonical source build and Formula test were run with:
0f464442df7f3042bf./scripts/dev-shell.sh /tmp/kandelo-util-linux-canonical-test.shbrew install --build-bottle --formula automattic/kandelo-homebrew/util-linuxbrew test automattic/kandelo-homebrew/util-linuxThe canonical install/test passed and reproduced these artifacts exactly:
cal65618e5fde6aab1acdcc1e8a56c46e8805bc42e191d698046cce755159863551ipcrm0fda39086482e41fd7bece0d41f0fbc8b6ccd87d621b9d049eb08e16526f2a2brenice4feea1836ec208ed7f6af0c1a0137a06dbc1b2b7d572f4a122149f7a29132166Binaryen causality was isolated with byte-identical objects and archives: the dev shell's Binaryen 126 leaves two musl mallocng invalid branches as
br, while the declared Homebrew Binaryen 130 folds them tounreachable. Replaying the link with Binaryen 130 reproduced all three canonical hashes, so this is a tool-version difference rather than build nondeterminism.Formula coverage includes:
calandreniceexecution in Node and Chromiumreniceexec with exactEPERMipcrm, removing message queue, shared memory, and semaphore objects with exactEINVALafterwardThe
ipcrmfork+exec Formula case is Node-only because the current browser Formula helper cannot stageexec_programs. A final poured-bottle browser integration remains required before publication; the browser claims in this PR are limited to the explicit Chromium cases above.