archlinux-s390x/patches/pkgbuild/libuv.sh

33 lines
1.2 KiB
Bash
Raw Normal View History

[ADD] nlohmann-json, and three more packages without their docs nlohmann-json is a real closure gap, not a documentation cut: both cmake and cppdap stop on "Could NOT find nlohmann_json". It is a header-only C++ library, one of the cheapest packages in the list, and cmake is not optional -- the cmake/cppdap/jsoncpp/libuv group behind it is what several other packages build with. The other three are doxygen and sphinx again. jsoncpp's is the least readable failure in the port so far: doxybuild.py is handed an empty doxygen path and raises Exception('path is empty.'), so a missing tool arrives as a Python traceback about a path. libuv needed two places -- `make man -C docs` and the install of docs/build/man/libuv.1 -- the same shape as libxml2's docs split and pam's PDFs: a failure on a path at the end of package(), after a compile that worked. --- FR --- nlohmann-json est un vrai trou de fermeture, pas une coupe de documentation : cmake et cppdap s'arrêtent tous deux sur « Could NOT find nlohmann_json ». C'est une bibliothèque C++ d'en-têtes seuls, l'un des paquets les moins chers de la liste, et cmake n'est pas optionnel — le groupe cmake/cppdap/jsoncpp/libuv derrière lui est ce avec quoi plusieurs autres se bâtissent. Les trois autres sont encore doxygen et sphinx. Celui de jsoncpp est l'échec le moins lisible du portage jusqu'ici : doxybuild.py reçoit un chemin de doxygen vide et lève Exception('path is empty.'), donc un outil manquant arrive sous la forme d'une trace Python parlant d'un chemin. libuv demandait deux endroits — `make man -C docs` et l'installation de docs/build/man/libuv.1 — même forme que le découpage de libxml2 et les PDF de pam : un échec sur un chemin en fin de package(), après une compilation réussie. Assisted-by: Claude Opus 5
2026-08-22 02:32:55 -04:00
#!/usr/bin/env bash
# libuv: no man page.
#
# Makefile:14: *** The 'sphinx-build' command was not found.
#
# TWO PLACES: `make man -C docs` builds it and package() installs
# docs/build/man/libuv.1. Removing only the build gives
#
# install: cannot stat 'docs/build/man/libuv.1'
#
# which is the same shape as libxml2's docs split and pam's PDFs -- a failure on
# a path, at the end of package(), after a compile that worked.
set -euo pipefail
python3 - <<'ZZPY'
import io, re
lines = io.open("PKGBUILD", encoding="utf-8").read().split("\n")
mk = [i for i, l in enumerate(lines) if re.search(r"make man -C docs", l)]
assert len(mk) == 1, "libuv: expected one `make man -C docs`, got %d" % len(mk)
inst = [i for i, l in enumerate(lines) if "docs/build/man/libuv.1" in l]
assert len(inst) == 1, "libuv: expected one man install, got %d" % len(inst)
i = inst[0]
# The install spans two lines: the source and the destination.
j = i
while lines[j].rstrip().endswith("\\"):
j += 1
del lines[i:j + 1]
del lines[mk[0]]
io.open("PKGBUILD", "w", encoding="utf-8").write("\n".join(lines))
ZZPY
grep -qE "make man -C docs|libuv\.1" PKGBUILD && {
echo "libuv: a man page reference survived" >&2; exit 1; }
echo "libuv: man page dropped (no sphinx)"