archlinux-s390x/patches/pkgbuild
Mathieu Benoit 3d2a1485af [FIX] the Python bootstrap installed older code than it claimed
python-packaging's PKGBUILD says pkgver=26.3 and the installed module reported
25.0. The vendored builder selected by _bootstrap=1 carries its OWN copy of each
project, older than the release the PKGBUILD names. Nothing about the package
looked wrong; only `packaging.__version__` disagreed with its own name, and the
mismatch surfaced two packages later:

  python-vcs-versioning: packaging>=26.2

a floor our own package met on paper and not in fact.

_bootstrap is now a probe evaluated by makepkg, in the build environment: if
`build` and `installer` import, the real path works and the vendored copies are
not wanted. A hook could not decide this -- hooks run on the HOST even for stage
2, so a probe written there cannot answer for the chroot.

The license install then had to handle both layouts, since the source tree is a
git clone under $pkgname when bootstrapping and a release tarball otherwise.
Hardcoding either breaks the other, and this hook had hardcoded the clone -- right
only while _bootstrap was always 1.

--- FR ---

Le PKGBUILD de python-packaging annonce pkgver=26.3 et le module installé
rapportait 25.0. Le constructeur embarqué que sélectionne _bootstrap=1 porte ses
PROPRES copies de chaque projet, plus anciennes que la version nommée. Rien dans
le paquet n'avait l'air faux ; seul `packaging.__version__` contredisait son
propre nom, et l'écart est apparu deux paquets plus loin :

  python-vcs-versioning: packaging>=26.2

un plancher que notre paquet satisfaisait sur le papier et non en fait.

_bootstrap est désormais une sonde évaluée par makepkg, dans l'environnement de
construction : si `build` et `installer` s'importent, la voie normale fonctionne et
les copies embarquées ne sont pas voulues. Un hook ne pouvait pas trancher — les
hooks tournent sur l'HÔTE même pour l'étage 2, donc une sonde écrite là ne peut
pas répondre pour le chroot.

L'installation de la licence devait alors gérer les deux dispositions, l'arbre
source étant un clone git sous $pkgname en mode bootstrap et une archive sinon.
Écrire l'une en dur casse l'autre, et ce hook avait écrit le clone en dur — juste
seulement tant que _bootstrap valait toujours 1.

Assisted-by: Claude Opus 5
2026-08-23 23:50:06 -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] git: the opt-out is NO_RUST, and Rust is now the default 2026-08-23 23:09:18 -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: the second consumer of a figure that is not built 2026-08-23 22:49:24 -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 [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 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
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