From b7caa66f4651276a9788b4c5d0e6ad42a375d822 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Thu, 20 Aug 2026 01:36:10 -0400 Subject: [PATCH] [UPD] TODO: the 84 host binaries the chroot does not have MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Measured once rather than discovered a package at a time: dpkg says what each of the 110 apt packages ships in /usr/bin, and each of those is tested against the chroot. Two had already been found the slow way, rsync and makeinfo, and each cost a full build to surface. Sorted by what it means: ten are build tools that will each block something, eleven are documentation already settled by --auto-features auto, and eight are not gaps at all -- bison.yacc, fakeroot-tcp, automake-1.17, ncurses6-config and the like are Debian's alternative names for tools that are present under Arch's. Counting those as missing would have meant building packages that exist. --- FR --- Mesuré une fois plutôt que découvert un paquet à la fois : dpkg dit ce que chacun des 110 paquets apt livre dans /usr/bin, et chacun est testé contre le chroot. Deux avaient déjà été trouvés par la voie lente, rsync et makeinfo, au prix d'une construction complète chacun. Classé par ce que cela signifie : dix sont des outils de construction qui bloqueront chacun quelque chose, onze sont de la documentation déjà tranchée par --auto-features auto, et huit ne sont pas des manques -- bison.yacc, fakeroot-tcp, automake-1.17, ncurses6-config et compagnie sont les noms alternatifs de Debian pour des outils présents sous ceux d'Arch. Les compter comme absents aurait fait bâtir des paquets qui existent. Assisted-by: Claude Opus 5 --- TODO.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/TODO.md b/TODO.md index 3b792c1..9f20411 100644 --- a/TODO.md +++ b/TODO.md @@ -330,6 +330,35 @@ mistake in a smaller form. An explicit name outranks the state file, because being told "already built, skipping" would make the command useless for the one job it has. +### 84 host binaries the chroot does not have — measured, not guessed + +`install_host_deps` installs 110 apt packages. Asking dpkg what each ships in +`/usr/bin`, then testing every one of those against the stage-2 chroot, gives +84 absent binaries. Worth doing once rather than discovering them a package at +a time over a twenty-hour pass — two were found that way first (`rsync`, +`makeinfo`) and each cost a full build to surface. + +Build tools, which will each block something: + + gperf help2man po4a xsltproc scdoc dtrace (systemtap) + cython pyproject-build sphinx-build rst2man (docutils) + +Documentation only, and settled by `--auto-features auto`: + + doxygen asciidoctor itstool ducktype yelp-build yelp-check + elinks fig2dev transfig rsvg-convert clang (doxygen's) + +Not gaps at all, on inspection: `bison.yacc`, `fakeroot-tcp`, `faked-sysv`, +`automake-1.17`, `aclocal-1.17`, `ncurses6-config`, `nspr-config`, +`tcltk-depends` are Debian's alternative or versioned names for tools that are +present under Arch's names. Counting them as missing would have sent someone +building packages that already exist. + +Each is built when a package actually asks for it, not in advance — several +carry closures much larger than themselves (`dtrace` brings systemtap, +`sphinx-build` a Python stack), and paying for one before knowing it is needed +is how a bootstrap doubles in size. + ## Environment, not the port ### Build locale — `scripts/bootstrap-pacman.sh`