diff --git a/patches/pkgbuild/jsoncpp.sh b/patches/pkgbuild/jsoncpp.sh index d01d5e0..18b405d 100755 --- a/patches/pkgbuild/jsoncpp.sh +++ b/patches/pkgbuild/jsoncpp.sh @@ -26,3 +26,34 @@ io.open("PKGBUILD", "w", encoding="utf-8").write("\n".join(lines)) ZZPY grep -q "doxybuild" PKGBUILD && { echo "jsoncpp: doxybuild survived" >&2; exit 1; } echo "jsoncpp: doxygen build removed" + +# --- and the html it no longer generates -------------------------------------- +# +# cp: cannot stat 'dist/doxygen/jsoncpp-api-html-1.9.6': No such file or dir +# +# FOURTEENTH time, and the sixth of my own making. Removing the doxybuild.py call +# above stopped the API html being generated, and package() still copies the +# directory it would have produced. The name carries the version, so the path is +# not even greppable without knowing pkgver. +# +# By now the rule is mechanical and worth stating as a procedure rather than a +# lesson: after removing a documentation build, grep package() for the OUTPUT +# directory name, not for the tool. The tool appears in build(); the path appears +# in package(), and it is the path that fails. +set -euo pipefail +python3 - <<'ZZPY' +import io, re +lines = io.open("PKGBUILD", encoding="utf-8").read().split("\n") +hit = [i for i, l in enumerate(lines) if "doxygen" in l and re.match(r"^[ \t]*(cp|mv|install) ", l)] +assert len(hit) >= 1, "jsoncpp: no doxygen output copy found in package()" +for i in reversed(hit): + j = i + while lines[j].rstrip().endswith("\\"): + j += 1 + ind = re.match(r"^[ \t]*", lines[i]).group(0) + lines[i:j + 1] = [ind + ": # the doxygen html is not generated (no doxygen here)."] +io.open("PKGBUILD", "w", encoding="utf-8").write("\n".join(lines)) +ZZPY +grep -qE "^[[:space:]]*(cp|mv|install) .*doxygen" PKGBUILD && { + echo "jsoncpp: a doxygen output copy survived" >&2; exit 1; } +echo "jsoncpp: doxygen html copy removed" diff --git a/scripts/packages.sh b/scripts/packages.sh index a925ced..14dc154 100644 --- a/scripts/packages.sh +++ b/scripts/packages.sh @@ -333,6 +333,13 @@ STAGE1_PACKAGES=( # schema, so it needs a schema validator to build anything -- including # itself. ModuleNotFoundError: No module named 'fastjsonschema'. python-fastjsonschema + # gyp: nss will not configure without it -- + # + # Building NSS requires an installation of gyp: https://gyp.gsrc.io + # + # Google's build-file generator, which nss uses to produce its ninja files. + # A Python program, so it goes with the rest of the Python set. + gyp # libaio: a real closure gap. lvm2 stops on # # device/bcache.c:30:10: fatal error: libaio.h: No such file or directory