archlinux-s390x/patches/pkgbuild
Mathieu Benoit cb3a32101a [FIX] a hook's scope belongs to its sections, not to its filename
git and meson kept failing in stage 2 on exactly what their own hooks fix, while
the log said

  hook skipped (stage-1 only)

Both were named in STAGE2_SKIP_HOOKS, correctly, when their whole content was a
host workaround: git dropped ZLIB_NG because the host had no zlib-ng headers,
meson moved a wheel out of /usr/local. Then each grew a second section that BOTH
stages need -- git's asciidoc man pages, meson's hotdoc reference manual -- and
the list skips the whole FILE, so the new sections never ran. Two hooks that were
by then two thirds relevant, silently ignored.

A list of filenames cannot say why a hook is listed, and cannot notice when that
reason stops covering the file. The hooks now read EL_STAGE and decide per
section, with the reason written beside each guard; the list is gone. libgcrypt
and libarchive keep a whole-file guard, which now states its reason instead of
being an entry somewhere else.

Verified at both stages: git drops its man pages in each, and keeps ZLIB_NG in
the chroot where zlib-ng exists.

--- FR ---

git et meson échouaient à l'étage 2 sur précisément ce que leurs propres hooks
corrigent, pendant que le journal disait

  hook skipped (stage-1 only)

Tous deux étaient nommés dans STAGE2_SKIP_HOOKS, à juste titre quand tout leur
contenu était un contournement de l'hôte : git abandonnait ZLIB_NG faute
d'en-têtes zlib-ng, meson déplaçait une roue hors de /usr/local. Puis chacun a
gagné une seconde section utile aux DEUX étages — les pages asciidoc de git, le
manuel hotdoc de meson — et la liste saute le FICHIER entier : ces sections n'ont
jamais tourné. Deux hooks devenus pertinents aux deux tiers, ignorés en silence.

Une liste de noms de fichiers ne peut pas dire pourquoi un hook y figure, ni
remarquer que cette raison a cessé de couvrir le fichier. Les hooks lisent
désormais EL_STAGE et tranchent par section, la raison écrite à côté de chaque
garde ; la liste disparaît. libgcrypt et libarchive gardent une garde de fichier
entier, qui énonce sa raison au lieu d'être une entrée ailleurs.

Vérifié aux deux étages : git abandonne ses pages de manuel dans les deux, et
conserve ZLIB_NG dans le chroot, où zlib-ng existe.

Assisted-by: Claude Opus 5
2026-08-23 17:23:30 -04:00
..
audit.sh [FIX] four hooks the closure's second round needed 2026-08-19 06:24:11 -04:00
binutils.sh [FIX] binutils' extra targets were x86_64's, and gcc only wanted man pages 2026-08-22 21:52:39 -04:00
brotli.sh [REM] sub-packages: four that cost more closure than they carry 2026-08-19 05:28:32 -04:00
ca-certificates.sh [FIX] the chroot could not resolve a name, and wget could not fix itself 2026-08-21 16:29:10 -04:00
cmake.sh [FIX] stage 2: x86_64 compiler flags, and a .pc naming nothing 2026-08-19 20:19:37 -04:00
coreutils.sh [FIX] selinux: the chroot named a host artefact, not a dependency 2026-08-17 01:33:41 -04:00
cryptsetup.sh [FIX] s390x: say which machine this port targets 2026-08-21 00:23:26 -04:00
curl.sh [ADD] TODO.md: track every divergence from upstream Arch 2026-08-16 05:47:47 -04:00
dbus.sh [FIX] the build host answered questions the target should 2026-08-19 05:28:32 -04:00
e2fsprogs.sh [FIX] four hooks the closure's second round needed 2026-08-19 06:24:11 -04:00
expat.sh [FIX] host defaults: apt was deciding what got built 2026-08-17 02:37:46 -04:00
fakeroot.sh [FIX] libaio, and two packages that installed man pages nobody wrote 2026-08-22 22:00:00 -04:00
filesystem.sh [FIX] filesystem: give s390x the lib64 compatibility symlinks 2026-08-21 00:54:14 -04:00
findutils.sh [FIX] selinux: the chroot named a host artefact, not a dependency 2026-08-17 01:33:41 -04:00
gcc.sh [FIX] binutils' extra targets were x86_64's, and gcc only wanted man pages 2026-08-22 21:52:39 -04:00
gettext.sh [FIX] the build host answered questions the target should 2026-08-19 05:28:32 -04:00
git.sh [FIX] a hook's scope belongs to its sections, not to its filename 2026-08-23 17:23:30 -04:00
glibc.sh [ADD] devtools stand-ins, and lib32 removal for glibc and gcc 2026-08-15 21:15:01 -04:00
gnutls.sh [FIX] declared, never linked: guile, libisl.so, leancrypto 2026-08-19 05:28:32 -04:00
gpgme.sh [FIX] systemd without AppArmor, gpgme without its test harness, groff without a logo 2026-08-22 22:02:56 -04:00
grep.sh [FIX] grep: the m4 check lives in bootstrap.conf, not bootstrap 2026-08-17 00:00:48 -04:00
groff.sh [FIX] systemd without AppArmor, gpgme without its test harness, groff without a logo 2026-08-22 22:02:56 -04:00
jsoncpp.sh [ADD] nlohmann-json, and three more packages without their docs 2026-08-22 02:32:55 -04:00
kbd.sh [ADD] test-chroot: read the binaries, not the declarations 2026-08-19 06:24:11 -04:00
krb5.sh [FIX] the build host answered questions the target should 2026-08-19 05:28:32 -04:00
lib-python-bootstrap.sh [ADD] Python packaging, through Arch's own bootstrap path 2026-08-21 16:37:55 -04:00
libarchive.sh [FIX] a hook's scope belongs to its sections, not to its filename 2026-08-23 17:23:30 -04:00
libassuan.sh [FIX] canonical CHOST, and a reachable libassuan source 2026-08-16 00:45:50 -04:00
libcap-ng.sh [FIX] four hooks the closure's second round needed 2026-08-19 06:24:11 -04:00
libevent.sh [ADD] nlohmann-json, and three more packages without their docs 2026-08-22 02:32:55 -04:00
libgcrypt.sh [FIX] a hook's scope belongs to its sections, not to its filename 2026-08-23 17:23:30 -04:00
libpsl.sh [FIX] sqlite, libpsl and util-linux 2026-08-22 07:33:10 -04:00
libsasl.sh [FIX] four hooks the closure's second round needed 2026-08-19 06:24:11 -04:00
libseccomp.sh [REM] sub-packages: four that cost more closure than they carry 2026-08-19 05:28:32 -04:00
libtool.sh [ADD] port patches: gcc front ends, binutils gold, libtool multilib 2026-08-15 21:01:18 -04:00
libuv.sh [ADD] nlohmann-json, and three more packages without their docs 2026-08-22 02:32:55 -04:00
libxcrypt.sh [FIX] libxcrypt: a compiler newer than the release expects 2026-08-22 00:08:00 -04:00
libxml2.sh [FIX] stage 2: produce its first package 2026-08-20 01:12:14 -04:00
lvm2.sh [FIX] lvm2: only device-mapper, and the closure closes 2026-08-19 06:40:50 -04:00
lz4.sh [FIX] libdir: the Debian host hid the libraries from Arch 2026-08-17 01:33:41 -04:00
make.sh [FIX] declared, never linked: guile, libisl.so, leancrypto 2026-08-19 05:28:32 -04:00
meson.sh [FIX] a hook's scope belongs to its sections, not to its filename 2026-08-23 17:23:30 -04:00
openssl.sh [FIX] openssl: s390x is big-endian, drop the little-endian EC path 2026-08-16 22:53:33 -04:00
pacman.sh [FIX] systemd without BPF, pacman without asciidoc 2026-08-21 21:25:20 -04:00
pam.sh [FIX] four more packages that build without their documentation 2026-08-22 00:07:14 -04:00
pinentry.sh [FIX] the build host answered questions the target should 2026-08-19 05:28:32 -04:00
python-build.sh [ADD] Python packaging, through Arch's own bootstrap path 2026-08-21 16:37:55 -04:00
python-installer.sh [ADD] Python packaging, through Arch's own bootstrap path 2026-08-21 16:37:55 -04:00
python-packaging.sh [FIX] three packages shipped 180 unreachable module paths 2026-08-21 16:49:37 -04:00
python-pyproject-hooks.sh [ADD] Python packaging, through Arch's own bootstrap path 2026-08-21 16:37:55 -04:00
python-setuptools.sh [ADD] Python packaging, through Arch's own bootstrap path 2026-08-21 16:37:55 -04:00
python-wheel.sh [ADD] Python packaging, through Arch's own bootstrap path 2026-08-21 16:37:55 -04:00
python.sh [ADD] the build systems stage 2 rebuilds with 2026-08-19 19:53:46 -04:00
readline.sh [FIX] stage 2: x86_64 compiler flags, and a .pc naming nothing 2026-08-19 20:19:37 -04:00
rsync.sh [FIX] stage 2: the build tools the host was providing silently 2026-08-20 01:34:41 -04:00
sed.sh [FIX] selinux: the chroot named a host artefact, not a dependency 2026-08-17 01:33:41 -04:00
shadow.sh [FIX] libaio, and two packages that installed man pages nobody wrote 2026-08-22 22:00:00 -04:00
sqlite.sh [FIX] sqlite, libpsl and util-linux 2026-08-22 07:33:10 -04:00
systemd.sh [FIX] systemd without AppArmor, gpgme without its test harness, groff without a logo 2026-08-22 22:02:56 -04:00
tar.sh [FIX] selinux: the chroot named a host artefact, not a dependency 2026-08-17 01:33:41 -04:00
util-linux.sh [FIX] sqlite, libpsl and util-linux 2026-08-22 07:33:10 -04:00
xz.sh [FIX] four more packages that build without their documentation 2026-08-22 00:07:14 -04:00
zstd.sh [FIX] libdir: the Debian host hid the libraries from Arch 2026-08-17 01:33:41 -04:00