[UPD] TODO: the 84 host binaries the chroot does not have

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
This commit is contained in:
Mathieu Benoit 2026-08-20 01:36:10 -04:00
parent eafa3355aa
commit b7caa66f46

29
TODO.md
View file

@ -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`