What doesn't build yet, by failure class¶
This is the honest list of brew formulae we've tried to translate and got at least partway with, but that don't ship green yet. Each entry says what blocks it and what shape the fix takes — so contributions go to the right layer (translator, recipe class, or single-recipe handcraft).
Recipes not in this list and not in the working list are simply ones we haven't tried yet. The corpus grows weekly; if you want a specific package, open an issue.
How to read
Generated by tools/status-report.py from a hand-curated list near the bottom of the script (_BLOCKERS). When something flips to working, delete its entry — the script doesn't double-check, so stale entries are on us to clean up.
Translator pattern not handled yet¶
13 recipes.
lcov— vendored Perl CPAN modules viaresources.each do |r|; r.stage do. Needs a multi-source recipe class.exiftool— same Perl CPAN multi-source pattern as lcov.cloc— same Perl CPAN multi-source pattern.sevenzip—system 'make', '-f', '<Makefile>', ...— generic make translator drops the explicit Makefile arg.nvm— shell-only install — bash function loader, no real build.fisher— shell-only install — fish plugin manager.bats-core— shell-only install — bash test runner.telnet— openbsdcd .. && make installshape the translator doesn't match.terminal-notifier— usesxcodebuildnotswift build— needs a translator pattern.docker-completion— completion-only formula; no install steps the translator recognises.zsh-completions— completion-only formula; same.zsh-autosuggestions— zsh plugin loader; no compile step.watch— linux-specific procps utility (the macOSwatchbrew formula is just procps-ng cross-built).
Upstream version skew / API mismatch¶
6 recipes.
mosh— protoc-from-our-protobuf works, but mosh 1.4.0 expects protobuf < 5.x and we ship 35.0. Either pin an older protobuf alongside the current one or wait for upstream mosh to catch up.isl— configure's--with-gmp=<dir>selector vs--with-gmp-prefix=quirk conflicts with our auto-emitted--with-gmp=${DEP:gmp}flag — recipe-specific override needed.itstool— vendored libxml2 Python bindings (multi-source CPAN-style pattern).libidn2— bundled gnulibversion-etc.creferences undefined_version_etc_copyright; symbol is supposed to come fromversion-etc-fsf.cwhich the tarball ships but the configure step skips.jpeg-xl— runs adeps.shto download bundled deps (highway, brotli) before cmake — multi-source pattern.libomp— needs a sibling LLVM build (compiler-rt + libcxx); needs a custom recipe.
Per-recipe build-shape fix¶
21 recipes.
deno— monorepo cargo workspace with binary-name renames the std.cargo bin-walker doesn't pick up correctly.grpc— cmake-based but with a feature-flag matrix the translator doesn't translate.mysql— autotools fork (./mysql_configpre-step + custom configure flags).pulumi— Makefile with brew-specificmake brewtarget.vim—./configureplus a vim-specificmakeinvocation; configure expects--with-features=hugeto be set.wget— needs libidn2 (blocked above).rsync—int32type used as a typedef but not predefined on darwin Sequoia; upstreambyteorder.hneeds#include <stdint.h>.gnu-tar—gnuliblink issues similar to libidn2.guile—configure: error: No iconv support— libunistring built without iconv inside our autotools chain.aws-sam-cli—go.modnot found at expected path inside the brew tarball layout.bubblewrap—${DEP:X}for a brew dep not in our mapping table.freetds— autotools fork with custom configure args.gsasl— autotools fork with conflict between bundled gnulib and our tools.httrack—make Error 2— autotools shape that the translator emits doesn't match the actual Makefile.libpq— needs a substantial postgresql client-libs split build.the_silver_searcher— autoreconf wantspkg.m4macros not in our m4 dir.bgpq4—autoreconfstep fails — automake version skew.rbenv—completions/_rbenvpath missing in the tarball layout.libass— darwin BSDarflags incompatible with libtool's expected GNUar.jdupes—struct stat::st_mtimis Linux-only; darwin hasst_mtimespec. Upstream portability gap.stress-ng— linux-specific syscalls (futex,clone).
Swift 6 / Xcode 16 host requirement¶
8 recipes.
xcbeautify—swift buildrejects host Swift 5.10; needs Swift 6.x.xcodegen—swift buildrejects host Swift 5.10; needs Swift 6.x.xcresultparser—swift buildrejects host Swift 5.10; needs Swift 6.x.swiftlint— Swift 6 features in source.sourcekitten— Swift 6 + custommake prefix_installtarget.swift-protobuf— package.swift declares Swift 6.2 minimum.lume— needs Swift 6 + Package.swift in subdir.periphery— Swift 6 + xcodebuild.
Real package gap (recipe needs writing)¶
9 recipes.
gitless— needslibgit2@1.7(we have libgit2 latest, not @1.7).libgtop— needsintltool+perl-xml-parser.ncdu— needszig@0.15; we don't have a zig recipe yet.nmap— needsliblinear(source URL has TLS-cert issue we can't bypass cleanly).pypy3.10— needspypy+tcl-tk@8.wasi-libc— needswasm-micro-runtime.wasmer— needsxkeyboard-config(Linux-only).zig— needsllvm@21+lld@21.cmake-docs— needssphinx-docwith extra extensions; current build produces no output.
Source URL refuses to fetch¶
2 recipes.
liblinear—https://www.csie.ntu.edu.tw/...server has a TLS cert chain issue.block-goose-cli— upstream tarball hash drifted between the brew sha and the actual download.
@N version handling¶
6 recipes.
postgresql@14— the translator emits a working recipe but the build needs minor-specific configure flags.postgresql@16— same.postgresql@17— same.python@3.10— same.ruby@3.1— same.ruby@3.2— same.
Misc (custom install / non-tarball source / refusal)¶
14 recipes.
caddy— shell-only install loop the translator doesn't match.mole— same as caddy.azure-cli— huge multi-component install pattern.golangci-lint— build uses a vendored go-toolchain pattern.cocoapods— Ruby gem install with extra steps.git-filter-repo— single-script install pattern.docker-credential-helper-ecr— go-build with platform-specific link flags.groovysdk— needsopenjdk-bootstrap(Java toolchain we haven't seeded).python-yq— needsjqwired at runtime, not just build.buf— missing url+sha (uses non-standard source kind).dart-sdk— missing url+sha (uses non-standard source kind).duckdb— symlink loop in the test fixtures trips our git-fetch copy.jenv— shell-only install.cfssl— install block uses go-build with non-standard target paths.