From 0963698d4b0c626a80e064c78d5463e1b52e80bf Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 23 Aug 2026 20:19:45 -0400 Subject: [PATCH] [FIX] xz has two doc toolchains, and libpsl needs data not a tool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit xz got past po4a and stopped on ../../../doxygen/update-doxygen: doxygen command not found Two documentation toolchains in one package: po4a for the translated man pages, doxygen for the liblzma API reference. --disable-doc is xz own switch, checked present in configure before use. libpsl stopped on make: *** No rule to make target /usr/share/publicsuffix/effective_tld_names.dat, needed by ... publicsuffix-list is DATA. libpsl compiles the Public Suffix List into a lookup table, so the list is an input to the build -- the first entry in this port whose absence is neither a program nor a library, and it reads exactly like a broken Makefile. --- FR --- xz a passe po4a et s est arrete sur ../../../doxygen/update-doxygen: doxygen command not found Deux chaines de documentation dans un seul paquet : po4a pour les pages de manuel traduites, doxygen pour la reference d API de liblzma. --disable-doc est son propre interrupteur, verifie present dans configure avant usage. libpsl s est arrete sur make: *** No rule to make target /usr/share/publicsuffix/effective_tld_names.dat, needed by ... publicsuffix-list est une DONNEE. libpsl compile la Public Suffix List en table de correspondance : la liste est une entree de la construction — premiere entree de ce portage dont l absence n est ni un programme ni une bibliotheque, et elle se lit exactement comme un Makefile casse. Assisted-by: Claude Opus 5 --- patches/pkgbuild/xz.sh | 27 +++++++++++++++++++++++++++ scripts/packages.sh | 9 +++++++++ 2 files changed, 36 insertions(+) diff --git a/patches/pkgbuild/xz.sh b/patches/pkgbuild/xz.sh index 2cc4849..269a029 100755 --- a/patches/pkgbuild/xz.sh +++ b/patches/pkgbuild/xz.sh @@ -20,3 +20,30 @@ ZZPY grep -q -- "autogen.sh --no-po4a" PKGBUILD || { echo "xz: --no-po4a was not added" >&2; exit 1; } echo "xz: translated man pages skipped" + +# --- and no doxygen API reference --------------------------------------------- +# +# With po4a out of the way, the build got as far as +# +# ../../../doxygen/update-doxygen: 'doxygen' command not found +# make[4]: *** [Makefile:642: ../../../doc/api/index.html] Error 1 +# +# Two documentation toolchains in one package: po4a for the translated man pages, +# doxygen for the liblzma API reference. --disable-doc is xz's own switch, and it +# was checked in configure before use -- both --disable-doc and --enable-doc are +# there. +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 re.match(r"^[ \t]*\./configure[ \t]*\\\\?$", l)] +assert len(hit) == 1, "xz: expected one ./configure line, got %d" % len(hit) +i = hit[0] +ind = re.match(r"^[ \t]*", lines[i]).group(0) +assert lines[i].rstrip().endswith("\\"), "xz: ./configure does not continue" +lines.insert(i + 1, ind + " --disable-doc \\") +io.open("PKGBUILD", "w", encoding="utf-8").write("\n".join(lines)) +ZZPY +grep -A1 -E "^[[:space:]]*\./configure" PKGBUILD | grep -q -- "--disable-doc" || { + echo "xz: --disable-doc is not on the configure line" >&2; exit 1; } +echo "xz: doxygen API reference disabled" diff --git a/scripts/packages.sh b/scripts/packages.sh index cb0815f..cefe19b 100644 --- a/scripts/packages.sh +++ b/scripts/packages.sh @@ -302,6 +302,15 @@ STAGE1_PACKAGES=( python-pkgconfig cython autoconf-archive + # publicsuffix-list: DATA, not a tool. libpsl stops on + # + # make: *** No rule to make target + # '/usr/share/publicsuffix/effective_tld_names.dat', needed by ... + # + # It compiles the Public Suffix List into a lookup table, so the list itself + # is an input to the build. First entry in this port whose absence is neither + # a program nor a library. + publicsuffix-list # libaio: a real closure gap. lvm2 stops on # # device/bcache.c:30:10: fatal error: libaio.h: No such file or directory