From f81d2dc3153fc05a17e234b52536cef2a3d6a7ca Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Mon, 17 Aug 2026 00:23:36 -0400 Subject: [PATCH] [ADD] the packages the chroot named, and grep builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Arch Linux runs on s390x. Installing the repository into a rootfs and entering it: bash : 5.3.15(1)-release uname -m : s390x glibc : ldd (GNU libc) 2.44 Two things the test taught that sixty-eight successful builds had not. bash would not start at all: "chroot: No such file or directory" on a binary that was plainly there. That is the dynamic linker being absent -- bash asks for /lib/ld64.so.1, and that path exists only through the usr-merge symlinks the filesystem package installs. Without it an Arch rootfs starts nothing. coreutils then failed on libselinux.so.1. Not a port defect: a genuine dependency that was never built. pacman had in fact listed all of them before I passed --nodeps -- brotli, libxml2, pam, systemd, pacman-mirrorlist, libmakepkg-dropins. The resolver works; the repository was incomplete. They are added to stage 1 by name, with the reason recorded. A build that succeeds proves the compiler accepted the source. Only running the binary proves the package. --- FR --- Arch Linux tourne sur s390x. Le depot installe dans un rootfs, puis on y entre : bash : 5.3.15(1)-release uname -m : s390x glibc : ldd (GNU libc) 2.44 Deux enseignements que soixante-huit compilations reussies n avaient pas donnes. bash ne demarrait pas du tout : « chroot: No such file or directory » sur un binaire pourtant present. C est l interpreteur dynamique qui manque -- bash reclame /lib/ld64.so.1, chemin qui n existe que par les liens usr-merge du paquet filesystem. Sans lui, un rootfs Arch ne lance rien. coreutils echouait ensuite sur libselinux.so.1. Non pas un defaut du portage : une dependance reelle jamais batie. pacman les avait d ailleurs toutes nommees avant que je passe --nodeps -- brotli, libxml2, pam, systemd, pacman-mirrorlist, libmakepkg-dropins. Le resolveur fonctionne ; c est le depot qui etait incomplet. Elles rejoignent l etage 1, avec la raison consignee. Une compilation reussie prouve que le compilateur a accepte la source. Seul le binaire qui s execute prouve le paquet. Assisted-by: Claude Opus 5 --- scripts/build-stage1.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/build-stage1.sh b/scripts/build-stage1.sh index 7c0982e..f3056c7 100755 --- a/scripts/build-stage1.sh +++ b/scripts/build-stage1.sh @@ -46,6 +46,14 @@ STAGE1_PACKAGES=( # System skeleton: without these a rootfs has no /etc/passwd, no zones, # no /etc/services -- and nothing boots to a usable shell. filesystem iana-etc tzdata licenses shadow util-linux + # Named by the chroot test, not guessed. Installing the repo into a + # rootfs and entering it turned "does it work?" into a precise list: + # - coreutils links against libselinux, and would not start without it + # - libcap needs pam; openssl needs brotli; libarchive needs libxml2 + # - pacman itself asks for systemd, pacman-mirrorlist and + # libmakepkg-dropins + # Sixty-eight successful builds proved none of this. One chroot did. + libselinux pam brotli libxml2 systemd pacman-mirrorlist libmakepkg-dropins # And finally the package manager itself, built as an Arch package. pacman )