archlinux-s390x/patches/pkgbuild
Mathieu Benoit 61abc5aef9 [FIX] systemd: every man page operation at once, not one per pass
mv: cannot stat '<pkgdir>/usr/share/man/man3': No such file or directory

Fifteenth instance, and the first where the whole class was handled before the
failures arrived. -Dman=disabled means NO man pages exist, and package() touches
them six times -- three moves into split packages, three removals of pages Arch
does not ship.

Treated by kind rather than by name: the moves are neutralised, because with no
pages there is nothing to move; the removals get -f, because their intent still
holds on a machine that HAS the DocBook stack, and one of them also removes a
binary that must still go. Five moves, three removals, counted and reported by
the hook.

This is the procedure written into jsoncpp's hook one commit earlier, applied
forwards: after disabling documentation, grep package() for the output paths.
Chasing man3 alone would have cost five more passes.

The first guard for it matched any `rm` without a dash and condemned correct
code -- systemd removes plenty that is not documentation. Same mistake as the
blanket `grep tcl8.6` in sqlite's hook, and caught the same way.

--- FR ---

  mv: cannot stat '<pkgdir>/usr/share/man/man3': No such file or directory

Quinzième occurrence, et la première où toute la classe est traitée avant que les
échecs n'arrivent. -Dman=disabled signifie qu'AUCUNE page n'existe, et package()
y touche six fois — trois déplacements vers des sous-paquets, trois suppressions
de pages qu'Arch ne livre pas.

Traitées par nature et non par nom : les déplacements sont neutralisés, puisqu'il
n'y a rien à déplacer ; les suppressions reçoivent -f, car leur intention tient
toujours sur une machine dotée de la pile DocBook, et l'une retire aussi un
binaire qui doit bien partir. Cinq déplacements, trois suppressions, comptés et
rapportés par le hook.

C'est la procédure inscrite dans le hook de jsoncpp un commit plus tôt, appliquée
à l'endroit : après avoir désactivé une documentation, chercher dans package() les
chemins de sortie. Poursuivre man3 seul aurait coûté cinq passes de plus.

Le premier garde écrit pour cela attrapait tout `rm` sans tiret et condamnait du
code juste — systemd supprime beaucoup qui n'est pas de la documentation. Même
erreur que le `grep tcl8.6` global du hook sqlite, attrapée de la même façon.

Assisted-by: Claude Opus 5
2026-08-24 00:21:48 -04:00
..
audit.sh [FIX] four hooks the closure's second round needed 2026-08-19 06:24:11 -04:00
autoconf-archive.sh [FIX] our flit_core is too new, and savannah would not serve a patch 2026-08-23 19:27:14 -04:00
binutils.sh [FIX] binutils records a usr/lib64 path, and cmake deletes html it did not make 2026-08-23 22:05:26 -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] binutils records a usr/lib64 path, and cmake deletes html it did not make 2026-08-23 22:05:26 -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] groff's remaining lists, systemd man pages, git without libsecret 2026-08-23 23:58:32 -04:00
glibc.sh [ADD] devtools stand-ins, and lib32 removal for glibc and gcc 2026-08-15 21:15:01 -04:00
gnupg.sh [ADD] gnupg without its diagrams, and jinja2 for systemd 2026-08-23 17:25:27 -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] groff's remaining lists, systemd man pages, git without libsecret 2026-08-23 23:58:32 -04:00
jsoncpp.sh [ADD] gyp for nss, and jsoncpp's doxygen output 2026-08-24 00:03:26 -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 [FIX] the Python bootstrap installed older code than it claimed 2026-08-23 23:50:06 -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 [FIX] the second half of two of my own hooks 2026-08-23 19:09:10 -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
p11-kit.sh [FIX] tpm2-tss without integration tests, p11-kit's doc sub-package 2026-08-23 23:33:38 -04:00
pacman.sh [FIX] systemd without BPF, pacman without asciidoc 2026-08-21 21:25:20 -04:00
pam.sh [FIX] the second half of two of my own hooks 2026-08-23 19:09:10 -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-jinja.sh [FIX] our flit_core is too new, and savannah would not serve a patch 2026-08-23 19:27:14 -04:00
python-packaging.sh [FIX] the Python bootstrap installed older code than it claimed 2026-08-23 23:50:06 -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: tcl 9 keeps its library inside the binary 2026-08-23 21:19:23 -04:00
systemd.sh [FIX] systemd: every man page operation at once, not one per pass 2026-08-24 00:21:48 -04:00
tar.sh [FIX] selinux: the chroot named a host artefact, not a dependency 2026-08-17 01:33:41 -04:00
tpm2-tss.sh [FIX] tpm2-tss without integration tests, p11-kit's doc sub-package 2026-08-23 23:33:38 -04:00
util-linux.sh [FIX] sqlite, libpsl and util-linux 2026-08-22 07:33:10 -04:00
xz.sh [FIX] xz: the flag was already there, and lost to position 2026-08-23 23:44:36 -04:00
zstd.sh [FIX] libdir: the Debian host hid the libraries from Arch 2026-08-17 01:33:41 -04:00