[Homebrew] Replace the placeholder man command with a real viewer - #87
Draft
brandonpayton wants to merge 2 commits into
Draft
[Homebrew] Replace the placeholder man command with a real viewer#87brandonpayton wants to merge 2 commits into
brandonpayton wants to merge 2 commits into
Conversation
Package upstream mandoc 1.14.6 as the real man, formatter, lookup, and pager implementation. Cross-build with explicit Kandelo target capabilities, normal zlib and less dependencies, and required fork instrumentation for the pager path. Keep manual-page lookup deterministic over Homebrew MANPATH without generating a global database that would materialize every deferred bottle. Remove only the old posix-utils-lite man alias and prove Node, Chromium, section selection, roff formatting, and real PTY paging.
Exercise section lookup, aliases, compressed and mdoc pages, helper tools, database-backed search, and the exact Homebrew Cellar symlink layout. Bump posix-utils-lite so its next bottle truthfully drops the retired placeholder man command.
brandonpayton
force-pushed
the
feature/man-formula-candidate-qk044
branch
from
July 23, 2026 17:14
c2421e9 to
694ab11
Compare
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.
Why
The shell currently gets a placeholder
mancommand fromposix-utils-lite.That command only copies a raw file from one hard-coded directory. It does not
provide normal section lookup, roff formatting, compressed pages, manual-page
search, or terminal paging.
This change uses mandoc, a small ISC-licensed manual-page toolset, to provide the
normal
manexperience through Kandelo's Homebrew package path.What changes
script runs compiled probes, so using host probe results would describe the
build machine instead of the WebAssembly target.
zlibdependency for compressed pages andlessdependency for interactive paging.
manfor its real fork/exec pager path.share/manlinks. The page itself remains inthe package's versioned Cellar directory, so opening one page can materialize
only the bottle that owns it.
one global
mandoc.dbwould scan every deferred package and defeat lazybottle retrieval. Users can still run
makewhatis, andwhatis/aproposwork against the resulting database.
manlink fromposix-utils-liteand bump thatFormula to revision 1 so an old bottle cannot silently keep providing it.
The paired Kandelo change in
Automattic/kandelo#1077
removes the placeholder package/rootfs entry and verifies the exact lazy VFS
behavior: global manual-page links remain metadata-only, the first page read
fetches its owning bottle, and unrelated bottles remain deferred.
Runtime coverage
The Formula covers:
man -wpath lookup;.soaliases;demandocandsoelim;makewhatis,whatis, andapropos;less.Validation
Exact head:
694ab114827e895ee87af842be20c62f5eee692alessfork/exec and quit flow on the same binary build path: passedbrew style Formula/mandoc.rb: passedgit diff --check: passedRollout
This remains a draft. No bottle publication workflow has been dispatched.
Before publication, the
posix-utils-litesource pin must be updated to thefinal Kandelo commit that removes the placeholder. The coordinated rollout is:
posix-utils-litebottle;