A port that does not track what it gave up drifts silently, and the gap is found years later by whoever needs the missing feature. Every deliberate difference is now written down, with the hook that implements it and what it would take to close it. The document separates two kinds, because the difference matters. DEFERRED entries were dropped to get the bootstrap moving -- nothing about s390x prevents them, they cost build time or a host dependency, and they should come back. ARCHITECTURAL entries drop something that is x86-specific by nature; there is nothing to restore, and they are listed so nobody spends an afternoon rediscovering why. A third section covers what is neither: environment facts, like dev.gnupg.org being unreachable from this host, which close themselves elsewhere. curl joins the deferred list. Arch builds HTTP/3 through nghttp3 and ngtcp2; Ubuntu packages neither, and building both to reach HTTP/3 is a detour when pacman and ERPLibre talk to plain HTTPS mirrors. The dependency declarations and the soname map go with the configure flags: left in place, the package would claim to need libraries it no longer links. --- FR --- Un portage qui ne trace pas ce qu il a abandonne derive en silence, et l ecart se decouvre des annees plus tard par celui a qui la fonctionnalite manque. Chaque difference deliberee est desormais consignee, avec le crochet qui la met en oeuvre et ce qu il faudrait pour la refermer. Le document separe deux natures, parce que la distinction compte. Les entrees DIFFEREES ont ete abandonnees pour faire avancer l amorcage -- rien dans s390x ne s y oppose, elles coutent du temps de compilation ou une dependance d hote, et elles doivent revenir. Les entrees ARCHITECTURALES retirent ce qui est par nature propre a x86 ; il n y a rien a restaurer, et elles figurent la pour que personne ne passe un apres-midi a redecouvrir pourquoi. Une troisieme section couvre ce qui n est ni l un ni l autre : des faits d environnement, comme dev.gnupg.org injoignable depuis cet hote, qui se refermeront ailleurs. curl rejoint la liste des differes. Arch batit HTTP/3 par nghttp3 et ngtcp2 ; Ubuntu n empaquete ni l un ni l autre, et les batir tous deux pour atteindre HTTP/3 est un detour quand pacman et ERPLibre parlent a des miroirs HTTPS ordinaires. Les declarations de dependance et la table de sonames partent avec les options de configuration : laissees en place, le paquet pretendrait dependre de bibliotheques qu il ne lie plus. Assisted-by: Claude Opus 5
29 lines
1.2 KiB
Bash
Executable file
29 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# curl: disable HTTP/3.
|
|
#
|
|
# configure: error: nghttp3 enabled without a QUIC library; enable ngtcp2
|
|
#
|
|
# Arch builds curl with HTTP/3 through nghttp3 + ngtcp2. Ubuntu packages
|
|
# neither, so the build host cannot satisfy them, and building both from
|
|
# source to reach HTTP/3 is a detour: nothing in the bootstrap needs it.
|
|
# pacman talks to plain HTTPS mirrors, and so does ERPLibre.
|
|
#
|
|
# DEFERRED, not rejected -- see TODO.md. Re-enable by building ngtcp2 and
|
|
# nghttp3 as Arch packages first, then dropping this hook.
|
|
set -euo pipefail
|
|
|
|
# The configure flags.
|
|
sed -i 's/--with-nghttp3/--without-nghttp3/; s/--with-ngtcp2/--without-ngtcp2/' PKGBUILD
|
|
|
|
# The dependency declarations and the soname map. Left in place, the package
|
|
# would claim to need libraries it no longer links, and makepkg resolves
|
|
# those sonames against the built binary.
|
|
sed -i "/'libnghttp3'/d; /'libngtcp2'/d" PKGBUILD
|
|
|
|
if grep -qE '\-\-with-(nghttp3|ngtcp2)' PKGBUILD; then
|
|
echo "curl: an HTTP/3 library is still requested" >&2; exit 1
|
|
fi
|
|
if grep -qE "'(libnghttp3|libngtcp2)'" PKGBUILD; then
|
|
echo "curl: an HTTP/3 dependency is still declared" >&2; exit 1
|
|
fi
|
|
echo "curl: HTTP/3 disabled (no ngtcp2 on the build host)"
|