[ADD] the seven tools stage 2 asked for by name

Six built on the host. libxslt will not: its configure demands libxml2 2.15.1
and Ubuntu ships 2.14.5. Ours is 2.15.3 and exists only inside the stage-2
chroot, so that chroot is the only place libxslt can come from -- built BY
stage 2 rather than installed into it, and hoisted so it precedes shadow, which
died on `xsltproc is missing`.

That is a shape worth naming: a package the host cannot build because the host
is behind. Not contamination and not a closure gap -- the wrong machine.

Three more tools were asked for and refused: po4a for fakeroot, a2x for
ca-certificates, asciidoctor for cryptsetup. Perl, Python and Ruby respectively,
each to render a man page. Hooks instead.

--- FR ---

Six se bâtissent sur l'hôte. Pas libxslt : son configure exige libxml2 2.15.1 et
Ubuntu livre 2.14.5. Le nôtre est en 2.15.3 et n'existe que dans le chroot de
l'étage 2 : ce chroot est donc le seul endroit d'où libxslt puisse venir — bâti
PAR l'étage 2 plutôt qu'installé dedans, et hissé pour précéder shadow, mort sur
`xsltproc is missing`.

La forme mérite un nom : un paquet que l'hôte ne peut pas bâtir parce que l'hôte
est en retard. Ni contamination ni trou de fermeture — la mauvaise machine.

Trois autres outils réclamés et refusés : po4a pour fakeroot, a2x pour
ca-certificates, asciidoctor pour cryptsetup. Perl, Python et Ruby
respectivement, chacun pour rendre une page de manuel. Des hooks à la place.

Assisted-by: Claude Opus 5
This commit is contained in:
Mathieu Benoit 2026-08-21 00:29:40 -04:00
parent ef143aac67
commit 390f3fabda
2 changed files with 29 additions and 4 deletions

View file

@ -72,7 +72,18 @@ CHROOT_PKGS=(
# libxslt shadow, for xsltproc
# swig audit
# help2man flex
gperf wget patchelf inetutils libxslt swig help2man
#
# libxslt is NOT here, and cannot be: it will not build on the host at all.
#
# configure: error: Version 2.14.5 found. You need at least libxml2
# 2.15.1 for this version of libxslt
#
# 2.14.5 is Ubuntu's libxml2. Ours is 2.15.3 -- and it exists only inside
# this chroot, which is the one place libxslt can be built. So it is built
# BY stage 2 rather than installed into it, which is why it sits in
# STAGE2_FIRST instead. Listing it here would fail make_rootfs with "target
# not found" against a repository that will never contain it.
gperf wget patchelf inetutils swig help2man
# libxcrypt-compat, for a reason no declaration expresses. perl declares
# `libxcrypt` and `libcrypt.so`, both satisfied by libxcrypt, which ships
# libcrypt.so.2. But perl's BINARY was linked on the host against Ubuntu's
@ -452,7 +463,12 @@ NOTE
# STAGE1_PACKAGES, and rebuild() skips anything already in stage2.state. The
# list is prepended rather than reordered, so stage 1's order stays the single
# statement of the closure.
STAGE2_FIRST=(texinfo)
# libxslt -- shadow died on `configure: error: xsltproc is missing.` and
# libxslt cannot be built on the host: its configure demands libxml2 2.15.1
# and Ubuntu ships 2.14.5. Ours is 2.15.3 and lives only in here, so this is
# the only place libxslt can come from -- built by stage 2, not installed
# into it. It has to precede shadow, which the list order does not do.
STAGE2_FIRST=(texinfo libxslt)
STAGE2_SKIP_HOOKS=(libgcrypt git meson libarchive)

View file

@ -210,7 +210,7 @@ STAGE1_PACKAGES=(
# wget sed, grep, findutils
# patchelf curl
# hostname gnupg (inetutils ships it)
# xsltproc shadow (libxslt ships it)
# xsltproc shadow (libxslt ships it -- see below)
# swig audit
# help2man flex
#
@ -223,7 +223,16 @@ STAGE1_PACKAGES=(
wget
patchelf
inetutils
libxslt
swig
help2man
# libxslt stays in the list because it is part of the distribution, but
# STAGE 1 CANNOT BUILD IT:
#
# configure: error: Version 2.14.5 found. You need at least libxml2
# 2.15.1 for this version of libxslt
#
# 2.14.5 is Ubuntu's. Ours is 2.15.3 and exists only inside the stage-2
# chroot, so that is the only place libxslt can come from -- it is in
# STAGE2_FIRST, and a stage-1 run is expected to report it as failed.
libxslt
)