[FIX] makepkg.conf: .la files in a third of the repository
This host was configured with `libtool staticlibs`, which KEEPS what Arch strips. Fifty-six of a hundred and fifty-nine packages carried .la files, and nothing reported it until two sub-packages of one source both claimed the same file: /usr/lib/libcrypt.la exists in both 'libxcrypt' and 'libxcrypt-compat' That is what .la files are for -- they record a link line -- so a split library produces two descriptions of itself. Arch removes them because nothing in a modern toolchain reads them and the paths they record are wrong as soon as a package moves. OPTIONS now matches Arch, minus debug and lto: debug wants a source-package pipeline this bootstrap has no use for, and lto doubles a stage whose output stage 2 discards. libnspr4-dev and mercurial came with nss. The nspr distinction is worth keeping: the host had NOTHING, which the ordinary stage-1 rule fixes with a host package. libgcrypt needed a hook because the host had something too OLD -- 1.51 against a floor of 1.56 -- and no installation fixes that. --- FR --- Cet hôte était configuré avec `libtool staticlibs`, qui CONSERVE ce qu'Arch retire. Cinquante-six paquets sur cent cinquante-neuf portaient des fichiers .la, et rien ne l'avait signalé jusqu'à ce que deux sous-paquets d'une même source réclament le même fichier : /usr/lib/libcrypt.la exists in both 'libxcrypt' et 'libxcrypt-compat' C'est à cela que servent les .la — ils consignent une ligne de liaison — donc une bibliothèque scindée produit deux descriptions d'elle-même. Arch les supprime parce que rien dans une chaîne moderne ne les lit et que les chemins qu'ils consignent sont faux dès qu'un paquet se déplace. OPTIONS suit désormais Arch, sauf debug et lto : debug réclame un pipeline de paquets sources dont cet amorçage n'a que faire, et lto double une étape dont l'étage 2 jette la sortie. libnspr4-dev et mercurial sont venus avec nss. La distinction sur nspr mérite d'être gardée : l'hôte n'avait RIEN, ce que la règle ordinaire de l'étage 1 corrige par un paquet hôte. libgcrypt a exigé un crochet parce que l'hôte avait quelque chose de trop VIEUX — 1.51 contre un plancher de 1.56 — et qu'aucune installation ne corrige cela. Assisted-by: Claude Opus 5
This commit is contained in:
parent
22b101dc47
commit
9a6c11e2ab
1 changed files with 22 additions and 1 deletions
|
|
@ -246,7 +246,28 @@ configure_makepkg() {
|
|||
#
|
||||
# while the build had created s390x-ibm-linux-gnu/libstdc++-v3/doc.
|
||||
sudo sed -i 's|^CHOST=.*|CHOST="s390x-ibm-linux-gnu"|' /etc/makepkg.conf
|
||||
grep -E '^(CARCH|CHOST|MAKEFLAGS)=' /etc/makepkg.conf
|
||||
# OPTIONS, aligned with Arch's own defaults.
|
||||
#
|
||||
# This host was configured with `libtool staticlibs`, which KEEPS the .la
|
||||
# files and the .a archives that Arch strips. Fifty-six of a hundred and
|
||||
# fifty-nine packages carried .la files as a result -- a third of the
|
||||
# repository diverging from Arch in a way nothing reported, until two
|
||||
# sub-packages of the same source both claimed one:
|
||||
#
|
||||
# error: failed to commit transaction (conflicting files)
|
||||
# /usr/lib/libcrypt.la exists in both 'libxcrypt' and 'libxcrypt-compat'
|
||||
#
|
||||
# That is what .la files are for: they record a link line, so two packages
|
||||
# splitting one library both want to describe it. Arch removes them
|
||||
# because nothing in a modern toolchain reads them and the paths they
|
||||
# record are wrong the moment a package is relocated.
|
||||
#
|
||||
# debug and lto stay OFF, unlike Arch: debug wants a source-package
|
||||
# pipeline this bootstrap has no use for, and lto doubles compile time on
|
||||
# a stage whose output stage 2 discards anyway. autodeps stays off because
|
||||
# it is makepkg's own default; TODO.md records what that costs.
|
||||
sudo sed -i 's|^OPTIONS=.*|OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !lto !autodeps)|' /etc/makepkg.conf
|
||||
grep -E '^(CARCH|CHOST|MAKEFLAGS|OPTIONS)=' /etc/makepkg.conf
|
||||
}
|
||||
|
||||
# build_package <name> -- fetch the official PKGBUILD and build it for s390x.
|
||||
|
|
|
|||
Loading…
Reference in a new issue